What is HTTP Status Codes?
HTTP Status Codes — An HTTP Status Codes Reference is a free tool that lists all HTTP response status codes with descriptions, use cases, and troubleshooting guidance.
Loading your tools...
Complete reference for all HTTP status codes from 1xx Informational to 5xx Server Error. Each code includes its meaning, when to use it, and common scenarios. Essential for API development, debugging, and web infrastructure.
HTTP Status Codes: Search or browse HTTP status codes by category: 1xx (informational), 2xx (success), 3xx (redirection), 4xx (client error), 5xx (server error). Each code includes its meaning, common causes, and how to fix it.
Loading Tool...
HTTP Status Codes — An HTTP Status Codes Reference is a free tool that lists all HTTP response status codes with descriptions, use cases, and troubleshooting guidance.
Search for a status code or class group.
Review the response meaning and common causes.
Map the code to client/server handling logic.
Apply fixes and revalidate request behavior.
API integration troubleshooting
Backend response design reviews
Frontend error handling validation
Support incident diagnosis
HTTP status codes are 3-digit numbers grouped by leading digit into five classes, each communicating a category of response:
| Code | Name | When to use |
|---|---|---|
| 200 | OK | Successful GET / POST / PUT — the default success response |
| 201 | Created | Successful POST that created a new resource — return the resource in body |
| 204 | No Content | Successful DELETE or PUT with no response body |
| 301 | Moved Permanently | URL permanently changed — SEO-preserving redirect |
| 302 / 307 | Found / Temp Redirect | Temporary redirect — 307 preserves method, 302 may downgrade POST to GET |
| 304 | Not Modified | Conditional GET — cached version still valid (NOT an error) |
| 400 | Bad Request | Malformed request — parsing failure, missing required fields, invalid JSON |
| 401 | Unauthorized | Authentication required or invalid (e.g., expired JWT) — different from 403! |
| 403 | Forbidden | Authenticated but lacks permission — user is logged in but not allowed |
| 404 | Not Found | Resource doesn't exist — also use to hide existence for security |
| 409 | Conflict | Resource state conflict — e.g., duplicate email signup, stale ETag |
| 422 | Unprocessable Entity | Syntactically valid but semantically invalid — use over 400 for validation errors |
| 429 | Too Many Requests | Rate limit exceeded — return `Retry-After` header |
| 500 | Internal Server Error | Unhandled server-side exception — generic catch-all (don't expose stack traces) |
| 502 | Bad Gateway | Upstream service returned invalid response — proxy / load balancer error |
| 503 | Service Unavailable | Temporary overload or maintenance — return `Retry-After` header |
These two codes are constantly confused, but they have a specific meaning:
Mnemonic: 401 = "who are you?" (need to authenticate); 403 = "I know who you are, but you can't do that."
All three are 4xx client errors, but they signal different validation failures:
Many APIs use 400 for everything client-side, but the more granular distinction helps client code respond appropriately (show form field errors for 422, show retry guidance for 429, show login dialog for 401, etc.).
{"error":"code","message":"human readable","details":[...]} — even on 4xx/5xxCloudflare adds custom 5xx codes when their edge can't reach your origin. Knowing them helps debug fast:
On the client, use the status code class to drive UX behavior:
62 status codes found
HTTP stands for Hypertext Transfer Protocol. Common methods:
| Method | Description | Safe | Idempotent |
|---|---|---|---|
| GET | Retrieve a resource | Yes | Yes |
| POST | Create a resource or submit data | No | No |
| PUT | Replace a resource | No | Yes |
| PATCH | Partially update a resource | No | No |
| DELETE | Delete a resource | No | Yes |
| HEAD | Same as GET but headers only | Yes | Yes |
| OPTIONS | Describe communication options | Yes | Yes |
| CONNECT | Establish tunnel (e.g. SSL) | No | No |
| TRACE | Message loop-back test | Yes | Yes |