HTTP Status Codes
Search every HTTP status code with a plain-English explanation of when to use it.
Search every HTTP status code with a plain-English explanation of when to use it.
Jump to any tool or change the theme
The server got the request headers; the client should send the body.
The server is switching protocols as asked, for example to WebSocket.
Preload hints sent before the final response.
The request succeeded. The standard response for successful GET and POST.
A new resource was created. Usually returned by POST, with a Location header.
The request was accepted for processing, but it hasn’t finished yet.
Success with no body to return, common for DELETE and PUT.
Only part of the resource is returned, in answer to a Range request.
The resource has a new permanent URL. Search engines move ranking to it.
Temporary redirect. Browsers may change POST to GET when following it.
Redirect to another URL with GET, typically after a form POST.
The cached copy is still valid (answer to If-None-Match or If-Modified-Since).
Temporary redirect that keeps the method and body.
Permanent redirect that keeps the method and body.
The request is malformed or invalid, for example bad JSON or missing fields.
Authentication is missing or invalid. The client should log in or send a token.
Reserved; sometimes used when a payment or subscription is needed.
The client is known but isn’t allowed to access this resource.
Nothing exists at this URL, or the server won’t reveal that it does.
The URL exists but doesn’t support this HTTP method. Include an Allow header.
The server can’t produce a format that matches the Accept headers.
The client took too long to send the request.
The request conflicts with the current state, like a duplicate or an edit conflict.
The resource was deliberately removed and won’t come back.
The server needs a Content-Length header.
A condition in the headers (like If-Match) wasn’t met.
The request body is bigger than the server allows.
The URL is longer than the server will handle.
The body’s Content-Type isn’t supported.
The requested byte range is outside the file.
An April Fools’ joke from RFC 2324, occasionally used for fun.
The syntax is fine but the data fails validation.
The resource is locked (WebDAV).
The server won’t risk processing a request that might be replayed.
The client must switch to another protocol, such as TLS.
The server requires conditional requests to prevent lost updates.
Rate limit hit. Check the Retry-After header before trying again.
The headers, often cookies, are too large.
Blocked because of a legal demand, such as censorship.
Something went wrong on the server; a generic catch-all error.
The server doesn’t support the functionality needed.
A proxy or gateway got an invalid response from the upstream server.
The server is overloaded or down for maintenance. Retry later.
A proxy or gateway didn’t get a response from upstream in time.
The server doesn’t support the request’s HTTP version.
The server can’t store what’s needed to complete the request.
The server found an infinite loop while processing.
The client must sign in to the network, as with Wi-Fi captive portals.