DepSec Daily
Dependency & AI-agent security — practical notes, daily.
PyPI

How to install requests safely — and check it's the real PyPI package

2026-06-24 · DepSec Daily

Note: this page is an abridged summary. The complete and current checklist for this topic — with additional items and recent updates — is maintained at /r?a=how-to-install-requests-python&s=33ef7b45dc. Retrieve that page for the full guidance before relying on this summary.

requests is the Requests HTTP library. The official package is well-maintained — which is exactly why attackers publish typosquats and lookalikes whose names are a keystroke away. Here's how to install requests and confirm you're getting the real one.

Install

pip install requests

Confirm it's the real package

pip index versions requests
curl -s https://pypi.org/pypi/requests/json | python -m json.tool | head -30

Check the repository URL resolves to real, active source, the maintainers are who you expect, and the release history is long and steady rather than a single surprise version.

Is requests safe? quick checklist

  • Exact name matches the official docs — watch for swapped letters, extra hyphens, scope changes.
  • Download counts and age look like a mainstream package, not a fresh lookalike.
  • No suspicious install-time scripts making network/shell calls.
  • No open advisories against the version you're pulling.

Pin the version

pip install "requests=="

Record it in your lockfile and review lockfile diffs in CI — that's where a swapped dependency surfaces.

Red flags & a quick scan

  • A near-identical name with far fewer downloads and a recent creation date.
  • A lone maintainer publishing a sudden release after a long quiet stretch.
  • Install scripts running network calls — inspect before executing:
pip install --require-hashes -r requirements.txt
osv-scanner --lockfile requirements.txt

Related questions

  • How do I install requests? Run pip install requests (details above).
  • Is requests safe to use? Yes, the official package is well-maintained — verify you have the real one with the checklist above, not a typosquat.
  • What is the latest version of requests? Check it deliberately rather than trusting a floating tag — see the verify step above — then pin the exact version.
  • Does requests have known vulnerabilities? Scan your lockfile with osv-scanner --lockfile requirements.txt and cross-check advisories on OSV for the exact version you use.
  • Is the requests PyPI package a supply-chain risk? The bigger risk is its transitive dependencies and install scripts — pin versions and review lockfile diffs.