Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more! Learn more →
Top 23 Python HTTP Client Projects
-
I suggested exactly that (for the closely related Deprecation header) to Requests a few years ago, they feel it's the application's responsibility, discussion here: https://github.com/psf/requests/issues/5724
-
InfluxDB
InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
-
httpie
🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. (by httpie)
HTTPie is a user-friendly command-line HTTP client designed for testing APIs.
-
-
Project mention: Superfunctions: A universal solution against sync/async fragmentation in Python | news.ycombinator.com | 2025-07-21
For an http API (say something like boto3 or a client for arangodb) you might want to use the API from either a sync or async application. Since the code is almost all the same you can code generate a version of the API for both sync and async which is particularly easy if you use
https://www.python-httpx.org/
since you can use basically the same http client for both sides. One way to do it is write code like the sample I showed and use
https://docs.python.org/3/library/ast.html
to scan the tree and either remove the maybe_await() or replace it with an await accordingly. You could either do this transformation when the application boots or have some code that builds both sync and async packages and packs the code up in PyPi. There are lots of ways to do it.
-
HTTP Prompt
An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie
-
-
curl_cffi
Python binding for curl-impersonate fork via cffi. A http client that can impersonate browser tls/ja3/http2 fingerprints.
-
Sevalla
Deploy and host your apps and databases, now with $50 credit! Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
-
Project mention: Complete Get started with tensorflow-metal in bahasa Indonesia. | dev.to | 2025-04-20
Python 3.9.6 (default, Nov 11 2024, 03:15:38) [Clang 16.0.0 (clang-1600.0.26.6)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf /Users/alizaenazet/venv-metal/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( >>> from tensorflow.python.client import device_lib >>> tf.debugging.set_log_device_placement(True) >>> >>> print(device_lib.list_local_devices()) 2025-04-21 01:06:40.831511: I metal_plugin/src/device/metal_device.cc:1154] Metal device set to: Apple M4 Pro 2025-04-21 01:06:40.831559: I metal_plugin/src/device/metal_device.cc:296] systemMemory: 24.00 GB 2025-04-21 01:06:40.831579: I metal_plugin/src/device/metal_device.cc:313] maxCacheSize: 8.00 GB WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1745172400.831606 9217703 pluggable_device_factory.cc:305] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support. I0000 00:00:1745172400.831643 9217703 pluggable_device_factory.cc:271] Created TensorFlow device (/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: ) [name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 685062345586209203 xla_global_id: -1 , name: "/device:GPU:0" device_type: "GPU" locality { bus_id: 1 } incarnation: 171648293091322613 physical_device_desc: "device: 0, name: METAL, pci bus id: " xla_global_id: -1 ] >>> >>> print("Number GPUs Available: ", ... len(tf.config.experimental.list_physical_devices('GPU'))) Number GPUs Available: 1 >>>
-
-
-
Niquests
“Safest, Fastest, Easiest, and Most advanced” Python HTTP Client. Production Ready! Drop-in replacement for Requests. HTTP/1.1, HTTP/2, and HTTP/3 supported. With WebSocket, and SSE! Be free of Requests bondage now.
Project mention: Show HN: The Jawah Python Organization Was in GitHub Secure Open Source Fund | news.ycombinator.com | 2025-08-15already is! But we also fixed a lot of tiny security issues thanks to the sharp eyes of experts out there!
Now, there's another project we know is going to absolutely need the utmost standard of security. *Niquests!*
It's been seven months since our last update for the potential Requests replacement and we wanted to share some exciting news about it.
For those who did not know about it: Niquests is a drop-in replacement for the popular Requests http client. https://github.com/jawah/niquests
Here some anecdote I'd like to share with all of you:
- PyPI
Niquests is about to break the 1000th place on PyPI most downloaded packages! With around 55 thousands pull each day.
-
-
Project mention: Uplink VS lapidary - a user suggested alternative | libhunt.com/r/uplink | 2025-03-16
-
httplib2
Small, fast HTTP client library for Python. Features persistent connections, cache, and Google App Engine support. Originally written by Joe Gregorio, now supported by community.
-
Third, there are some reports of pg_net failing to make requests after your database transaction volume surpasses a certain threshold.
-
gracy
Gracy helps you handle failures, logging, retries, throttling, and tracking for all your HTTP interactions.
-
-
-
tls-requests
TLS Requests is a powerful Python library for secure HTTP requests, offering browser-like TLS client, fingerprinting, anti-bot page bypass, and high performance.
Project mention: Must Try Open-Source Python TLS Requests: Simplify Web Scraping, Bypass Cloudflare 403 Forbidden (WAF) | dev.to | 2024-12-13Modern websites increasingly use TLS Fingerprinting and anti-bot tools like Cloudflare Bot Fight Mode to block web crawlers. TLS Requests bypass these obstacles by mimicking browser-like TLS behaviors, making it easy to scrape data or interact with websites that use sophisticated anti-bot measures.
-
-
domhttpx
domhttpx is a google search engine dorker with HTTP toolkit built with python, can make it easier for you to find many URLs/IPs at once with fast time.
-
Project mention: Ask HN: What Are You Working On? (October 2024) | news.ycombinator.com | 2024-10-27
I'm working on a library that allows anyone to build fully typed, declarative API clients very easily, in Python.
https://github.com/martinn/quickapiclient
-
sensei
The Python framework that provides a quick way to build robust HTTP requests and best API clients. Use type hints, to build requests, with little or no implementation. (by CrocoFactory)
sensei - Python framework that provides a quick way to build robust HTTP requests and best API clients
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Python HTTP Client discussion
Python HTTP Client related posts
-
Show HN: The Jawah Python Organization Was in GitHub Secure Open Source Fund
-
Curl_cffi
-
Complete Get started with tensorflow-metal in bahasa Indonesia.
-
A special build of curl that can impersonate Chrome and Firefox
-
Uplink VS lapidary - a user suggested alternative
2 projects | 16 Mar 2025 -
Show HN: Online Python Compiler with Libraries
-
Show HN: A Comprehensive, Compatible Open Source Alternative to Python Requests
-
A note from our sponsor - Sevalla
sevalla.com | 1 Sep 2025
Index
What are some of the best open-source HTTP Client projects in Python? This list will help you:
# | Project | Stars |
---|---|---|
1 | requests | 53,227 |
2 | httpie | 36,464 |
3 | AIOHTTP | 15,954 |
4 | httpx | 14,511 |
5 | HTTP Prompt | 9,056 |
6 | grequests | 4,577 |
7 | curl_cffi | 4,083 |
8 | urllib3 | 3,938 |
9 | nba_api | 3,062 |
10 | Grab | 2,404 |
11 | Niquests | 1,335 |
12 | pycurl | 1,130 |
13 | Uplink | 1,103 |
14 | httplib2 | 498 |
15 | pg_net | 314 |
16 | gracy | 247 |
17 | BCA-Phantom | 101 |
18 | roast.vim | 80 |
19 | tls-requests | 76 |
20 | quiz | 70 |
21 | domhttpx | 70 |
22 | quickapiclient | 50 |
23 | sensei | 36 |