Requests

2.32.5 · active · verified Wed Mar 25

The de facto standard synchronous HTTP client for Python. Current version is 2.32.5 (Aug 2025). Stable, slow-moving library. Primary footgun: no default timeout — hangs forever by default. No async support — use httpx or aiohttp for async contexts.

Warnings

Install

Imports

Quickstart

Always pass timeout=. Use Session for multiple requests to same host.

import requests

# One-shot (no connection reuse)
response = requests.get('https://httpbin.org/get', timeout=30)
response.raise_for_status()
data = response.json()

# Session (connection reuse, recommended)
with requests.Session() as session:
    session.headers.update({'Authorization': 'Bearer token'})
    r = session.get('https://api.example.com/users', timeout=30)
    r.raise_for_status()
    users = r.json()

view raw JSON →