HTTP status code lookup
Type a code such as 404, a class such as 4xx, or words such as rate limit. Every code assigned in the IANA registry is here, with the section of the RFC that defines it.
tool 21 of 21 []
all shortcuts ?
How to use it
- Type a full code to see its meaning, the RFC section that defines it and whether caches may store it by default.
- Type one or two digits to list every code that starts with them, a class such as 5xx, or words such as redirect, cache or rate limit to search names and notes.
- Use the class menu to narrow the list. The reference links open the defining RFC section at the RFC Editor.
- A code that is not registered still has a class. Clients that do not recognize a code must treat it like the x00 code of its class, which the page states for unassigned codes.
Redirects: 301, 302, 303, 307 and 308
The five redirect codes differ on two questions: is the move permanent, and may the client change the method. For historical reasons browsers turn a POST into a GET when they follow 301 or 302, and RFC 9110 allows it. 307 and 308 were added to forbid that change, so they are the safe choice when an API redirects a POST, PUT or DELETE. 303 always means fetch the new location with GET, which is why it is the standard reply after a form submission.
Permanent codes (301 and 308) tell clients and search engines to update stored links, and both are heuristically cacheable, so a browser may remember the redirect without explicit cache headers. Use a temporary code while you are still testing a move.
401 versus 403, and 400 versus 422
A 401 means the request lacks valid credentials, and the server must say how to authenticate in a WWW-Authenticate header. A 403 means the server refuses even though it may know who you are; sending the same credentials again will not help. Many APIs return 404 instead of 403 to avoid revealing that a resource exists, which RFC 9110 permits.
A 400 is for requests the server cannot parse or will not process because of a client error. RFC 9110 moved 422 (formerly WebDAV only) into the core specification for requests whose syntax is fine but whose content fails validation, which is how many JSON APIs report field errors.
Status classes in the registry
| Class | Meaning | Registered codes | Range |
|---|---|---|---|
| 1xx | Informational | 5 | 100 to 199 |
| 2xx | Successful | 10 | 200 to 299 |
| 3xx | Redirection | 9 | 300 to 399 |
| 4xx | Client error | 29 | 400 to 499 |
| 5xx | Server error | 11 | 500 to 599 |
Counted by code from the IANA HTTP Status Code Registry (last updated 2025-09-15, retrieved 2026-10-21), which is vendored with this tool and checked by its tests.
Examples
Select an example to load it into the tool.
- 404
404 - All redirects
3xx - Rate limiting
rate limit - Unassigned 499
499
Frequently asked questions
How many HTTP status codes are there?
The IANA registry assigns 64 codes from 100 to 511, including two reserved as unused (306 and 418) and one marked obsoleted (510). Everything else between 100 and 599 is unassigned.
Is 418 I'm a teapot a real status code?
It began as an April Fools joke in RFC 2324 (1998). RFC 9110 reserves 418 as unused so that no real meaning is ever assigned to it, because some software already sends it.
What should a client do with a code it does not know?
Treat it like the first code of its class: an unknown 4xx code is handled as 400 and an unknown 5xx code as 500. That rule is why new codes can be added without breaking old clients.
Where do codes like 499 or 520 come from?
They are not registered. 499 is an nginx log value for a client that closed the connection, and 52x codes are used by Cloudflare. They are vendor conventions, not part of HTTP.
Is anything uploaded?
No. The full registry ships inside this page, so lookups work offline. The test suite fails the build if this tool contains a network call.
Sources
- IANA Hypertext Transfer Protocol (HTTP) Status Code Registry checked 2026-10-21
- RFC 9110: HTTP Semantics, Section 15 (Status Codes) checked 2026-10-21
- RFC 6585: Additional HTTP Status Codes (428, 429, 431, 511) checked 2026-10-21
- RFC 8297: An HTTP Status Code for Indicating Hints (103) checked 2026-10-21