HTTP Status Codes ReferenceSearchable guide to 200, 301, 404, 429, 500, 502, and more — with use cases and examples.

Showing 28 of 28 common status codes

100

Continue

1xx

Interim response — client should continue the request.

Use when: Expect: 100-continue uploads.

Example: Client sends headers first; server replies 100 before body.

101

Switching Protocols

1xx

Server is switching protocols as requested.

Use when: WebSocket upgrades.

Example: Upgrade: websocket → 101 Switching Protocols.

200

OK

2xx

Request succeeded.

Use when: Successful GET/POST/PUT responses.

Example: GET /api/users → 200 with JSON body.

201

Created

2xx

Resource was created.

Use when: Successful POST that creates an entity.

Example: POST /users → 201 + Location header.

202

Accepted

2xx

Accepted for processing but not completed.

Use when: Async jobs / queues.

Example: POST /exports → 202 { jobId }.

204

No Content

2xx

Success with empty body.

Use when: DELETE or PUT with no response body.

Example: DELETE /items/1 → 204.

301

Moved Permanently

3xx

Resource permanently moved to a new URI.

Use when: Canonical URL / SEO redirects.

Example: http → https permanent redirect.

302

Found

3xx

Temporary redirect (historical “Found”).

Use when: Short-lived redirects; prefer 307/308 when method must stay.

Example: Login gate temporary redirect.

304

Not Modified

3xx

Cached copy is still valid.

Use when: Conditional GET with ETag/If-Modified-Since.

Example: Browser revalidates asset → 304.

307

Temporary Redirect

3xx

Temporary redirect; method and body must not change.

Use when: Preserve POST across redirect.

Example: POST /pay → 307 → /pay-v2.

308

Permanent Redirect

3xx

Permanent redirect; method and body must not change.

Use when: API path renames that keep POST.

Example: POST /v1/orders → 308 /v2/orders.

400

Bad Request

4xx

Server cannot process the request due to client error.

Use when: Invalid JSON, missing fields, bad query.

Example: Malformed JSON body → 400.

401

Unauthorized

4xx

Authentication is required or failed.

Use when: Missing/invalid token or credentials.

Example: No Authorization header → 401.

403

Forbidden

4xx

Authenticated but not allowed.

Use when: Permission / RBAC denial.

Example: User role cannot delete → 403.

404

Not Found

4xx

Resource does not exist.

Use when: Unknown path or missing entity.

Example: GET /users/999 → 404.

405

Method Not Allowed

4xx

HTTP method not supported for this resource.

Use when: Wrong verb on an endpoint.

Example: DELETE on read-only route → 405.

408

Request Timeout

4xx

Server timed out waiting for the request.

Use when: Slow clients / dropped connections.

Example: Client stalled mid-upload → 408.

409

Conflict

4xx

Request conflicts with current resource state.

Use when: Duplicate keys, version conflicts.

Example: Email already registered → 409.

410

Gone

4xx

Resource permanently removed.

Use when: Retired endpoints or deleted content.

Example: Old API path intentionally gone → 410.

413

Payload Too Large

4xx

Request body exceeds server limits.

Use when: Upload size limits.

Example: 50MB file when limit is 10MB → 413.

415

Unsupported Media Type

4xx

Content-Type not supported.

Use when: Wrong body format.

Example: Sent XML to JSON-only API → 415.

422

Unprocessable Entity

4xx

Syntax OK but semantic validation failed.

Use when: Form/field validation errors.

Example: age: -1 → 422 with field errors.

429

Too Many Requests

4xx

Rate limit exceeded.

Use when: API throttling / abuse protection.

Example: 60 req/min exceeded → 429 + Retry-After.

500

Internal Server Error

5xx

Unexpected server failure.

Use when: Unhandled exceptions.

Example: Null pointer in handler → 500.

501

Not Implemented

5xx

Server does not support the functionality.

Use when: Unimplemented methods/features.

Example: TRACE disabled → 501.

502

Bad Gateway

5xx

Gateway/proxy got an invalid response upstream.

Use when: Reverse proxies, CDN, API gateways.

Example: Nginx upstream crash → 502.

503

Service Unavailable

5xx

Server temporarily unavailable.

Use when: Maintenance, overload.

Example: Deploy window → 503.

504

Gateway Timeout

5xx

Upstream did not respond in time.

Use when: Slow backends behind a proxy.

Example: Upstream DB hang → 504.

Why bookmark a status code reference?

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.

Related Tools

All tools