Skip to content
PithLab

↑↓ to move · Enter to open · Esc to close

HTTP Status Codes Reference and Lookup

Look up what any HTTP status code means.

62 status codes

  • 100Continue

    The server has received the request headers and the client should go ahead and send the body. Sent in reply to Expect: 100-continue.

    Informational · RFC 9110

  • 101Switching Protocols

    The server agrees to switch to the protocol named in the client's Upgrade header, for example to WebSocket.

    Informational · RFC 9110

  • 102Processing

    The server has accepted a WebDAV request and is still working on it, so the client should not time out.

    Removed from later WebDAV specs and rarely used.

    Informational · RFC 2518 (WebDAV)

  • 103Early Hints

    Sent before the final response with Link headers so the browser can start preloading resources such as stylesheets while the server prepares the page.

    Informational · RFC 8297

  • 200OK

    The request succeeded. The body contains the requested resource or the result of the action.

    Success · RFC 9110

  • 201Created

    The request succeeded and created a new resource, usually identified by the Location header. Typical reply to a successful POST.

    Success · RFC 9110

  • 202Accepted

    The request has been accepted for processing, but processing has not finished and may still fail. Common for queued or asynchronous jobs.

    Success · RFC 9110

  • 203Non-Authoritative Information

    The request succeeded, but a transforming proxy has modified the response from the origin server.

    Success · RFC 9110

  • 204No Content

    The request succeeded and there is no body to return. Common for DELETE or for PUT updates.

    Success · RFC 9110

  • 205Reset Content

    The request succeeded and the client should reset the document view, for example clear a form. It has no body.

    Success · RFC 9110

  • 206Partial Content

    The server is returning only the byte range(s) asked for in the Range header, used for resumable downloads and video seeking.

    Success · RFC 9110

  • 207Multi-Status

    The body (usually XML) holds separate status codes for several resources affected by one WebDAV request.

    Success · RFC 4918 (WebDAV)

  • 208Already Reported

    Used inside a WebDAV multi-status response to avoid listing the same bound resource repeatedly.

    Success · RFC 5842 (WebDAV)

  • 226IM Used

    The server has applied delta encoding (instance manipulations) and the response is a delta, not the full resource.

    Success · RFC 3229

  • 300Multiple Choices

    The resource has several representations and the client or user should pick one. Rarely used in practice.

    Redirection · RFC 9110

  • 301Moved Permanently

    The resource has a new permanent URL, given in the Location header. Search engines transfer ranking to the new URL.

    Clients may change POST to GET when following it; use 308 to keep the method.

    Redirection · RFC 9110

  • 302Found

    The resource is temporarily at a different URL, given in the Location header. Keep using the original URL in future.

    Clients may change POST to GET when following it; use 307 to keep the method.

    Redirection · RFC 9110

  • 303See Other

    The client should fetch another URL with GET, typically after a form POST, so refreshing the result page does not resubmit the form.

    Redirection · RFC 9110

  • 304Not Modified

    A conditional GET found that the cached copy (checked with If-None-Match or If-Modified-Since) is still current, so no body is sent.

    Redirection · RFC 9110

  • 305Use Proxy

    Originally told the client to access the resource through a proxy.

    Deprecated for security reasons and ignored by browsers.

    Redirection · RFC 9110

  • 307Temporary Redirect

    The resource is temporarily at another URL and the client must repeat the request there with the same method and body.

    Redirection · RFC 9110

  • 308Permanent Redirect

    The resource has moved permanently and the client must repeat the request at the new URL with the same method and body.

    Redirection · RFC 9110

  • 400Bad Request

    The server can't process the request because it is malformed, for example invalid syntax, bad framing or invalid JSON.

    Client error · RFC 9110

  • 401Unauthorized

    Authentication is required and has failed or not been provided. The response includes a WWW-Authenticate header describing how to authenticate.

    Despite the name, it means unauthenticated; use 403 when the user is known but not allowed.

    Client error · RFC 9110

  • 402Payment Required

    Reserved for future use. Some APIs use it when a payment or subscription is needed, but there is no standard behaviour.

    Client error · RFC 9110

  • 403Forbidden

    The server understood the request but refuses to fulfil it. Authenticating again will not help.

    Client error · RFC 9110

  • 404Not Found

    The server has no resource at this URL, or prefers not to reveal that one exists.

    Client error · RFC 9110

  • 405Method Not Allowed

    The URL exists but does not support this HTTP method. The Allow header lists the methods it does support.

    Client error · RFC 9110

  • 406Not Acceptable

    The server can't produce a response matching the client's Accept headers (content type, language or encoding).

    Client error · RFC 9110

  • 407Proxy Authentication Required

    Like 401, but the client must first authenticate with the proxy, as described by the Proxy-Authenticate header.

    Client error · RFC 9110

  • 408Request Timeout

    The server gave up waiting for the client to finish sending the request. The client may retry on a new connection.

    Client error · RFC 9110

  • 409Conflict

    The request conflicts with the current state of the resource, for example an edit conflict or a duplicate unique value.

    Client error · RFC 9110

  • 410Gone

    The resource has been permanently removed and will not come back. Unlike 404, this is known to be permanent.

    Client error · RFC 9110

  • 411Length Required

    The server requires a Content-Length header and the request did not include one.

    Client error · RFC 9110

  • 412Precondition Failed

    A condition in the request headers, such as If-Match or If-Unmodified-Since, was false. Used to prevent lost updates.

    Client error · RFC 9110

  • 413Content Too Large

    The request body is larger than the server is willing to process.

    Previously called Payload Too Large or Request Entity Too Large.

    Client error · RFC 9110

  • 414URI Too Long

    The request URL is longer than the server is willing to interpret, often because too much data was put in the query string.

    Client error · RFC 9110

  • 415Unsupported Media Type

    The server does not support the request body's format, given by Content-Type or Content-Encoding.

    Client error · RFC 9110

  • 416Range Not Satisfiable

    None of the byte ranges in the Range header overlap the resource, for example a range past the end of the file.

    Client error · RFC 9110

  • 417Expectation Failed

    The server can't meet the requirement in the request's Expect header.

    Client error · RFC 9110

  • 418I'm a teapot

    A joke from the Hyper Text Coffee Pot Control Protocol: the teapot refuses to brew coffee. Some sites use it for requests they choose not to handle.

    RFC 9110 marks 418 as reserved (unused) so it is never assigned a real meaning.

    Client error · RFC 2324 (April Fools')

  • 421Misdirected Request

    The request reached a server that can't produce a response for this host, for example over a reused HTTP/2 connection.

    Client error · RFC 9110

  • 422Unprocessable Content

    The request is well-formed but its content is semantically invalid, for example failing validation rules. Widely used by APIs.

    Originally Unprocessable Entity in WebDAV (RFC 4918).

    Client error · RFC 9110

  • 423Locked

    The WebDAV resource is locked and the request lacks the lock token needed to change it.

    Client error · RFC 4918 (WebDAV)

  • 424Failed Dependency

    The WebDAV request failed because an action it depended on failed.

    Client error · RFC 4918 (WebDAV)

  • 425Too Early

    The server won't process a request sent in TLS early data (0-RTT) because it could be replayed.

    Client error · RFC 8470

  • 426Upgrade Required

    The server refuses the request over the current protocol; the client must switch to the one named in the Upgrade header.

    Client error · RFC 9110

  • 428Precondition Required

    The server requires the request to be conditional (for example include If-Match) to prevent lost updates.

    Client error · RFC 6585

  • 429Too Many Requests

    The client has sent too many requests in a given time (rate limiting). A Retry-After header may say how long to wait.

    Client error · RFC 6585

  • 431Request Header Fields Too Large

    The request headers are too large, either one header or all of them together, often because of oversized cookies.

    Client error · RFC 6585

  • 451Unavailable For Legal Reasons

    The resource can't be provided for legal reasons, such as a court order or government censorship.

    Client error · RFC 7725

  • 500Internal Server Error

    The server hit an unexpected condition, such as an unhandled exception, and couldn't complete the request.

    Server error · RFC 9110

  • 501Not Implemented

    The server does not support the functionality needed, for example an HTTP method it does not recognise.

    Server error · RFC 9110

  • 502Bad Gateway

    A gateway or proxy got an invalid response from the upstream server it contacted, for example because the app crashed.

    Server error · RFC 9110

  • 503Service Unavailable

    The server is temporarily unable to handle the request because of overload or maintenance. Retry-After may say when to try again.

    Server error · RFC 9110

  • 504Gateway Timeout

    A gateway or proxy did not get a response from the upstream server in time.

    Server error · RFC 9110

  • 505HTTP Version Not Supported

    The server does not support the major HTTP version used in the request.

    Server error · RFC 9110

  • 506Variant Also Negotiates

    A server configuration error in transparent content negotiation: the chosen variant is itself set up to negotiate.

    Server error · RFC 2295

  • 507Insufficient Storage

    The server can't store the representation needed to complete the request, for example because the disk is full.

    Server error · RFC 4918 (WebDAV)

  • 508Loop Detected

    The server found an infinite loop while processing a WebDAV request with Depth: infinity.

    Server error · RFC 5842 (WebDAV)

  • 510Not Extended

    The request needs further extensions before the server will fulfil it.

    RFC 2774 is now historic and this code is effectively obsolete.

    Server error · RFC 2774

  • 511Network Authentication Required

    The client must authenticate to gain network access, typically a Wi-Fi captive portal intercepting the request.

    Server error · RFC 6585

Use via API

Look up HTTP status codes: the reason phrase, what it means, the defining specification and usage notes. Search by code (404), code prefix (40), class (4xx) or words (rate limit). Send JSON, get JSON back.

POST https://pithlab.com/api/v1/tools/http-status-codes

curl https://pithlab.com/api/v1/tools/http-status-codes \
  -H "Authorization: Bearer $PITHLAB_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"429"}'

Fields and responseOpenAPI documentGet an API key

About the HTTP Status Codes

Searchable list of HTTP status codes from 100 to 511 with plain-English explanations, based on RFC 9110 plus WebDAV, 418 and 429. Search by number or keyword.

How to use the HTTP Status Codes

  1. Type a code such as 404, the start of one such as 40, or a class such as 5xx.
  2. Or search by keyword, for example redirect, cache or rate limit.
  3. Filter by class with the buttons to browse informational, success, redirect, client error or server error codes.
  4. Read the explanation and the specification each code comes from.

Examples

Look up a code

Input

404

Output

404 Not Found
Search by keyword

Input

rate limit

Output

429 Too Many Requests

Frequently asked questions

What is the difference between 401 and 403?

401 Unauthorized means the request is not authenticated: log in or send valid credentials and try again. 403 Forbidden means the server knows who you are, or doesn't care, and still refuses; logging in again will not help.

Should I use 301, 302, 307 or 308 for a redirect?

Use 301 or 308 for permanent moves and 302 or 307 for temporary ones. 307 and 308 guarantee the method and body are kept, while with 301 and 302 clients may turn a POST into a GET.

What do the first digits mean?

1xx are informational, 2xx mean success, 3xx are redirects, 4xx mean the client made an error, and 5xx mean the server failed. Clients that don't recognise a code treat it like the x00 code of its class.

Is 418 I'm a teapot a real status code?

It started as an April Fools' joke in RFC 2324. It was never part of HTTP proper, but because so many servers implement it, RFC 9110 reserves 418 so it won't be given another meaning.