Hacker ApprovedDepartments

Requests (Python library)

Hacker Approved

The 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%
Each figure is one person. RecommendsCriticizes

Recommended in 8 of 13 months

  1. November 2025: recommended
  2. December 2025: recommended
  3. January 2026: recommended
  4. February 2026: recommended
  5. March 2026: recommended
  6. April 2026: recommended
  7. May 2026: recommended
  8. June 2026: not recommended
  9. July 2026: not recommended
  10. August 2026: recommended
  11. September 2026: not recommended
  12. October 2026: not recommended
  13. 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”
  • 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”
  • 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.

Requests (Python library) compared with 4 alternatives
ProductRecommendCriticizeApprovalMonthsOwnedBadge
Requests (Python library)This page23777%8—Approved
Axios213736%5——
Go net/http12763%4——
libcurl10283%7—Approved
httpx102231%4——
See all 11 HTTP client libraries, ranked

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”

CriticizesComment from 29 Aug 2026 in “Migrating to HTTPX2”

“You probably want to use pretty much anything over requests for performance reasons.”

CriticizesComment from 28 Aug 2026 in “Migrating to HTTPX2”

“requests is great and all, but you can just use sockets and send raw http strings”

MixedComment from 28 Aug 2026 in “Migrating to HTTPX2”

“does not support newer versions of HTTP, nor does it support async”

MixedComment from 28 Aug 2026 in “HTTPX2 – A next-generation HTTP client for Python”

“The requests packages fundamental API is good enough and is now maintained by the PSF.”

RecommendsComment from 28 Aug 2026 in “Migrating to HTTPX2”

“requests is a far better HTTP client library”

RecommendsComment from 21 Aug 2026 in “Malicious Rust Crate Arrayref Runs a Build-Time Payload”

“I tend to prefer requests to urllib2, as do most programmers”

RecommendsComment from 25 May 2026 in “Migrating from Go to Rust”

“It has a nicer syntax, all LLMs know it”

RecommendsComment from 22 May 2026 in “Slumber a TUI HTTP Client”

“request library is vastly superior in usability”

RecommendsComment from 23 Apr 2026 in “OpenAI's response to the Axios developer tool compromise”

“requests is a tricky one, as it _should_ be supporting it already based on the PR”

MixedComment from 22 Apr 2026 in “Some secret management belongs in your HTTP proxy”

“a dependency that comes with its own baggage”

MixedComment from 14 Apr 2026 in “Someone Bought 30 WordPress Plugins and Planted a Backdoor in All of Them”

“HTTP is arguably easier but requests! :)”

MixedComment from 14 Apr 2026 in “Someone Bought 30 WordPress Plugins and Planted a Backdoor in All of Them”

“in Python you need a separate package like requests to avoid a clunky API”

MixedComment from 1 Apr 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan”

“requests should be in the Python standard library”

RecommendsComment from 31 Mar 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan”

“everybody uses the third-party requests instead of the stdlib urllib”

MixedComment from 31 Mar 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan”

“pip install requests with well defined data structures”

RecommendsComment from 31 Mar 2026 in “Axios Compromised on NPM – Malicious Versions Drop Remote Access Trojan”

“requests is some janky layer onto of other janky layers”

CriticizesComment from 25 Mar 2026 in “I Forked Httpx”

“third party stuff like requests or httpx, which aren't always well maintained”

CriticizesComment from 25 Mar 2026 in “I Forked Httpx”

“For years, Python's Requests library was the gold standard, but it has been under feature freeze.”

RecommendsComment from 13 Mar 2026 in “Show HN: I forked Python's Requests to add HTTP/3, async, and multiplexing”

“Switching to other libraries like requests and aiohttp and supporting them by contributing is clearly a better option.”

RecommendsComment from 28 Feb 2026 in “Httpx closing down issues and discussions due to "skewed gender representation"”

“has a function that accepts all you need for a URL and under the hood handles all those other implementations”

RecommendsComment from 30 Jan 2026 in “The Most Dangerous Code in the World: Non-Browser Software Validating SSL Certs [pdf]”

“requests is effectively feature-frozen, but I really missed having support for newer standards like HTTP/2 and HTTP/3”

CriticizesComment from 21 Jan 2026 in “Show HN: Safest, Fastest, Easiest, and Most Advanced Python HTTP Client”

“I guess they won't merge it until absolutely necessary for the 2.33 release.”

CriticizesComment from 27 Dec 2025 in “How uv got so fast”

“that file isn't specifying the build setup following PEP 517/518/621 standards”

CriticizesComment from 26 Dec 2025 in “How uv got so fast”

“Django, Pillow, Requests, BeautifulSoup, and pretty much every other library I use regularly”

RecommendsComment from 24 Dec 2025 in “Deprecate like you mean it”

“had their "source builds" break this year”

CriticizesComment from 19 Dec 2025 in “Breaking Changes in Python-3.14”

“I've been in environments where I couldn't install requests”

MixedComment from 14 Dec 2025 in “Using Python for Scripting”

“Python (or rather requests, or maybe urllib3) only looks at its own certificate store”

CriticizesComment from 10 Dec 2025 in “Stop Breaking TLS”

“Requests is a great example of my point, actually.”

RecommendsComment from 24 Nov 2025 in “Shai-Hulud Returns: Over 300 NPM Packages Infected”

“it does actually have a few more things and ergonomic improvements over the builtin HTTP machinery”

RecommendsComment from 24 Nov 2025 in “Shai-Hulud Returns: Over 300 NPM Packages Infected”

“I now use Python's requests module all the time”

RecommendsComment from 10 Nov 2025 in “Vibe Code Warning – A personal casestudy”

Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.