Search HTTP status codes by number or keyword and read what each one actually means. Whether you hit a 403, a 502 or a 429, this gives you the reason phrase and a plain-language explanation. It runs in your browser, so it works even while you’re debugging offline.
37 codes
- 100ContinueInformational
The client should continue sending the request body.
- 101Switching ProtocolsInformational
The server is switching protocols as the client asked (e.g. to WebSocket).
- 103Early HintsInformational
Preliminary headers so the browser can start preloading resources.
- 200OKSuccess
The request succeeded; the response carries the result.
- 201CreatedSuccess
The request succeeded and a new resource was created.
- 202AcceptedSuccess
The request was accepted for processing but isn’t finished yet.
- 204No ContentSuccess
Success, but there’s no body to return.
- 206Partial ContentSuccess
Only the requested range of the resource is returned.
- 301Moved PermanentlyRedirection
The resource has a new permanent URL; update your links.
- 302FoundRedirection
The resource is temporarily at a different URL.
- 303See OtherRedirection
Fetch the result from another URL with a GET request.
- 304Not ModifiedRedirection
The cached copy is still valid; no need to resend it.
- 307Temporary RedirectRedirection
Temporary redirect that preserves the HTTP method.
- 308Permanent RedirectRedirection
Permanent redirect that preserves the HTTP method.
- 400Bad RequestClient error
The server couldn’t understand the request (malformed syntax or data).
- 401UnauthorizedClient error
Authentication is required or has failed.
- 403ForbiddenClient error
You’re authenticated but not allowed to access this.
- 404Not FoundClient error
The requested resource doesn’t exist on this server.
- 405Method Not AllowedClient error
The HTTP method isn’t supported for this resource.
- 406Not AcceptableClient error
The server can’t produce a response matching the Accept headers.
- 408Request TimeoutClient error
The server timed out waiting for the request.
- 409ConflictClient error
The request conflicts with the current state of the resource.
- 410GoneClient error
The resource is permanently gone and won’t return.
- 413Payload Too LargeClient error
The request body is larger than the server will accept.
- 415Unsupported Media TypeClient error
The request’s content type isn’t supported.
- 418I'm a teapotClient error
An April Fools’ joke code — the server refuses to brew coffee.
- 422Unprocessable ContentClient error
The syntax is fine but the data fails validation.
- 429Too Many RequestsClient error
You’ve been rate-limited; slow down and retry later.
- 431Request Header Fields Too LargeClient error
The request’s headers are too large to process.
- 451Unavailable For Legal ReasonsClient error
The resource is blocked for legal reasons.
- 500Internal Server ErrorServer error
A generic server-side error with no more specific message.
- 501Not ImplementedServer error
The server doesn’t support the functionality required.
- 502Bad GatewayServer error
A gateway or proxy got an invalid response upstream.
- 503Service UnavailableServer error
The server is overloaded or down for maintenance.
- 504Gateway TimeoutServer error
A gateway or proxy didn’t get a timely upstream response.
- 505HTTP Version Not SupportedServer error
The server doesn’t support the HTTP version used.
- 511Network Authentication RequiredServer error
You must authenticate to gain network access (e.g. a captive portal).
Reference based on the IETF HTTP standards (RFC 9110 and related). Some services add non-standard codes.
How it works
Type a number — even a partial one like 40 — to filter the list to matching codes, or type a word like “redirect” or “forbidden” to search the names and descriptions. Codes are grouped by class: 1xx informational, 2xx success, 3xx redirection, 4xx client errors and 5xx server errors, which is the fastest way to reason about an unfamiliar code.
The first digit tells you who’s responsible. A 4xx means the request was wrong (bad input, missing auth, wrong URL), so the fix is usually on the client side. A 5xx means the server failed to fulfil a valid request, so the fix is on the server or an upstream service. That single distinction resolves most “whose bug is it?” questions.
Practical examples
Diagnosing a 401 vs 403
A 401 “Unauthorized” means you haven’t authenticated (log in / send a token). A 403 “Forbidden” means you have, but you’re not allowed — no amount of re-logging-in will help.
Understanding a 429
“Too Many Requests” means an API rate limit kicked in. Back off, check for a Retry-After header, and space out your calls rather than hammering the endpoint.
Telling 502 from 504
A 502 “Bad Gateway” means the proxy got a broken response upstream; a 504 “Gateway Timeout” means the upstream didn’t answer in time. Both point at the backend, not your request.
Frequently asked questions
What do the status code classes mean?
1xx is informational, 2xx means success, 3xx means a redirect, 4xx means a client error (your request was wrong), and 5xx means a server error (the server failed to handle a valid request). The first digit alone tells you a lot.
What’s the difference between 301 and 302?
301 “Moved Permanently” tells clients and search engines to update to the new URL for good. 302 “Found” is temporary — the original URL should still be used in future. Using the wrong one can hurt SEO.
Why do I get a 404 when the page seems to exist?
The server has no resource at that exact path. Common causes are a typo, a trailing-slash mismatch, a case-sensitive path, or a route that wasn’t deployed. 404 is specifically “not found here,” not “you’re not allowed.”
Is 200 always a success?
It means the HTTP request succeeded, but the body can still describe an application error — some APIs return 200 with an error object. Check both the status line and the payload.
When should I use 401 versus 403?
Return 401 when authentication is missing or invalid (the client should log in). Return 403 when the client is authenticated but lacks permission for this resource. Mixing them up confuses API consumers.
What is a 429 and how do I handle it?
429 “Too Many Requests” signals rate limiting. Respect any Retry-After header, add exponential backoff, and reduce your request rate. It’s not an error in your code so much as a pace limit.
Are all status codes standardised?
The ones listed here are defined by the IETF (RFC 9110 and related). Some services also use custom or vendor-specific codes; those aren’t part of the standard and vary by provider.
Does this need an internet connection?
No. The whole reference is bundled into the page, so search works instantly and offline — handy when you’re debugging a flaky connection.
Related tools
URL Parser
Break any URL into protocol, host, port, path, query and hash, and list its decoded query parameters. In your browser.
Developer tools
JSON Formatter
Beautify, validate or minify JSON in your browser — with clear error messages. Nothing is uploaded.
Developer tools
Regex Tester
Test a JavaScript regular expression against text and see every match, with numbered and named capture groups.
Developer tools
QR Code Generator
Create a QR code from any text or link and download it as PNG or SVG. Generated locally, no watermark, free for any use.
Generators
Base64 Encoder and Decoder
Encode text to Base64 or decode it back, UTF-8 safe and URL-safe tolerant. Runs entirely in your browser.
Developer tools
JSON to CSV Converter
Convert a JSON array of objects into CSV, right in your browser. Choose the delimiter; nested values are kept as JSON.
Developer tools