Continue
1xxInterim response — client should continue the request.
Use when: Expect: 100-continue uploads.
Example: Client sends headers first; server replies 100 before body.
Showing 28 of 28 common status codes
Interim response — client should continue the request.
Use when: Expect: 100-continue uploads.
Example: Client sends headers first; server replies 100 before body.
Server is switching protocols as requested.
Use when: WebSocket upgrades.
Example: Upgrade: websocket → 101 Switching Protocols.
Request succeeded.
Use when: Successful GET/POST/PUT responses.
Example: GET /api/users → 200 with JSON body.
Resource was created.
Use when: Successful POST that creates an entity.
Example: POST /users → 201 + Location header.
Accepted for processing but not completed.
Use when: Async jobs / queues.
Example: POST /exports → 202 { jobId }.
Success with empty body.
Use when: DELETE or PUT with no response body.
Example: DELETE /items/1 → 204.
Resource permanently moved to a new URI.
Use when: Canonical URL / SEO redirects.
Example: http → https permanent redirect.
Temporary redirect (historical “Found”).
Use when: Short-lived redirects; prefer 307/308 when method must stay.
Example: Login gate temporary redirect.
Cached copy is still valid.
Use when: Conditional GET with ETag/If-Modified-Since.
Example: Browser revalidates asset → 304.
Temporary redirect; method and body must not change.
Use when: Preserve POST across redirect.
Example: POST /pay → 307 → /pay-v2.
Permanent redirect; method and body must not change.
Use when: API path renames that keep POST.
Example: POST /v1/orders → 308 /v2/orders.
Server cannot process the request due to client error.
Use when: Invalid JSON, missing fields, bad query.
Example: Malformed JSON body → 400.
Authentication is required or failed.
Use when: Missing/invalid token or credentials.
Example: No Authorization header → 401.
Authenticated but not allowed.
Use when: Permission / RBAC denial.
Example: User role cannot delete → 403.
Resource does not exist.
Use when: Unknown path or missing entity.
Example: GET /users/999 → 404.
HTTP method not supported for this resource.
Use when: Wrong verb on an endpoint.
Example: DELETE on read-only route → 405.
Server timed out waiting for the request.
Use when: Slow clients / dropped connections.
Example: Client stalled mid-upload → 408.
Request conflicts with current resource state.
Use when: Duplicate keys, version conflicts.
Example: Email already registered → 409.
Resource permanently removed.
Use when: Retired endpoints or deleted content.
Example: Old API path intentionally gone → 410.
Request body exceeds server limits.
Use when: Upload size limits.
Example: 50MB file when limit is 10MB → 413.
Content-Type not supported.
Use when: Wrong body format.
Example: Sent XML to JSON-only API → 415.
Syntax OK but semantic validation failed.
Use when: Form/field validation errors.
Example: age: -1 → 422 with field errors.
Rate limit exceeded.
Use when: API throttling / abuse protection.
Example: 60 req/min exceeded → 429 + Retry-After.
Unexpected server failure.
Use when: Unhandled exceptions.
Example: Null pointer in handler → 500.
Server does not support the functionality.
Use when: Unimplemented methods/features.
Example: TRACE disabled → 501.
Gateway/proxy got an invalid response upstream.
Use when: Reverse proxies, CDN, API gateways.
Example: Nginx upstream crash → 502.
Server temporarily unavailable.
Use when: Maintenance, overload.
Example: Deploy window → 503.
Upstream did not respond in time.
Use when: Slow backends behind a proxy.
Example: Upstream DB hang → 504.
Developers constantly search “what is 429 status code” or “HTTP 502 meaning” while debugging APIs and gateways. This page keeps the common codes in one private, searchable list — no signup, no tracking of what you search.