HTTP Status Codes
Searchable reference of 40 common HTTP status codes with plain-English explanations.
Look up any common HTTP status code and get its official meaning in plain English. Filter by class or search by code, name, or keyword like redirect. Covers the codes you will actually encounter debugging APIs and websites.
40 of 40 status codes
| Code | Name | Meaning |
|---|---|---|
| 100 | Continue | The server received the request headers and the client should proceed to send the request body. |
| 101 | Switching Protocols | The server agrees to switch protocols as requested via the Upgrade header, e.g. HTTP to WebSocket. |
| 200 | OK | The request succeeded. The response body contains the requested representation of the resource. |
| 201 | Created | The request succeeded and a new resource was created, usually identified by the Location header. |
| 202 | Accepted | The request was accepted for processing, but processing has not completed yet. |
| 204 | No Content | The server processed the request successfully and returns no content in the response body. |
| 206 | Partial Content | The server is delivering part of the resource in response to a Range request. |
| 301 | Moved Permanently | The resource has permanently moved (permanent redirect) to the URL in the Location header; update bookmarks and links. |
| 302 | Found | The resource temporarily lives at a different URL (temporary redirect); keep using the original URL for future requests. |
| 303 | See Other | The response can be found at another URI (redirect) and should be retrieved with a GET request. |
| 304 | Not Modified | The cached version is still fresh; the client should use its cached copy. Sent for conditional requests. |
| 307 | Temporary Redirect | Like 302, but the client must not change the HTTP method when following the redirect. |
| 308 | Permanent Redirect | Like 301, but the client must not change the HTTP method when following the redirect. |
| 400 | Bad Request | The server cannot process the request due to malformed syntax or invalid parameters. |
| 401 | Unauthorized | Authentication is required and has failed or was not provided. Despite the name, it means unauthenticated. |
| 402 | Payment Required | Reserved for future use; originally intended for digital payment systems. |
| 403 | Forbidden | The server understood the request but refuses to authorize it; re-authenticating will not help. |
| 404 | Not Found | The server cannot find the requested resource; it may have been deleted or the URL is wrong. |
| 405 | Method Not Allowed | The HTTP method is not supported for this resource, e.g. POST to a read-only endpoint. |
| 406 | Not Acceptable | The server cannot produce a response matching the Accept headers sent by the client. |
| 408 | Request Timeout | The server timed out waiting for the client to send the complete request. |
| 409 | Conflict | The request conflicts with the current state of the resource, e.g. a duplicate unique key. |
| 410 | Gone | The resource is permanently gone with no forwarding address; clients should remove references to it. |
| 412 | Precondition Failed | A precondition in the request headers (such as If-Match) was not met. |
| 413 | Content Too Large | The request body is larger than the server is willing to process (formerly Payload Too Large). |
| 415 | Unsupported Media Type | The server refuses the request because the Content-Type is not supported. |
| 418 | I'm a teapot | An April Fools' joke from RFC 2324 (HTCPCP); some APIs return it as an easter egg. |
| 422 | Unprocessable Content | The server understands the content type and syntax but cannot process the instructions (formerly Unprocessable Entity). |
| 425 | Too Early | The server will not process a request that might be replayed, used with TLS early data. |
| 426 | Upgrade Required | The client should switch to a different protocol, indicated in the Upgrade header. |
| 428 | Precondition Required | The server requires the request to be conditional to prevent lost-update problems. |
| 429 | Too Many Requests | The client sent too many requests in a time window — rate limiting in action. |
| 431 | Request Header Fields Too Large | The request headers are too large; often caused by oversized cookies. |
| 451 | Unavailable For Legal Reasons | The resource is blocked for legal reasons, e.g. censorship or takedown orders. |
| 500 | Internal Server Error | A generic server-side error; the server encountered an unexpected condition. |
| 501 | Not Implemented | The server does not support the functionality required to fulfill the request. |
| 502 | Bad Gateway | A gateway or proxy received an invalid response from the upstream server. |
| 503 | Service Unavailable | The server is temporarily unable to handle the request due to overload or maintenance. |
| 504 | Gateway Timeout | A gateway or proxy timed out waiting for the upstream server to respond. |
| 505 | HTTP Version Not Supported | The server does not support the HTTP protocol version used in the request. |
How to use this calculator
- Type a code, name, or keyword (e.g. 404, not found, redirect) into the search box.
- Or tap a category chip — 1xx, 2xx, 3xx, 4xx, 5xx — to browse one class.
- Read the plain-English meaning in the table.
- Combine search and category filters to narrow large result sets.
Worked example
Searching 404 returns 404 Not Found (4xx): the server cannot find the requested resource. Searching redirect finds all five redirect codes: 301, 302, 303, 307, 308.
Frequently Asked Questions
What do the first digits of a status code mean?
The first digit defines the class: 1xx means informational, 2xx means success, 3xx means redirection, 4xx means the client made an error, and 5xx means the server failed. When debugging, the class alone tells you which side of the connection to investigate — 4xx means check your request, 5xx means check the server.
What is the difference between 401 and 403?
401 Unauthorized means authentication is missing or invalid — despite the name, it really means unauthenticated, and the fix is to log in or send valid credentials. 403 Forbidden means the server knows who you are and still refuses — re-authenticating will not help; you lack permission for that resource. A login page returning 401 versus an admin page returning 403 for a regular user is the classic distinction.
When should I use 301 vs 302 vs 307 vs 308?
Use 301 for a permanent move and 302 for a temporary one. The catch: some clients change POST to GET when following 301/302. Use 308 instead of 301, and 307 instead of 302, when the HTTP method must be preserved — critical for API redirects. Search engines treat 301/308 as transfer-ranking signals and 302/307 as keep-ranking signals.
Why does status code 418 exist?
418 (I am a teapot) comes from RFC 2324, an April Fools joke defining the Hyper Text Coffee Pot Control Protocol. It was never meant for production, but it stuck around: some APIs return it as an easter egg. It is harmless, memorable, and a good reminder that not every spec is deadly serious.
My API returns 429 Too Many Requests — what should I do?
You are being rate-limited: slow down and retry with exponential backoff. Check the Retry-After response header, which tells you how many seconds to wait before trying again. Respect it — hammering a rate-limited endpoint usually extends the lockout. If you control the API, return 429 with a clear Retry-After instead of silently dropping requests.