Complete HTTP status codes reference. Search 1xx–5xx codes with descriptions.
Complete HTTP status codes reference: 1xx informational, 2xx success, 3xx redirects, 4xx client errors, 5xx server errors. Descriptions, use cases, and MDN links. Search all codes instantly.
HTTP Status Codes Reference tool
Click any row to expand · Hover to copy code + phrase
1xx — Informational4
100ContinueThe server has received the request headers and the client should proceed to send the request body.
The server has received the request headers and the client should proceed to send the request body. — Useful for large payloads — client checks the server will accept before sending body.
202AcceptedThe request has been accepted for processing, but processing is not complete.
The request has been accepted for processing, but processing is not complete. — Used for async operations. Response may include a way to track processing.
304Not ModifiedThe resource has not changed since the version specified by the request headers.
The resource has not changed since the version specified by the request headers. — Client uses If-None-Match or If-Modified-Since. No body is returned — use cached copy.
307Temporary RedirectThe resource is temporarily at a different URI. Method and body must not change.
The resource is temporarily at a different URI. Method and body must not change. — Like 302 but guarantees the same HTTP method is used after redirect.
400Bad RequestThe server cannot process the request due to client error (invalid syntax, invalid framing, etc.).
The server cannot process the request due to client error (invalid syntax, invalid framing, etc.). — Include error details in the response body so the client knows what to fix.
401UnauthorizedThe client must authenticate itself to get the requested response.
The client must authenticate itself to get the requested response. — Despite the name, this means unauthenticated. Use 403 for authenticated but forbidden.
403ForbiddenThe client is authenticated but does not have access rights to the content.
The client is authenticated but does not have access rights to the content. — Unlike 401, the client's identity is known. Revealing the resource exists is intentional.
406Not AcceptableThe server cannot produce a response matching the Accept headers.
The server cannot produce a response matching the Accept headers. — Server-driven content negotiation failed. Client should use different Accept headers.
413Content Too LargeThe request body is larger than the server is willing or able to process.
The request body is larger than the server is willing or able to process. — Previously called 'Payload Too Large'. Server may close connection or return Retry-After.
421Misdirected RequestThe request was directed at a server that is not able to produce a response.
The request was directed at a server that is not able to produce a response. — Server is not configured to handle the combination of scheme and authority in the request.
422Unprocessable ContentThe request was well-formed but the server is unable to process the contained instructions.
The request was well-formed but the server is unable to process the contained instructions. — Semantic errors — the body is valid JSON/XML but fails validation rules.
500Internal Server ErrorThe server encountered an unexpected condition that prevented it from fulfilling the request.
The server encountered an unexpected condition that prevented it from fulfilling the request. — Catch-all for server-side errors. Don't leak stack traces to clients.
501Not ImplementedThe server does not support the functionality required to fulfill the request.
The server does not support the functionality required to fulfill the request. — The request method is not recognized or the server lacks the capability.
504Gateway TimeoutThe gateway or proxy did not receive a timely response from an upstream server.
The gateway or proxy did not receive a timely response from an upstream server. — The backend took too long to respond. Check for slow queries or network issues.
🔒 Runs in your browser · No uploads · Your data never leaves your device
How to use
1
Filter by category
Click 1xx, 2xx, 3xx, 4xx, or 5xx to filter to that range. Click All to see every status code.
2
Search for a code
Type a code number or keyword (e.g. '429', 'rate limit', 'not found') to filter instantly.
3
Expand for details
Click any row to expand and see the full description, usage notes, and a link to MDN documentation.
Common use cases
Choosing the right error code for an API — Look up 4xx codes to decide whether a validation error should return 400, 422, or 409 based on its semantics.
Understanding a third-party API response — Search by code number to quickly understand what a 429, 502, or 418 response means from an external service.
Examples
API error codes
Search '4xx' or click the 4xx filter to see all client errors.
Output
400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests…
Frequently asked questions
What is the difference between 401 and 403?
401 Unauthorized means the client is not authenticated — it needs to log in. 403 Forbidden means the client is authenticated but doesn't have permission. The naming is confusing by historical accident.
When should I use 422 vs 400?
Use 400 for malformed requests (invalid JSON, missing required headers). Use 422 for semantically invalid requests (valid JSON but field values fail validation rules).
Is 418 I'm a Teapot a real status code?
Yes, it was defined in RFC 2324 as an April Fools' joke in 1998. It was kept in the HTTP standard as a historical artifact. Some APIs use it for easter eggs.
Key concepts
4xx error
HTTP status codes in the 400–499 range indicating a client error — the request was malformed, unauthorized, or contained invalid data.
5xx error
HTTP status codes in the 500–599 range indicating a server error — the server failed to fulfill a valid request.