Look Up an HTTP Status Code
Enter a number, official title, or meaning.
Looking up status code...
Search above or select any code in the full reference below.
Complete HTTP Status Code List
All currently assigned IANA entries, including reserved and temporary registrations.
1xx Informational
The request was received and processing is continuing before a final response.
2xx Successful
The request was successfully received, understood, and accepted.
3xx Redirection
Further action is needed to complete the request, often by using another resource or cached representation.
4xx Client Error
The request cannot be fulfilled because of its syntax, state, credentials, permissions, or target.
5xx Server Error
The server failed to fulfill an apparently valid request.
Common Non-standard Codes
These codes are used by specific servers or platforms and are not part of the IANA HTTP Status Code Registry.
How to Read This HTTP Status Code Reference
An HTTP status code is a three-digit number describing the result of a request. Codes from 100 through 599 are valid HTTP status codes, and the first digit identifies the response class. The reason phrase, such as Not Found, is descriptive and can be changed or omitted without changing the protocol meaning.
A status code is only part of a response. Request method, response fields, cache controls, and a structured error body provide the context a client needs to act correctly. An API should choose the most precise code available without inventing semantics that the standard does not define.
HTTP Status Code Classes
| Class | Meaning | What it tells the client |
|---|---|---|
| 1xx | Informational | Processing is continuing before a final response. |
| 2xx | Successful | The request was received, understood, and accepted. |
| 3xx | Redirection | Further action or a cached representation is needed. |
| 4xx | Client Error | The request, credentials, permissions, or target prevents fulfillment. |
| 5xx | Server Error | The server failed to fulfill an apparently valid request. |
Common HTTP Response Codes
Common does not mean interchangeable. For example, 201 precisely reports that a resource was created, while 204 reports success without response content. A 404 identifies an unavailable target, while 500 reports an unexpected server-side failure.
| Code | Meaning | Typical use |
|---|---|---|
| 200 OK | Request succeeded | Return a successful representation. |
| 201 Created | Resource created | Confirm a successful resource-creation request. |
| 204 No Content | Success without content | Confirm an action when no response body is needed. |
| 301 / 308 | Permanent redirect | Move a resource permanently; 308 preserves the method. |
| 400 Bad Request | Request-level client error | Reject malformed syntax or framing. |
| 401 / 403 | Authentication / permission | Challenge credentials or refuse an understood request. |
| 404 Not Found | Target unavailable | Report a missing resource or conceal a forbidden one. |
| 409 / 422 | State conflict / invalid instructions | Describe a resolvable conflict or semantic content error. |
| 429 Too Many Requests | Rate limit exceeded | Throttle a client and optionally provide Retry-After. |
| 500 / 502 / 503 / 504 | Server or upstream failure | Describe unexpected, gateway, availability, or timeout failures. |
401 vs 403
401 Unauthorized means valid authentication credentials are missing or failed and normally includes a WWW-Authenticate challenge. 403 Forbidden means the server understood the request but refuses it, including cases where authenticated credentials lack permission.
301 vs 302 vs 307 vs 308
301 and 308 are permanent; 302 and 307 are temporary. The critical difference is method handling: 307 and 308 require the client to preserve the request method and content, while historical handling of 301 and 302 can change POST to GET.
500 vs 502 vs 503 vs 504
500 is an unexpected server failure. 502 means a gateway received an invalid upstream response. 503 means temporary overload or maintenance. 504 means a gateway waited too long for an upstream response. These codes point investigation toward different components.
REST API Status Codes
A REST API should pair a precise status code with a structured error representation. RFC 9457 problem details can provide a stable type, title, status, detail, and instance without forcing clients to parse human-readable messages.
Registered, Unassigned, and Non-standard Status Codes
The IANA HTTP Status Code Registry is the authoritative list of assigned values and their defining specifications. A code can also be reserved, temporarily registered, or marked unused or obsoleted. Those labels matter because seeing a three-digit value in software does not automatically give it standardized HTTP semantics.
Servers and platforms sometimes define operational codes outside the registry. nginx commonly records 499 when a client closes a request, while Cloudflare exposes several provider-specific 52x codes. These values are useful when diagnosing that specific system, but clients cannot assume that another server uses the same number in the same way. An otherwise unrecognized valid code is interpreted according to its class.
Caching and Retrying HTTP Responses
Do not infer cacheability from the response class alone. RFC 9110 identifies several statuses that can be heuristically cacheable, including 200, 301, 308, 404, and 410, but the request method and explicit cache fields remain authoritative. A 304 Not Modified response has a specialized role: it validates or updates an existing cached representation rather than supplying a new response body.
Retries also require context. A client may retry selected transient failures, but only when repeating the operation is safe or known to be idempotent. Honor Retry-After on responses such as 429 and 503, apply bounded backoff, and prevent many clients from retrying simultaneously. Repeating an unchanged 4xx request usually wastes capacity because the client must correct the request first.
HTTP Status Code FAQ
What does HTTP status code 404 mean?
404 Not Found means the origin server did not find a current representation for the target resource, or is unwilling to disclose that one exists. It does not by itself prove that the server is broken.
What is the difference between a 4xx and 5xx error?
A 4xx response indicates that something about the request, credentials, permissions, or target prevents fulfillment. A 5xx response means the server failed to fulfill an apparently valid request.
What does a 500 Internal Server Error mean?
500 reports an unexpected server condition when no more specific 5xx status applies. Servers should log diagnostic detail internally without exposing stack traces or secrets to clients.
Should an API return 200 or 201 after creating a resource?
Use 201 Created when the request creates a resource and identify the primary resource with Location when appropriate. Use 200 when the successful result is better represented as a normal response rather than creation semantics.
Which HTTP status codes should a client retry?
Retry decisions depend on request safety, idempotency, and response guidance. Clients commonly retry selected 408, 429, 500, 502, 503, and 504 responses with bounded backoff, while honoring Retry-After when present.
Is 499 an official HTTP status code?
No. nginx uses 499 in logs to indicate that the client closed the request before nginx completed it, but IANA does not register 499. Treat vendor-specific codes as operational diagnostics, not universal HTTP semantics.
Related Developer Tools
URL Encoder / Decoder
Prepare URL components and inspect percent-encoded values.
JSON Formatter & Validator
Format and validate API response bodies.
RegEx Tester & Debugger
Test patterns used in routing and validation.
Unix Timestamp Converter
Inspect timestamps used in logs and API payloads.
Base64 Encoder / Decoder
Encode and decode common transport values.
ASCII Table & Character Lookup
Inspect characters used in protocol text.