HTTP Status Codes
ReferenceQuick reference for HTTP response status codes — 1xx through 5xx — with search.
| Code | Reason | Category | Description |
|---|
On this page
What is an HTTP status code reference?#
Every HTTP response carries a three-digit status code that tells the client, in one number, what happened to its request. The digits are not random: the first digit names a family — 1xx means “hold on, I’m sending information”, 2xx means “here it is, it worked”, 3xx means “go look somewhere else”, 4xx means “you, the client, messed up”, and 5xx means “I, the server, messed up”. Memorize those five families and you can read any HTTP exchange at a glance, whether it is a browser request, a curl you ran, or an error in your application logs.
The trouble is that there are over sixty codes in active use, and the differences between neighbors are often subtle: 401 versus 403, 302 versus 307, 422 versus 400. This page is a searchable reference for all of them — the code, its IANA reason phrase, its family, and a plain explanation. Type a number or a word and the table narrows instantly.
How to use it#
- Browse or search. The table lists every code grouped by family (
1xxthrough5xx). Use the search box at the top to filter. - Search the way you think. The filter is smart about intent:
- Type a number like
30or418and it matches codes by prefix —30surfaces the whole3xxredirect family. - Type a word like
redirect,timeout, orteapotand it searches the reason phrase and the description, case-insensitively.
- Type a number like
- Read the row. Each row shows Code (the number), Reason (the standard phrase such as “Not Found”), Category (the localized family label), and Description (a short explanation of when that code is returned). The status bar below the table reports how many rows matched.
Key features#
- The full IANA set, plus de-facto codes. Covers every code the web actually returns, from
100 Continuethrough511 Network Authentication Required, including the WebDAV-specific207/208/226entries, the joke418 I'm a Teapot, and the legally-mandated451. - Prefix-aware number search. Typing
4does not dump a random subset — it gives you every4xxclient error in order, which is exactly how you explore a family you do not remember. - Word search across reason and description. “rate” finds
429 Too Many Requests; “range” finds416 Range Not Satisfiable; “auth” surfaces both401and407. - Reason phrases are universal. The phrases (“Not Found”, “Gateway Timeout”) are technical identifiers, not translations — they match what servers actually send on the wire, so you can paste them straight into documentation or an issue tracker.
- Runs entirely in your browser. The dataset ships with the page; filtering happens locally with no network request.
Worked example#
Three codes that trip up nearly every developer at least once are the client-error trio 401, 403, and 404. Search for the digits 40 and you get all of them in one view, side by side:
- 401 Unauthorized — “Authentication is required and has failed or has not been provided.” The server does not know who you are. Fix: send credentials (a login token, an API key).
- 403 Forbidden — “The request was valid but the server is refusing action (insufficient rights).” The server knows exactly who you are, and you still cannot have this. Fix: get permission, not another password.
- 404 Not Found — “The requested resource could not be found.” The URL itself is wrong or the resource is gone. Fix: correct the path.
The single most useful distinction is 401 versus 403: “I don’t know you” (log in) versus “I know you, and no” (ask for access). Re-authenticating will never fix a 403, and fiddling with the URL will never fix a 401.
A second handy lookup is the redirect family. Search 30 and you see that 301 and 302 historically allowed clients to change the method on the next request (a POST could degrade to a GET), whereas 307 and 308 were introduced precisely to preserve the original method — which is why modern APIs that redirect form submissions point you at 307/308 instead of 301/302.
FAQ#
What does the first digit of a status code mean?#
It names the family. 1xx is informational (the server is saying “wait, more is coming”), 2xx is success, 3xx is redirection (look elsewhere), 4xx is a client error (your request was wrong), and 5xx is a server error (the request was fine but the server failed). The remaining two digits identify the specific code within that family.
Is 418 a real status code?#
It originated as an April Fools’ RFC about a teapot that refuses to brew coffee, so it is not meant for production. That said, some services genuinely return 418 as a playful “you sent me something nonsensical” response, and it is harmless to recognize. This reference lists it because you will encounter it in the wild.
Why are some codes marked WebDAV?#
Codes like 207 Multi-Status, 423 Locked, and 507 Insufficient Storage were defined for WebDAV, an extension of HTTP for collaborative file editing. They are rare on ordinary web APIs but do appear in systems that expose a filesystem-like interface, so the descriptions note the WebDAV origin so the context makes sense.
Where do the reason phrases come from?#
They are the standard English reason phrases registered with IANA — the same strings servers attach after the code on the status line (for example, HTTP/1.1 404 Not Found). They are technical identifiers, so they are shown verbatim rather than translated; the localized part of the page is the column headers, the category labels, and this explanatory text.