HTTP Status Codes Reference
Every standard HTTP status code, searchable. Filter by class and see what a code means.
| Code | Name | Class | Meaning |
|---|---|---|---|
100 | Continue | 1xx | The client should continue the request, or ignore this response if the request is already finished. |
101 | Switching Protocols | 1xx | The server is switching protocols as requested by the client Upgrade header. |
102 | Processing | 1xx | The server has accepted the request and is working on it, but no response is available yet (WebDAV). |
103 | Early Hints | 1xx | The server sends preliminary headers, such as preload links, before the final response. |
200 | OK | 2xx | The request succeeded and the response body carries the result. |
201 | Created | 2xx | The request succeeded and a new resource was created, usually named by the Location header. |
202 | Accepted | 2xx | The request was accepted for processing, but the work has not finished yet. |
203 | Non-Authoritative Information | 2xx | The returned metadata differs from the origin because a proxy modified it. |
204 | No Content | 2xx | The request succeeded but there is no body to send back. |
206 | Partial Content | 2xx | The server is returning only part of the resource in response to a Range request. |
301 | Moved Permanently | 3xx | The resource has permanently moved to the URL given in the Location header. |
302 | Found | 3xx | The resource is temporarily at a different URL given in the Location header. |
303 | See Other | 3xx | The client should fetch the resource with a GET request to the Location URL. |
304 | Not Modified | 3xx | The cached copy is still valid, so no body is returned (used with conditional requests). |
307 | Temporary Redirect | 3xx | Like 302, but the client must keep the same HTTP method when following the redirect. |
308 | Permanent Redirect | 3xx | Like 301, but the client must keep the same HTTP method when following the redirect. |
400 | Bad Request | 4xx | The server cannot process the request because of malformed syntax or invalid framing. |
401 | Unauthorized | 4xx | Authentication is required or has failed, so valid credentials must be provided. |
402 | Payment Required | 4xx | Reserved for future use, though some APIs use it to signal a billing or quota problem. |
403 | Forbidden | 4xx | The server understood the request but refuses to authorize it. |
404 | Not Found | 4xx | The server cannot find the requested resource. |
405 | Method Not Allowed | 4xx | The request method is known but not supported for this resource. |
406 | Not Acceptable | 4xx | The resource cannot produce content matching the Accept headers the client sent. |
408 | Request Timeout | 4xx | The server timed out waiting for the client to finish sending the request. |
409 | Conflict | 4xx | The request conflicts with the current state of the resource, such as an edit conflict. |
410 | Gone | 4xx | The resource was intentionally removed and will not be available again. |
411 | Length Required | 4xx | The server refuses the request because it lacks a Content-Length header. |
413 | Payload Too Large | 4xx | The request body is larger than the server is willing or able to process. |
414 | URI Too Long | 4xx | The request URI is longer than the server is willing to interpret. |
415 | Unsupported Media Type | 4xx | The request body uses a media type the server does not support. |
418 | I am a teapot | 4xx | An April Fools code from RFC 2324; the server refuses to brew coffee because it is a teapot. |
422 | Unprocessable Content | 4xx | The request is well formed but has semantic errors that block processing (common in validation). |
425 | Too Early | 4xx | The server is unwilling to risk processing a request that might be replayed. |
426 | Upgrade Required | 4xx | The client should switch to a different protocol, such as TLS, named in the Upgrade header. |
428 | Precondition Required | 4xx | The server requires the request to be conditional to avoid a lost update. |
429 | Too Many Requests | 4xx | The client has sent too many requests in a given time and is being rate limited. |
431 | Request Header Fields Too Large | 4xx | The server refuses the request because its header fields are too large. |
451 | Unavailable For Legal Reasons | 4xx | The resource is blocked for legal reasons, such as a court order or censorship. |
500 | Internal Server Error | 5xx | The server hit an unexpected condition that prevented it from fulfilling the request. |
501 | Not Implemented | 5xx | The server does not support the functionality required to fulfill the request. |
502 | Bad Gateway | 5xx | A server acting as a gateway got an invalid response from an upstream server. |
503 | Service Unavailable | 5xx | The server is temporarily unable to handle the request, often due to overload or maintenance. |
504 | Gateway Timeout | 5xx | A gateway server did not get a timely response from an upstream server. |
505 | HTTP Version Not Supported | 5xx | The server does not support the HTTP protocol version used in the request. |
507 | Insufficient Storage | 5xx | The server cannot store the representation needed to complete the request (WebDAV). |
511 | Network Authentication Required | 5xx | The client must authenticate to gain network access, often shown by a captive portal. |
No status codes match your search.
Runs entirely in your browser. Nothing you type is sent anywhere; open DevTools and watch the Network tab to verify zero requests.
What this tool does
This is a searchable reference for the standard HTTP status codes, the three-digit numbers a server sends back to say how it handled a request. Every code on the page lists its name, its response class (1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error), and a one-sentence plain-English meaning. Type in the filter box to narrow the table by code number, name, or meaning, or tap a class button to show just one family. The whole dataset is baked into the page, so it works offline and sends nothing anywhere.
How to use it
Start typing in the Filter box. Entering 404 instantly
narrows the list to Not Found; entering timeout surfaces 408 and 504;
entering redirect shows the 3xx family. The class buttons
(All, 1xx, 2xx, 3xx, 4xx, 5xx) combine with the text filter, so you can, for example,
pick 4xx and type auth to zero in on 401. Clear the box to see
all codes again. Nothing is submitted and there is no result limit.
Common use cases
- Looking up what a status code from an API response or server log actually means.
- Deciding which code to return from your own endpoint (for example 201 vs 200, or 401 vs 403).
- Debugging redirects by comparing 301, 302, 307, and 308 behavior side by side.
- Explaining an error to a teammate or in a ticket with a precise, shared definition.
- Studying for interviews or certifications where the status code families come up.
Common pitfalls
- 301 vs 302 change more than permanence. Both historically allowed a client to switch the method to GET when following the redirect. If you need the method preserved (a POST that stays a POST), reach for 307 or 308 instead.
- 401 is not 403. A 401 says "authenticate and try again"; a 403 says "you are authenticated but still not allowed." Returning the wrong one sends clients down the wrong recovery path.
- A reason phrase is not the contract. The text next to the number (like "Not Found") is informational and can be customized or omitted over HTTP/2. Clients should branch on the numeric code, not the phrase.
- Not every number here is part of core HTTP. Codes such as 102, 103, 418, 425, 451, and 507 come from extensions or separate RFCs. They are widely referenced but not universally supported by every server or client.
Frequently asked questions
- What are HTTP status codes?
- HTTP status codes are three-digit numbers a server returns to tell the client how a request went. They are grouped into five classes by their first digit: 1xx informational, 2xx success, 3xx redirection, 4xx client error, and 5xx server error. The status line also carries a short reason phrase such as Not Found, but the numeric code is what clients act on.
- What is the difference between a 401 and a 403?
- A 401 Unauthorized means the request lacks valid authentication, so sending correct credentials may make it succeed. A 403 Forbidden means the server understood the request and the identity, but refuses to allow it, so retrying with the same credentials will not help. In short, 401 is about who you are and 403 is about what you are allowed to do.
- When should I use 301 versus 302?
- Use 301 Moved Permanently when a resource has a new canonical URL for good; browsers and search engines cache it and pass link value to the new location. Use 302 Found, or 307 Temporary Redirect, when the move is temporary and the original URL should stay in use. Note that 301 and 302 historically let clients switch the method to GET, while 307 and 308 preserve the original method.
- What does a 429 status code mean?
- A 429 Too Many Requests means you have hit a rate limit. The response often includes a Retry-After header telling you how many seconds to wait before trying again. Back off and honor that header rather than retrying immediately, which usually just makes the limit last longer.
- Are 4xx and 5xx both errors?
- Yes, but they assign blame differently. A 4xx code says the problem is on the client side, such as a bad URL, missing auth, or invalid input, so repeating the same request will fail the same way. A 5xx code says the server failed to fulfill an otherwise valid request, so the same request might succeed later once the server recovers.
- Is 418 I am a teapot a real status code?
- It is real in the sense that it is defined by RFC 2324, an April Fools specification for the Hyper Text Coffee Pot Control Protocol, and many web frameworks implement it as a joke. It is not part of the core HTTP standard and should not be used for serious APIs, but it is a well known Easter egg.
- Does this tool send the codes I search to a server?
- No. The full list of status codes is embedded in the page, and all filtering happens in your browser with JavaScript. You can confirm this by opening DevTools and watching the Network tab: typing in the search box makes zero requests.
Cite this tool
For academic, journalistic, or technical references. Pick a format:
Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.