HTTP Status Codes
Complete reference for all standard HTTP status codes with descriptions, use cases, and examples.
The server agrees to switch protocols as requested by the client via the Upgrade header. Commonly used to establish WebSocket connections.
The server has received and is processing the request, but no response is available yet. Prevents the client from timing out assuming the request was lost.
Used to return preliminary HTTP response headers before the final response is sent. Allows the client to start preloading resources while the server prepares the response.
The request has succeeded. The meaning of success depends on the HTTP method: GET returns the resource, POST returns the result of the action.
The request has been fulfilled, resulting in the creation of a new resource. The response should include a Location header pointing to the new resource.
The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon.
The request was successful but the returned metadata is from a transforming proxy rather than the origin server. The payload may differ from the 200 response.
The server successfully processed the request and is not returning any content. Commonly used for DELETE or PUT operations where no body is needed.
The server successfully processed the request and tells the client to reset the document view. Useful to clear form fields after submission.
The server is delivering only part of the resource due to a Range header sent by the client. Used for resumable downloads and video streaming.
The response body contains multiple status codes for multiple independent operations. Defined in WebDAV (RFC 4918).
Used inside a <dav:propstat> element to avoid enumerating the internal members of multiple bindings to the same collection. Defined in WebDAV Binding Extensions.
The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.
The requested resource has multiple representations, each with its own specific location. The user agent or user should choose one.
The requested resource has been permanently moved to a new URL. Future requests should use the new URL. Search engines update their index.
The requested resource temporarily resides at a different URL. The original URL should be used for future requests. Not cached by default.
The response to the request can be found under a different URL using the GET method. Used to redirect after a POST to prevent form re-submission.
The resource has not been modified since the version specified in the If-Modified-Since or If-None-Match headers. The client can use its cached version.
The requested resource is only available through a proxy. Deprecated due to security concerns; modern clients rarely honor this response.
The request should be repeated with another URI using the same method. Unlike 302, the request method must not be changed when following the redirect.
The request and all future requests should be repeated using another URI using the same method. The HTTP method must not be changed, unlike 301.
The server cannot or will not process the request due to client-side errors such as malformed syntax, invalid request framing, or deceptive routing.
The request lacks valid authentication credentials. The response must include a WWW-Authenticate header specifying the authentication scheme.
Reserved for future use. Originally intended for digital payment systems; now used by some APIs to indicate quota exhaustion or payment needed.
The server understood the request but refuses to authorize it. The client is authenticated but lacks permission. Unlike 401, re-authenticating will not help.
The server cannot find the requested resource. The URL is not recognized or the resource does not exist. May also be used to hide the existence of a resource.
The request method is known by the server but is not supported for the target resource. The response must include an Allow header listing supported methods.
The server cannot produce a response matching the list of acceptable values in the request's content negotiation headers.
Authentication is required with a proxy. The client must first authenticate with the proxy using the Proxy-Authorization header.
The server timed out waiting for the request. The connection may be reused by the client; the server closes the connection after sending this response.
The request conflicts with the current state of the target resource. The conflict description should be returned in the response body.
The target resource is no longer available and this condition is likely permanent. Unlike 404, the server is explicitly indicating the resource once existed.
The server refuses to accept the request without a defined Content-Length header.
One or more precondition headers (If-Match, If-Unmodified-Since) evaluated to false on the server.
The request entity is larger than the server is willing or able to process. Formerly called Payload Too Large.
The URI provided was too long for the server to process. Can occur when GET query strings carry too much data.
The server refuses to accept the request because the payload format is in an unsupported format as indicated by the Content-Type header.
The range specified in the Range header cannot be fulfilled. The resource may be smaller than the range requested.
The server cannot meet the requirements of the Expect request header field.
The server refuses to brew coffee because it is, permanently, a teapot. An April Fools' joke from RFC 2324 (Hyper Text Coffee Pot Control Protocol).
The request was directed at a server that is not able to produce a response for the combination of scheme and authority in the request URI.
The server understands the content type and the syntax is correct, but the instructions contained are semantically erroneous. Formerly called Unprocessable Entity.
The resource that is being accessed is locked. Used in WebDAV to indicate that a resource is locked and cannot be modified.
The method could not be performed because the requested action depended on another action that failed. Used in WebDAV batch operations.
The server is unwilling to risk processing a request that might be replayed. Intended to prevent replay attacks on TLS 0-RTT data.
The client should switch to a different protocol. The server sends an Upgrade header indicating the required protocol.
The origin server requires the request to be conditional. This prevents the lost-update problem where a client GETs a resource, modifies it, and PUTs it back.
The user has sent too many requests in a given amount of time. The response may include a Retry-After header indicating when to retry.
The server is unwilling to process the request because its header fields are too large. The request may be resubmitted after reducing the size of the headers.
The server is denying access to the resource as a consequence of a legal demand. Named after Fahrenheit 451. Should include a Link header referencing the authority.
The server encountered an unexpected condition that prevented it from fulfilling the request. A generic error message when no more specific message is suitable.
The server does not support the functionality required to fulfill the request. Appropriate when the server does not recognize the request method.
The server, while acting as a gateway or proxy, received an invalid response from an inbound server.
The server is not ready to handle the request. Common causes are a server that is down for maintenance or that is overloaded. May include a Retry-After header.
The server, while acting as a gateway or proxy, did not receive a timely response from an upstream server.
The server does not support the major version of HTTP that was used in the request.
The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself.
The method could not be performed because the server is unable to store the representation needed to complete the request. Defined in WebDAV.
The server detected an infinite loop while processing the request. Used in WebDAV when processing with Depth: Infinity.
Further extensions to the request are required for the server to fulfill it. The server should send back the required extensions.
The client needs to authenticate to gain network access. Used by captive portals to redirect users to authentication pages.
Quick Reference
HTTP status codes reference: complete guide to 1xx, 2xx, 3xx, 4xx, and 5xx responses
HTTP status codes are three-digit numbers returned by a server to indicate the outcome of a request. Understanding them is essential for building and debugging web applications, REST APIs, and server configurations. This reference covers every standard code defined in the HTTP RFCs along with the most common non-standard codes used by popular web frameworks, CDNs, and API platforms.
Each entry includes the official name, a plain-English explanation, and practical guidance on when you are likely to encounter the code and how to respond to it. Use the search and category filters to find the code you need in seconds.
Step-by-step guide
- 1Search for a code or keyword
Type a status code number (e.g. 404) or a keyword (e.g. 'not found') into the search box to filter the list instantly. - 2Browse by category
Filter codes by class using the category tabs: 1xx Informational, 2xx Success, 3xx Redirection, 4xx Client Error, or 5xx Server Error. - 3Read the description
Each code entry shows the official name, a plain-English explanation of what it means, and guidance on when it is used. - 4Check common use cases
Learn which codes are common in REST APIs, web browsers, CDNs, and server frameworks to help you debug issues faster. - 5Copy the code
Click on any code to copy it to your clipboard for use in documentation, API responses, or bug reports.
Related Tools
Browser Info
Inspect your browser, OS, screen, network, and feature support in real time. Hardware concurrency, touch points, WebGL, WASM, and 18 more APIs checked.
User Agent Parser
Parse any user agent string into browser, engine, OS, device type, and bot detection. Test with 6 sample UAs or paste your own.
Color Converter
Convert colors between HEX, RGB, HSL, HSV, and CMYK instantly. Visual swatch, color picker, named color lookup, and WCAG contrast ratio.
Unit Converter
Convert between units across 7 categories: length, weight, temperature, area, volume, speed, and digital storage. All conversions shown simultaneously.
Frequently Asked Questions
- What do the different HTTP status code classes mean?
- 1xx codes are informational (the request was received, continuing). 2xx codes indicate success. 3xx codes are redirection responses. 4xx codes indicate client errors (the request has a problem). 5xx codes indicate server errors (the server failed to fulfil a valid request).
- What is the difference between 301 and 302?
- 301 Moved Permanently means the resource has been permanently moved to a new URL and search engines should update their index. 302 Found (temporary redirect) means the resource is temporarily at a different URL and the original should be used in future.
- What does HTTP 404 mean?
- 404 Not Found means the server could not find the requested resource. The URL may be wrong, the content may have been deleted, or it may never have existed.
- What is the difference between 401 and 403?
- 401 Unauthorized means authentication is required and has either not been provided or failed. 403 Forbidden means the server understood the request but refuses to authorise it: the client is authenticated but lacks permission.
- What does HTTP 500 mean?
- 500 Internal Server Error is a generic server-side error indicating that something went wrong on the server without a more specific explanation. Check your server logs for details.
- What is HTTP 429?
- 429 Too Many Requests means the client has sent too many requests in a given time window. This is commonly used for rate limiting in APIs. The response may include a Retry-After header.
- Are there non-standard HTTP status codes?
- Yes. Some widely-used non-standard codes include 420 Enhance Your Calm (Twitter rate limiting), 444 No Response (Nginx), and 418 I'm a Teapot (an April Fools' RFC). This reference covers the most commonly encountered ones.
- Is this tool free?
- Yes, completely free with no account, no sign-up, and no usage limits.
- What RFC defines HTTP status codes?
- The core status codes are defined in RFC 9110 (HTTP Semantics), which superseded RFC 7231. Additional codes are defined in other RFCs such as RFC 4918 (WebDAV) and RFC 6585 (Additional HTTP Status Codes).
AlteredIdea vs alternatives
vs server-side converters: AlteredIdea converts in your browser: your data never leaves your device.
vs writing scripts: Instant results, no coding needed.
vs paid tools: Completely free, no account required.