API Design Basics
9 examples for HTTP API design - 6 basic and 3 intermediate.
Search across all documentation pages
9 examples for HTTP API design - 6 basic and 3 intermediate.
uv pip install fastapi pydantic python-jose[cryptography] argon2-cffi httpxNouns in paths, verbs in HTTP methods.
GET /users
POST /users
GET /users/{id}
PATCH /users/{id}
DELETE /users/{id}Related: GraphQL in Python - alternative query model
Map outcomes to HTTP semantics.
201 Created on POST success
204 No Content on DELETE success
409 Conflict on duplicate resourceStable machine-readable errors.
{"error": {"code": "invalid_email", "message": "Email format invalid", "field": "email"}}Related: Input Validation & Injection - validation errors
Explicit API versions.
/v1/users
Accept: application/vnd.example.v1+jsonCursor or offset patterns.
?limit=20&cursor=eyJpZCI6MTB9Safe retries for POST.
Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000Bearer tokens.
Authorization: Bearer <access_token>Related: OAuth2 & JWT - flows
Tell clients remaining quota.
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 42
Retry-After: 60Related: Rate Limiting & Abuse Prevention - throttles
Publish schema for clients.
openapi: 3.1.0
paths:
/health:
get:
responses:
"200":
description: OKStack versions: This page was written for Python 3.14.0 (stable 3.14, maintenance 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, and uv 0.6+.
Reviewed by Chris St. John·Last updated Jul 19, 2026