HTTP status codes

Every IANA code with its meaning and next step — search by number, name or symptom.

64 of 64 codes

Status codes

1xxInformation5

100Continue

The server received the request headers and the client should send the body.

What to doSend the request body, or ignore the response if the request is already finished.

101Switching Protocols

The server accepts the Upgrade request and switches to another protocol.

What to doUse the protocol named in the Upgrade header from this point on.

102Processing

WebDAVDeprecated

A WebDAV server accepted the request but has not finished processing it.

What to doKeep the connection open and wait for the final response.

103Early Hints

The server sends Link headers before the final response so the client can start preloading.

What to doPreload or preconnect now; keep waiting for the final status.

104Upload Resumption Supported

Draft

Signals that an interrupted upload can be resumed. This is still an Internet-Draft.

What to doResume from the offset the server gives; expect the behaviour to change.

2xxSuccess10

200OK

The request succeeded; the meaning depends on the HTTP method.

What to doRead the response body or headers as appropriate for the method.

201Created

The request succeeded and a new resource was created.

What to doUse the Location header to find the new resource.

202Accepted

The request was accepted for processing but is not finished.

What to doPoll the status endpoint; do not assume the work is complete.

203Non-Authoritative Information

The returned metadata came from a copy, not directly from the origin server.

What to doTreat the headers as a proxy or local variant; verify with the origin if it matters.

204No Content

The request succeeded and there is no body to return.

What to doUpdate the UI from the status and headers; do not wait for a body.

205Reset Content

The client should reset the document that sent the request.

What to doClear the form or view that triggered the request.

206Partial Content

The server returned the requested range of the resource.

What to doAppend the bytes to your buffer and request the next range if needed.

207Multi-Status

WebDAV

The WebDAV response contains separate statuses for multiple resources.

What to doParse the XML body and handle each resource status separately.

208Already Reported

WebDAV

Members of a binding were already listed, so they are not repeated.

What to doSkip duplicate members and process the earlier response.

226IM Used

The response is a delta applied to the current representation (HTTP delta encoding).

What to doApply the instance manipulations to your cached copy.

3xxRedirection9

300Multiple Choices

Several representations are available and the client must choose one.

What to doPick a representation from the response, or use your negotiated default.

301Moved Permanently

The resource moved permanently; future requests should use the new URL.

What to doUpdate bookmarks, links and sitemaps to the Location URL.

302Found

The resource is temporarily available at a different URL.

What to doFollow Location for this request but keep using the original URL.

303See Other

The client should fetch another resource with GET after this request.

What to doFollow Location with a GET request to read the result.

304Not Modified

Caching

The cached copy is still valid, so no body is needed.

What to doServe the cached response; there is no body in this reply.

305Use Proxy

Deprecated

The client was told to reach the resource through a proxy. This status is deprecated.

What to doDo not use it; configure the proxy directly instead.

306Unused

Reserved

Reserved by older specifications and no longer defined.

What to doIgnore it; no standard behaviour exists.

307Temporary Redirect

The resource is temporarily elsewhere and the request method must not change.

What to doRepeat the request at Location with the same method and body.

308Permanent Redirect

The resource moved permanently and the request method must not change.

What to doUpdate links and repeat the request at Location with the same method.

4xxClient error29

400Bad Request

The server cannot process the request because the client sent something invalid.

What to doCheck the URL, headers and body syntax; retry only after fixing it.

401Unauthorized

Auth

Authentication is required, or the supplied credentials were rejected.

What to doSend valid credentials; check the WWW-Authenticate header.

402Payment Required

Reserved for services that require payment; it is rarely used.

What to doCheck the API billing flow; no standard response body is defined.

403Forbidden

Auth

The server understood the request but refuses to authorize it.

What to doUse an account or token with permission; do not retry blindly.

404Not Found

The server cannot find the requested resource.

What to doCheck the URL and routing, and whether the resource was deleted.

405Method Not Allowed

The HTTP method is not supported for this resource.

What to doUse a method listed in the Allow response header.

406Not Acceptable

No representation matches the Accept criteria in the request.

What to doBroaden the Accept header or ask for a supported format.

407Proxy Authentication Required

Auth

A proxy between the client and server requires authentication.

What to doConfigure proxy credentials; check the Proxy-Authenticate header.

408Request Timeout

The server did not receive the full request in time.

What to doRetry with a faster connection or allow a longer timeout.

409Conflict

The request conflicts with the current state of the resource.

What to doFetch the latest state, resolve the conflict, then retry.

410Gone

The resource is permanently gone and has no forwarding address.

What to doRemove links and caches; do not retry.

411Length Required

The server requires a Content-Length header but the request did not send one.

What to doSend Content-Length or switch to chunked transfer encoding.

412Precondition Failed

A conditional header such as If-Match or If-Unmodified-Since was not met.

What to doFetch the current version and retry with fresh validators.

413Content Too Large

The request body exceeds the limit accepted by the server.

What to doSend less data, compress it, or use a chunked upload.

414URI Too Long

The request URL is longer than the server accepts.

What to doShorten the query string or send the data in the body.

415Unsupported Media Type

The server does not support the media type of the request body.

What to doSend a supported Content-Type; check the API documentation.

416Range Not Satisfiable

The requested byte range cannot be served for this resource.

What to doCheck the resource size and request a valid Range.

417Expectation Failed

The server cannot meet the expectation in the Expect header.

What to doRemove or change the Expect header and retry.

418I'm a Teapot

Reserved

An April Fools' code from RFC 2324; RFC 9110 now registers 418 as unused.

What to doDo not depend on it; no standard behaviour is defined.

421Misdirected Request

The server cannot produce a response for this scheme and authority combination.

What to doRetry on a connection that is able to serve this origin.

422Unprocessable Content

WebDAV

The request syntax is valid but its meaning prevents processing.

What to doFix the validation errors; read the error details in the body.

423Locked

WebDAV

The WebDAV resource is locked by another request.

What to doRelease the lock or send the lock token with the request.

424Failed Dependency

WebDAV

The request failed because an earlier request it depended on failed.

What to doFix the earlier operation and retry the batch.

425Too Early

The server refuses a request that might be replayed, often with TLS early data.

What to doRetry later or resend without early data.

426Upgrade Required

The server requires a different protocol to serve the request.

What to doRetry using the protocol named in the Upgrade header.

428Precondition Required

The server requires the request to be conditional to avoid lost updates.

What to doSend If-Match or If-Unmodified-Since with the request.

429Too Many Requests

The rate limit for this client has been exceeded.

What to doBack off and honour Retry-After before trying again.

431Request Header Fields Too Large

The request header fields exceed the limit accepted by the server.

What to doReduce cookie or header size, then retry.

451Unavailable For Legal Reasons

The server refuses the resource for a legal reason.

What to doContact the site operator; the block is deliberate.

5xxServer error11

500Internal Server Error

The server hit an unexpected condition and could not finish the request.

What to doCheck server logs; retry only if the error is transient.

501Not Implemented

The server does not support the HTTP method required by the request.

What to doUse a supported method; servers must support GET and HEAD.

502Bad Gateway

A gateway or proxy received an invalid response from an upstream server.

What to doCheck the upstream service and retry with backoff.

503Service Unavailable

The server is overloaded or down for maintenance.

What to doRetry after the delay given by Retry-After.

504Gateway Timeout

A gateway did not receive a timely response from an upstream server.

What to doCheck upstream latency and retry with a longer timeout.

505HTTP Version Not Supported

The server does not support the HTTP version used by the request.

What to doRetry with HTTP/1.1 or another supported version.

506Variant Also Negotiates

Content negotiation is misconfigured and refers back to itself.

What to doFix the server negotiation configuration; this is a server bug.

507Insufficient Storage

WebDAV

The WebDAV server cannot store the representation needed for the request.

What to doFree storage or reduce the size of the request.

508Loop Detected

WebDAV

The WebDAV server found an infinite loop while processing the request.

What to doFix the configuration or data that causes the loop.

510Not Extended

Deprecated

The client must declare an HTTP extension that the server needs. This status is obsolete.

What to doUpgrade the client or use a supported API instead.

511Network Authentication Required

Auth

The client must authenticate to gain access to the network, as in a captive portal.

What to doOpen the network login page and authenticate.

How to use it

  1. Type into the search box: a code (404), the official English reason phrase (Not Found), or a symptom such as timeout or rate limit. The list updates as you type — there is no submit button.
  2. Narrow the list with the 1xx–5xx chips. They combine with the search text, so “4xx auth” shows only 4xx codes tagged authentication.
  3. Each card shows the code, the official reason phrase, what it means and what to do next. The reason phrase stays in English because that is the string HTTP actually carries.
  4. Press Copy on a card to copy the canonical “404 Not Found” line, handy in tickets and commits. Reset clears both the search text and the class filter.

Example

Search

teapot

Result

418 I'm a Teapot — 4xx · Client error
An April Fools' code from RFC 2324; RFC 9110 now registers 418 as unused.
What to do: Do not depend on it; no standard behaviour is defined.

Search also matches aliases that never appear on the card: “teapot” comes from the RFC 2324 joke, and “rate limit” finds 429. A code and a symptom can be combined — “404 cache” finds 404 and 304 by their caching notes.

Scope and limits

  • The list follows the IANA HTTP Status Code Registry: 64 codes as of 2026-10-25. Vendor-specific codes such as nginx 499 or Cloudflare 52x are not included.
  • Edge cases are labelled honestly: 104 is still an Internet-Draft, 102 / 305 / 510 are deprecated, and 306 / 418 are reserved. 418 also links to its RFC 2324 April Fools origin.
  • Reason phrases are the official ASCII strings and are never translated. A server may send different text, but the three-digit code is what clients act on.
  • This is a reference, not a URL tester. It never sends a request, so it cannot tell you why a particular site returned a code — check that site’s server and logs.
  • Search runs entirely in this page: nothing is uploaded, stored or written to the URL, and the share button shares only the page address.

Useful while debugging the request or response around the status code.