HTTP status codes — searchable list with meanings and the RFC for each

Type a number or a word such as redirect or rate limit and the list narrows to the matching HTTP status codes, each with its official name, class, a one-line meaning and the document that defines it.

Live demo · real result from this tool
Showing71 of 71 codes

Table

CodeNameCategoryMeaningDefined in
100Continue1xx InformationalThe headers were accepted; the client may send the request body.RFC 9110
101Switching Protocols1xx InformationalThe server is switching protocol as asked by the Upgrade header (e.g. WebSocket).RFC 9110
102Processing1xx InformationalWebDAV: the request is still being processed (deprecated).RFC 2518
103Early Hints1xx InformationalPreliminary headers (usually Link preload hints) sent before the final response.RFC 8297
200OK2xx SuccessThe request succeeded.RFC 9110
201Created2xx SuccessA new resource was created; its URL is usually in the Location header.RFC 9110
202Accepted2xx SuccessThe request was accepted for processing, which has not finished.RFC 9110
203Non-Authoritative Information2xx SuccessThe response was modified by a transforming proxy.RFC 9110
204No Content2xx SuccessSuccess with no response body (common for DELETE and PUT).RFC 9110
205Reset Content2xx SuccessSuccess; the client should reset the form or view that sent the request.RFC 9110
206Partial Content2xx SuccessOnly the requested byte range is returned (Range requests, resumable downloads).RFC 9110
207Multi-Status2xx SuccessWebDAV: the body contains several status codes for several resources.RFC 4918
208Already Reported2xx SuccessWebDAV: members of a binding were already listed earlier in the response.RFC 5842
226IM Used2xx SuccessThe response is the result of instance manipulations (delta encoding).RFC 3229
300Multiple Choices3xx RedirectionSeveral representations are available; the client should choose one.RFC 9110
301Moved Permanently3xx RedirectionThe resource has a new permanent URL. Clients may change POST to GET when following it.RFC 9110
302Found3xx RedirectionTemporary redirect. Clients may change POST to GET when following it.RFC 9110
303See Other3xx RedirectionFetch another URL with GET — typically after a form POST.RFC 9110
304Not Modified3xx RedirectionThe cached copy is still valid (conditional GET with If-None-Match / If-Modified-Since).RFC 9110
305Use Proxy3xx RedirectionDeprecated; must not be used.RFC 9110
307Temporary Redirect3xx RedirectionTemporary redirect that keeps the method and body.RFC 9110
308Permanent Redirect3xx RedirectionPermanent redirect that keeps the method and body.RFC 9110
400Bad Request4xx Client errorThe request is malformed (syntax, invalid framing or parameters).RFC 9110
401Unauthorized4xx Client errorAuthentication is missing or invalid; the WWW-Authenticate header says how to authenticate.RFC 9110
402Payment Required4xx Client errorReserved for future use; some APIs use it for billing problems.RFC 9110
403Forbidden4xx Client errorThe server understood the request but refuses it; authenticating will not help.RFC 9110
404Not Found4xx Client errorNo resource exists at this URL (or the server will not reveal that it does).RFC 9110
405Method Not Allowed4xx Client errorThe method is not supported for this resource; the Allow header lists those that are.RFC 9110
406Not Acceptable4xx Client errorNo representation matches the Accept headers.RFC 9110
407Proxy Authentication Required4xx Client errorThe client must authenticate with the proxy first.RFC 9110
408Request Timeout4xx Client errorThe server timed out waiting for the request.RFC 9110
409Conflict4xx Client errorThe request conflicts with the current state (e.g. an edit conflict or duplicate).RFC 9110
410Gone4xx Client errorThe resource was removed permanently and will not return.RFC 9110
411Length Required4xx Client errorA Content-Length header is required.RFC 9110
412Precondition Failed4xx Client errorA conditional header (If-Match, If-Unmodified-Since) did not hold.RFC 9110
413Content Too Large4xx Client errorThe request body is larger than the server accepts.RFC 9110
414URI Too Long4xx Client errorThe URL is longer than the server will process.RFC 9110
415Unsupported Media Type4xx Client errorThe Content-Type of the body is not supported.RFC 9110
416Range Not Satisfiable4xx Client errorThe requested byte range is outside the resource.RFC 9110
417Expectation Failed4xx Client errorThe Expect header cannot be met.RFC 9110
418(Unused) I'm a teapot4xx Client errorAn April Fools' code from RFC 2324, reserved so it is never assigned.RFC 9110
421Misdirected Request4xx Client errorThe request reached a server that cannot answer for this host (connection reuse).RFC 9110
422Unprocessable Content4xx Client errorWell-formed but semantically invalid, e.g. a validation error.RFC 9110
423Locked4xx Client errorWebDAV: the resource is locked.RFC 4918
424Failed Dependency4xx Client errorWebDAV: the request failed because an earlier request failed.RFC 4918
425Too Early4xx Client errorThe server will not process a request that might be replayed (TLS early data).RFC 8470
426Upgrade Required4xx Client errorThe client must switch to another protocol, given in the Upgrade header.RFC 9110
428Precondition Required4xx Client errorThe server requires the request to be conditional (to prevent lost updates).RFC 6585
429Too Many Requests4xx Client errorRate limited; Retry-After may say when to try again.RFC 6585
431Request Header Fields Too Large4xx Client errorThe headers (often cookies) are too large.RFC 6585
444No Response4xx Client errornginx (unofficial): the connection was closed without a response.nginx
451Unavailable For Legal Reasons4xx Client errorAccess is blocked for legal reasons.RFC 7725
499Client Closed Request4xx Client errornginx (unofficial): the client closed the connection before the response.nginx
500Internal Server Error5xx Server errorAn unexpected error on the server.RFC 9110
501Not Implemented5xx Server errorThe server does not support the functionality required.RFC 9110
502Bad Gateway5xx Server errorA gateway or proxy got an invalid response from the upstream server.RFC 9110
503Service Unavailable5xx Server errorThe server is overloaded or down for maintenance; Retry-After may be sent.RFC 9110
504Gateway Timeout5xx Server errorA gateway or proxy did not get a response from upstream in time.RFC 9110
505HTTP Version Not Supported5xx Server errorThe HTTP version of the request is not supported.RFC 9110
506Variant Also Negotiates5xx Server errorContent negotiation misconfiguration on the server.RFC 2295
507Insufficient Storage5xx Server errorWebDAV: the server cannot store the representation.RFC 4918
508Loop Detected5xx Server errorWebDAV: an infinite loop was detected while processing.RFC 5842
510Not Extended5xx Server errorFurther extensions are required (historic).RFC 2774
511Network Authentication Required5xx Server errorA captive portal requires you to log in to the network.RFC 6585
520Web Server Returned an Unknown Error5xx Server errorCloudflare (unofficial): the origin returned an unexpected response.Cloudflare
521Web Server Is Down5xx Server errorCloudflare (unofficial): the origin refused the connection.Cloudflare
522Connection Timed Out5xx Server errorCloudflare (unofficial): the TCP connection to the origin timed out.Cloudflare
523Origin Is Unreachable5xx Server errorCloudflare (unofficial): the origin could not be reached.Cloudflare
524A Timeout Occurred5xx Server errorCloudflare (unofficial): the origin did not send an HTTP response in time.Cloudflare
525SSL Handshake Failed5xx Server errorCloudflare (unofficial): the TLS handshake with the origin failed.Cloudflare
526Invalid SSL Certificate5xx Server errorCloudflare (unofficial): the origin certificate is invalid.Cloudflare

71 rows — scroll inside the table, or download the CSV.

Processed on your device — nothing is uploaded.

How to use the HTTP status code list

  1. Type in Filter: a code (429), part of a code (50), or words from the name or meaning (redirect method). Every word you type must appear somewhere in the row.
  2. Use Category to limit the list to 1xx, 2xx, 3xx, 4xx or 5xx.
  3. Read the matching rows. “Showing” tells you how many of the 71 codes match.
  4. Check Defined in before relying on a code in a public API.

What it does and when to use it

Picking the right status code makes an API easier to use: clients, proxies, caches and monitoring all react to the number, not to your error text. This list is for the moment you are writing a handler, reading a failing request in the network panel, or deciding why a load balancer returned 502 instead of 504.

The table covers the standard codes from RFC 9110 and the extensions from other RFCs: WebDAV (RFC 4918), 429 and 431 (RFC 6585), 451 (RFC 7725), 425 (RFC 8470) and 103 Early Hints (RFC 8297). It also lists common unofficial codes from nginx and Cloudflare, clearly labelled. Pair it with the HTTP Headers Ref, since many codes only make sense with a header such as Location, Retry-After or Allow.

How it works

The list is a fixed table in the page’s code, sorted by number. Your filter is split into words, and a row is kept only if each word appears, case-insensitively, in one of its cells. The Category menu then keeps rows whose code starts with the chosen digit. Nothing is fetched.

Worked examples

Which redirects keep POST? Filter redirect method:

307 | Temporary Redirect | 3xx Redirection | Temporary redirect that keeps the method and body. | RFC 9110
308 | Permanent Redirect | 3xx Redirection | Permanent redirect that keeps the method and body. | RFC 9110

What is that 52x error? Filter cloudflare returns Showing: 7 of 71 codes, 520 to 526, each marked “Cloudflare (unofficial)”. These point at the origin server, not at Cloudflare itself.

Validation errors. Filter 422 returns 422 | Unprocessable Content, meant for a request that is well-formed but fails validation. Use 400 for broken syntax such as invalid JSON.

Commonly confused pairs

Pair Rule of thumb
401 / 403 Not signed in / signed in but not allowed
400 / 422 Cannot parse / parsed but invalid
502 / 504 Upstream sent a bad reply / no reply in time
302 / 307 Method may change to GET / method kept

Limits and tips

  • The meanings are short summaries. For edge cases read the RFC named in the last column.
  • The reserved, unused 306 code is not listed.
  • To reproduce a request and see its status, build it with the cURL Builder or turn an existing command into code with cURL to Code.

Frequently asked questions

Should a missing login return 401 or 403?
Return 401 when the request has no valid credentials, together with a WWW-Authenticate header. Return 403 when the user is known but not allowed; logging in again will not help.
Why is 422 called "Unprocessable Content" and not "Unprocessable Entity"?
RFC 9110 (2022) moved 422 into the core HTTP spec and renamed it. Older docs and frameworks still use the WebDAV-era name; both mean the same code.
Are 520 to 526 real status codes?
They are sent by Cloudflare between visitors and your origin server, but they are not registered with IANA. The table marks them, and nginx's 444 and 499, as unofficial.
Which redirect should I use for a moved page?
For a permanent move of a page that is fetched with GET, 301 is the usual choice. Use 308 when the method and body must be kept, for example an API endpoint that receives POST.
Can I download the list?
Yes. The table can be saved as http-status-codes.csv, filtered or in full.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close