HTTP Status Code Reference
A searchable reference of every standard HTTP status code, from 100 Continue to 511 Network Authentication Required, with plain-English explanations.
100ContinueInformationalThe server has received the request headers and the client should proceed to send the request body.
101Switching ProtocolsInformationalThe server agrees to switch protocols as requested via the Upgrade header, commonly used for WebSocket handshakes.
102ProcessingInformationalThe server has received the request and is processing it, but no response is available yet (WebDAV).
103Early HintsInformationalPreliminary headers sent before the final response, mainly used with Link headers to start preloading resources.
200OKSuccessThe request succeeded. The response body depends on the method: GET returns the resource, POST returns the result of the action.
201CreatedSuccessThe request succeeded and a new resource was created, typically in response to a POST or PUT. The Location header often points to it.
202AcceptedSuccessThe request was accepted for processing, but processing has not completed. Common for asynchronous jobs and queues.
203Non-Authoritative InformationSuccessThe response was successful but the metadata was modified by a transforming proxy from the origin's response.
204No ContentSuccessThe request succeeded but there is no content to return. Common for DELETE operations and form submissions.
205Reset ContentSuccessThe request succeeded; the client should reset the document view, such as clearing a form.
206Partial ContentSuccessThe server is delivering only part of the resource due to a Range header. Used for resumable downloads and video streaming.
207Multi-StatusSuccessThe response body contains multiple status codes for multiple independent operations (WebDAV).
208Already ReportedSuccessThe members of a DAV binding have already been enumerated in a preceding part of the multi-status response (WebDAV).
226IM UsedSuccessThe server fulfilled a GET request and the response represents the result of one or more instance manipulations (delta encoding).
300Multiple ChoicesRedirectionThe request has more than one possible response. The user or user agent should choose one of them.
301Moved PermanentlyRedirectionThe resource has permanently moved to the URL in the Location header. Search engines update their links to the new URL.
302FoundRedirectionThe resource temporarily lives at a different URL. The client should continue using the original URL for future requests.
303See OtherRedirectionThe client should fetch the resource at another URL using GET, typically after a POST (the POST-redirect-GET pattern).
304Not ModifiedRedirectionThe cached version is still valid; the resource has not changed since the client's If-Modified-Since or ETag. No body is sent.
307Temporary RedirectRedirectionLike 302, but the client must repeat the request with the same method and body — a POST stays a POST.
308Permanent RedirectRedirectionLike 301, but the client must repeat the request with the same method and body — a POST stays a POST.
400Bad RequestClient ErrorThe server cannot process the request due to a client error: malformed syntax, invalid parameters, or deceptive routing.
401UnauthorizedClient ErrorAuthentication is required and has failed or has not been provided. Despite the name, it means 'unauthenticated'.
402Payment RequiredClient ErrorReserved for future use; some APIs use it to signal exhausted quotas, expired subscriptions, or required payment.
403ForbiddenClient ErrorThe server understood the request but refuses to authorize it. Unlike 401, authenticating again will not help.
404Not FoundClient ErrorThe server cannot find the requested resource. The most famous status code on the web.
405Method Not AllowedClient ErrorThe HTTP method is not supported for this resource — e.g. a POST to a read-only endpoint. The Allow header lists valid methods.
406Not AcceptableClient ErrorThe server cannot produce a response matching the Accept headers sent by the client (content negotiation failed).
407Proxy Authentication RequiredClient ErrorLike 401, but authentication is required with the proxy, indicated by the Proxy-Authenticate header.
408Request TimeoutClient ErrorThe server timed out waiting for the request. The client may repeat the request without modification.
409ConflictClient ErrorThe request conflicts with the current state of the resource, such as an edit conflict or a duplicate unique key.
410GoneClient ErrorThe resource was intentionally removed and will not return. Unlike 404, this state is expected to be permanent.
411Length RequiredClient ErrorThe server requires a Content-Length header and the request did not include one.
412Precondition FailedClient ErrorA condition in If-Match, If-Unmodified-Since, or similar headers was not met. Used for optimistic concurrency control.
413Content Too LargeClient ErrorThe request body exceeds the limits the server is willing to process. Formerly named 'Payload Too Large'.
414URI Too LongClient ErrorThe URI is longer than the server is willing to interpret, often from over-long query strings.
415Unsupported Media TypeClient ErrorThe request body's media type is not supported — e.g. sending XML to an endpoint that only accepts JSON.
416Range Not SatisfiableClient ErrorThe Range header asks for a portion of the resource that cannot be supplied, such as beyond the end of the file.
417Expectation FailedClient ErrorThe server cannot meet the requirements of the Expect request header.
418I'm a teapotClient ErrorAn April Fools' joke from RFC 2324 (Hyper Text Coffee Pot Control Protocol). The server refuses to brew coffee because it is a teapot.
421Misdirected RequestClient ErrorThe request was directed at a server that is not able to produce a response, e.g. due to connection reuse across origins.
422Unprocessable ContentClient ErrorThe request was well-formed but contains semantic errors — the classic response for failed validation in REST APIs.
423LockedClient ErrorThe resource being accessed is locked (WebDAV).
424Failed DependencyClient ErrorThe request failed because it depended on another request that failed (WebDAV).
425Too EarlyClient ErrorThe server is unwilling to process a request that might be replayed, used with TLS early data.
426Upgrade RequiredClient ErrorThe server refuses to perform the request using the current protocol; the client should upgrade per the Upgrade header.
428Precondition RequiredClient ErrorThe server requires the request to be conditional (e.g. include If-Match) to prevent lost-update problems.
429Too Many RequestsClient ErrorThe client has sent too many requests in a given time window. Rate limiting — check the Retry-After header.
431Request Header Fields Too LargeClient ErrorThe server refuses to process the request because its header fields (individually or together) are too large.
451Unavailable For Legal ReasonsClient ErrorThe resource is unavailable for legal reasons, such as censorship or government demands. A reference to Fahrenheit 451.
500Internal Server ErrorServer ErrorA generic error: the server encountered an unexpected condition and no more specific message is suitable.
501Not ImplementedServer ErrorThe server does not recognize the request method or lacks the ability to fulfil it.
502Bad GatewayServer ErrorThe server, acting as a gateway or proxy, received an invalid response from the upstream server.
503Service UnavailableServer ErrorThe server cannot handle the request — usually overloaded or down for maintenance. Retry-After may indicate when to try again.
504Gateway TimeoutServer ErrorThe server, acting as a gateway or proxy, did not receive a timely response from the upstream server.
505HTTP Version Not SupportedServer ErrorThe server does not support the HTTP protocol version used in the request.
506Variant Also NegotiatesServer ErrorA configuration error in transparent content negotiation caused a circular reference.
507Insufficient StorageServer ErrorThe server is unable to store the representation needed to complete the request (WebDAV).
508Loop DetectedServer ErrorThe server detected an infinite loop while processing the request (WebDAV).
510Not ExtendedServer ErrorFurther extensions to the request are required for the server to fulfil it.
511Network Authentication RequiredServer ErrorThe client needs to authenticate to gain network access — the status behind captive portals on public Wi-Fi.
HTTP status codes are three-digit numbers returned with every HTTP response, grouped into five classes: 1xx informational, 2xx success, 3xx redirection, 4xx client errors, and 5xx server errors. Knowing the difference between a 401 and a 403, a 301 and a 308, or a 502 and a 504 makes debugging APIs, reverse proxies, and CDNs dramatically faster. This reference covers the standard codes registered with IANA, including WebDAV extensions and the famous 418 teapot.