Requests (Python library)
Hacker ApprovedThe most recommended of 11 HTTP client libraries
The most-used HTTP client for Python, praised for a simpler API than the standard library. Critics say it is feature-frozen and lacks HTTP/2, HTTP/3 and async support.
The most-used HTTP client for Python, praised for a simpler API than the standard library. Critics say it is feature-frozen and lacks HTTP/2, HTTP/3 and async support.
30 people gave an opinion
- recommend it
- 23
- criticize it
- 7
- approval share
- 77%
Recommended in 8 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: not recommended
- July 2026: not recommended
- August 2026: recommended
- September 2026: not recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 23 people recommend itNeeds 10 or more, met.
- 3.3 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 8 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Simpler, nicer API than urllib
“it does actually have a few more things and ergonomic improvements over the builtin HTTP machinery”
Comment from 24 Nov 2025 in “Shai-Hulud Returns: Over 300 NPM Packages Infected” “in Python you need a separate package like requests to avoid a clunky API”
Comment from 1 Apr 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan” “I tend to prefer requests to urllib2, as do most programmers”
Comment from 25 May 2026 in “Migrating from Go to Rust” - Comment from 23 Apr 2026 in “OpenAI's response to the Axios developer tool compromise”
- Comment from 21 Aug 2026 in “Malicious Rust Crate Arrayref Runs a Build-Time Payload”
- Comment from 14 Apr 2026 in “Someone Bought 30 WordPress Plugins and Planted a Backdoor in All of Them”
Widely used and familiar to programmers
“Django, Pillow, Requests, BeautifulSoup, and pretty much every other library I use regularly”
Comment from 24 Dec 2025 in “Deprecate like you mean it” “everybody uses the third-party requests instead of the stdlib urllib”
Comment from 31 Mar 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan” “I tend to prefer requests to urllib2, as do most programmers”
Comment from 25 May 2026 in “Migrating from Go to Rust” - Comment from 22 May 2026 in “Slumber a TUI HTTP Client”
Gold standard, stable PSF-maintained API
“For years, Python's Requests library was the gold standard, but it has been under feature freeze.”
Comment from 13 Mar 2026 in “Show HN: I forked Python's Requests to add HTTP/3, async, and multiplexing” “The requests packages fundamental API is good enough and is now maintained by the PSF.”
Comment from 28 Aug 2026 in “Migrating to HTTPX2”
What people warn about
Each mark is one comment
Feature-frozen, no HTTP/2 or HTTP/3
“requests is effectively feature-frozen, but I really missed having support for newer standards like HTTP/2 and HTTP/3”
Comment from 21 Jan 2026 in “Show HN: Safest, Fastest, Easiest, and Most Advanced Python HTTP Client” “It doesn't support HTTP/2, it doesn't support HTTP/3, it doesn't support async”
Comment from 29 Aug 2026 in “Migrating to HTTPX2” “does not support newer versions of HTTP, nor does it support async”
Comment from 28 Aug 2026 in “HTTPX2 – A next-generation HTTP client for Python” No async support
“It doesn't support HTTP/2, it doesn't support HTTP/3, it doesn't support async”
Comment from 29 Aug 2026 in “Migrating to HTTPX2” “does not support newer versions of HTTP, nor does it support async”
Comment from 28 Aug 2026 in “HTTPX2 – A next-generation HTTP client for Python” Maintenance lags behind
“third party stuff like requests or httpx, which aren't always well maintained”
Comment from 25 Mar 2026 in “I Forked Httpx” “I guess they won't merge it until absolutely necessary for the 2.33 release.”
Comment from 27 Dec 2025 in “How uv got so fast” Heavy dependency with janky layers
“requests is some janky layer onto of other janky layers”
Comment from 25 Mar 2026 in “I Forked Httpx” “a dependency that comes with its own baggage”
Comment from 14 Apr 2026 in “Someone Bought 30 WordPress Plugins and Planted a Backdoor in All of Them”
Other HTTP client libraries people recommend
The four most recommended other HTTP client libraries, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Requests (Python library)This page | 23 | 7 | 77% | 8 | — | Approved |
| Axios | 21 | 37 | 36% | 5 | — | — |
| Go net/http | 12 | 7 | 63% | 4 | — | — |
| libcurl | 10 | 2 | 83% | 7 | — | Approved |
| httpx | 10 | 22 | 31% | 4 | — | — |
What people said
31 of the 34 comments that mention it, newest first. Each links to the original comment.
“It doesn't support HTTP/2, it doesn't support HTTP/3, it doesn't support async”
“You probably want to use pretty much anything over requests for performance reasons.”
“requests is great and all, but you can just use sockets and send raw http strings”
“does not support newer versions of HTTP, nor does it support async”
“The requests packages fundamental API is good enough and is now maintained by the PSF.”
“requests is a far better HTTP client library”
“I tend to prefer requests to urllib2, as do most programmers”
“It has a nicer syntax, all LLMs know it”
“request library is vastly superior in usability”
“requests is a tricky one, as it _should_ be supporting it already based on the PR”
“a dependency that comes with its own baggage”
“HTTP is arguably easier but requests! :)”
“in Python you need a separate package like requests to avoid a clunky API”
“requests should be in the Python standard library”
“everybody uses the third-party requests instead of the stdlib urllib”
“pip install requests with well defined data structures”
“requests is some janky layer onto of other janky layers”
“third party stuff like requests or httpx, which aren't always well maintained”
“For years, Python's Requests library was the gold standard, but it has been under feature freeze.”
“Switching to other libraries like requests and aiohttp and supporting them by contributing is clearly a better option.”
“has a function that accepts all you need for a URL and under the hood handles all those other implementations”
“requests is effectively feature-frozen, but I really missed having support for newer standards like HTTP/2 and HTTP/3”
“I guess they won't merge it until absolutely necessary for the 2.33 release.”
“that file isn't specifying the build setup following PEP 517/518/621 standards”
“Django, Pillow, Requests, BeautifulSoup, and pretty much every other library I use regularly”
“had their "source builds" break this year”
“I've been in environments where I couldn't install requests”
“Python (or rather requests, or maybe urllib3) only looks at its own certificate store”
“Requests is a great example of my point, actually.”
“it does actually have a few more things and ergonomic improvements over the builtin HTTP machinery”
“I now use Python's requests module all the time”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.