Searchable reference for every HTTP status code — 1xx to 5xx — with meanings, typical use cases, and developer-friendly explanations.
The server has received the request headers and the client should continue sending the body.
The server agrees to switch protocols, commonly to WebSockets or HTTP/2.
The server is still processing the request and no response is ready yet.
The request succeeded and the response body carries the result.
A new resource was successfully created as a result of the request.
The request was accepted for processing, but the work may still be in progress.
The response came from a third party or a local copy, not the origin server.
The request succeeded but there is no content to return.
The request succeeded and the client should reset the document view.
The server is returning only part of the resource, as requested via Range headers.
A WebDAV response carrying multiple status codes for different sub-requests.
A WebDAV resource was already listed in an earlier part of a multi-status response.
The server fulfilled the request using instance manipulations, such as a delta encoding.
The resource has several representations and the client should pick one.
The resource has permanently moved and all future requests should use the new URL.
The resource is temporarily at a different URL; the client should keep using the original.
The response is at another URL, fetched with GET — typically after a form submission.
The cached version is still valid — send it again without a new body.
The resource must be accessed through the specified proxy.
Temporary redirect that preserves the HTTP method and body.
Permanent redirect that preserves the HTTP method and body.
The server cannot process the request due to malformed syntax or invalid data.
Authentication is required — you haven't proven who you are.
Reserved for future use; originally meant for digital payments.
The server understood the request but refuses to authorize it.
The resource does not exist on the server.
The method (GET/POST/…) is not allowed for this resource.
The resource cannot produce content matching the Accept header.
Authentication with the proxy is required before the request proceeds.
The server gave up waiting for the client to send the request.
The request conflicts with the current state of the resource.
The resource used to exist but has been permanently removed.
The request needs a Content-Length header.
One of the request's preconditions (e.g. If-Match) failed.
The request body exceeds the server's size limit.
The URL is longer than the server can handle.
The request body format isn't supported by the server.
The Range header can't be satisfied — the range is out of bounds.
The server can't meet the expectation in the Expect header.
The server refuses to brew coffee because it is, in fact, a teapot.
The request was sent to a server that cannot respond to the authority.
The request is well-formed but contains semantically invalid content.
The resource is locked and cannot be modified.
The request failed because a previous dependent request failed.
The server refuses the request while HTTP/3 connection establishment is still in progress.
The server requires the client to upgrade to a different protocol.
The server requires conditional headers like If-Match to prevent race conditions.
The client has hit a rate limit — slow down.
Headers exceed the server's limit — often caused by oversized cookies.
The resource is blocked due to legal demands.
An unexpected condition crashed the server while handling the request.
The server does not support the functionality the request requires.
An upstream server returned an invalid response.
The server is overloaded or down for maintenance.
The upstream server didn't reply in time.
The server does not support the HTTP protocol version used.
A circular reference in transparent content negotiation.
The server ran out of storage to complete the request.
The server detected an infinite loop while processing the request.
The request needs further extensions to be served.
The client must authenticate to the network (captive portal).
A printable one-pager of every status code — plus the 12 you'll actually use, explained.
No spam. Unsubscribe anytime.
Discover more utility-driven tools designed to enhance your workflow and technical excellence.
Generate .gitignore files from 30+ templates — Node, Python, Go, Rust, Java, macOS, Windows, IDEs, and more. Copy or download instantly.
Generate production-ready Dockerfiles and .dockerignore for Node, Python, Go, Rust, Java, and Next.js — multi-stage, distroless-aware.
Generate SEO-ready title, description, Open Graph, and Twitter Card tags from your inputs — with Google preview and copy-ready HTML.