HTTP Status Code Reference
Developer
A searchable cheat sheet of every HTTP status code, grouped into the five categories: informational (1xx), success (2xx), redirection (3xx), client error (4xx), and server error (5xx). Search by code (404), by name (Not Found), or by any keyword in the description (cache, timeout). Each card has a one-line meaning and a copy button so you can drop the code into a comment or commit message.
- 100Continue
The initial part of the request has been received and the client should continue sending the rest.
- 101Switching Protocols
The server is switching protocols as requested in the Upgrade header (e.g., to WebSocket).
- 102Processing
The server has received and is processing the request, but no response is available yet (WebDAV).
- 103Early Hints
Used to preload resources while the server prepares the final response.
- 200OK
The request succeeded. The meaning depends on the HTTP method used.
- 201Created
The request succeeded and a new resource was created — typically returned after POST.
- 202Accepted
The request was accepted for processing, but the processing has not been completed.
- 204No Content
The request succeeded but no body is returned — common for PUT or DELETE.
- 205Reset Content
Tells the client to reset the view that sent the request (e.g., clear a form).
- 206Partial Content
Returned when the client used the Range header to request a portion of the resource.
- 207Multi-Status
WebDAV — multiple resources, each with its own status code, returned inside an XML body.
- 301Moved Permanently
The resource has a new permanent URL. Search engines update their index to the new location.
- 302Found
The resource is temporarily at a different URL — client should keep using the original URL for future requests.
- 303See Other
After a POST, redirect the client to GET another resource (PRG pattern).
- 304Not Modified
The cached version is still fresh — the client should use its cache.
- 307Temporary Redirect
Like 302, but the request method must not change on the redirect.
- 308Permanent Redirect
Like 301, but the request method must not change on the redirect.
- 400Bad Request
The server cannot process the request due to a client-side error (malformed syntax, missing required fields).
- 401Unauthorized
Authentication is required and either missing or invalid. The response should include a WWW-Authenticate header.
- 402Payment Required
Reserved for future use — sometimes used by APIs to indicate billing-related failures.
- 403Forbidden
The server understood the request but refuses to authorize it. Authentication will not help.
- 404Not Found
The requested resource does not exist on the server.
- 405Method Not Allowed
The HTTP method is not supported for this resource (e.g., POST to a read-only endpoint).
- 406Not Acceptable
The server cannot return a response matching the Accept headers from the request.
- 407Proxy Authentication Required
Authentication with a proxy is required to access the resource.
- 408Request Timeout
The server did not receive a complete request within its idle timeout.
- 409Conflict
The request conflicts with the current state of the resource (e.g., concurrent edits).
- 410Gone
The resource is permanently gone — stronger than 404; tells caches and search engines to drop it.
- 411Length Required
The request did not specify a Content-Length, which this server requires.
- 412Precondition Failed
A condition in the request headers (e.g., If-Match) was not met.
- 413Payload Too Large
The request body is larger than the server is willing to process.
- 414URI Too Long
The URI is longer than the server is willing to interpret.
- 415Unsupported Media Type
The Content-Type of the request is not supported by the server.
- 416Range Not Satisfiable
The Range header cannot be fulfilled (out of the resource bounds).
- 417Expectation Failed
The Expect header could not be fulfilled by the server.
- 418I'm a teapot
An April Fools joke from RFC 2324 — used as an Easter egg in some APIs.
- 422Unprocessable Entity
The request is syntactically correct but semantically wrong (failed validation). Common in REST APIs.
- 423Locked
WebDAV — the resource is locked.
- 424Failed Dependency
WebDAV — the request failed because a previous request it depended on failed.
- 425Too Early
The server is unwilling to risk processing a request that may be replayed.
- 426Upgrade Required
The client should upgrade to a different protocol (e.g., TLS).
- 428Precondition Required
The server requires the request to be conditional (e.g., If-Match).
- 429Too Many Requests
The client has sent too many requests in a given time — rate limited. Look for Retry-After.
- 431Request Header Fields Too Large
The request headers are too large in total or individually.
- 451Unavailable For Legal Reasons
The resource is blocked due to a legal demand (named after Ray Bradbury's Fahrenheit 451).
- 500Internal Server Error
A generic server error — something failed and the server has no more specific message.
- 501Not Implemented
The server does not support the functionality required to fulfill the request.
- 502Bad Gateway
Acting as a gateway / proxy, the server got an invalid response from an upstream server.
- 503Service Unavailable
The server is temporarily unable to handle requests — overloaded or down for maintenance.
- 504Gateway Timeout
Acting as a gateway / proxy, the server did not get a response from an upstream server in time.
- 505HTTP Version Not Supported
The HTTP version in the request is not supported by the server.
- 507Insufficient Storage
WebDAV — the server cannot store the representation needed to complete the request.
- 508Loop Detected
WebDAV — the server detected an infinite loop while processing the request.
- 511Network Authentication Required
The client must authenticate to gain network access (used by captive portals).
How to use
- Filter by category using the colored chips.
- Type in the search box to narrow by code, name, or description.
- Copy a status code with the button next to its title.
Frequently asked questions
- Why are 1xx codes important?
- They're rarely seen by end-user code but handy in advanced cases — 100 Continue lets clients confirm a server accepts a large upload before sending it, 103 Early Hints lets browsers preload while the server prepares the response.
- Difference between 301 and 308?
- Both mean 'permanently moved'. 301 allows clients to change the HTTP method on the redirect (most do POST → GET). 308 requires the method to stay the same. Use 308 for API redirects, 301 for legacy web.
- When should I return 422 vs 400?
- 400 means the request itself is broken (malformed JSON, missing headers). 422 means the request is syntactically valid but the semantics are wrong (e.g., email field has a string but it's not a valid email).
- What's 418 'I'm a teapot' for?
- An April Fools joke from RFC 2324 (HTCPCP — Hyper Text Coffee Pot Control Protocol). Some APIs use it as an Easter egg or as a 'deliberately not implemented' signal.
Related tools
JWT Decoder
Decode a JSON Web Token to inspect its header, claims, and expiration.
UUID Generator
Generate random version-4 UUIDs in bulk, with copy.
Hash Generator (SHA)
Generate SHA-1, SHA-256, SHA-384, and SHA-512 hashes from text.
URL Encoder / Decoder
Percent-encode text for URLs, or decode encoded URLs back to text.
Base64 Encoder / Decoder
Encode text to Base64 or decode Base64 back to text, instantly.
JSON Formatter & Validator
Format, beautify, minify, and validate JSON right in your browser.