FormatterHQ

HTTP Status Codes

Search the standard HTTP status codes in current use by number, name or keyword, filter by class (1xx to 5xx) and read a plain-English explanation of when each response is sent.

Loading tool…
Ready.

How to use the HTTP Status Codes

  1. Type a code (404), a word from its name or meaning (timeout, rate limit) or a class such as 5xx into the search box.
  2. Or click a filter chip (1xx to 5xx) to show only one class of responses.
  3. Read the one-line explanation under each code to see when a server sends it.
  4. Click the colored code button to copy the code and its name, for example 429 Too Many Requests.

HTTP Status Codes Explained, from 100 to 511

Every HTTP response starts with a three-digit number that tells the client how the request went. This searchable list of HTTP status codes covers the 61 registered codes you are likely to meet, from 100 Continue to 511 Network Authentication Required, each with a short note on when a server actually sends it. Type a number, part of a name such as "gateway", or a class like 4xx, and the list narrows as you type.

What are HTTP status codes?

A status code is the server's one-word verdict on your request. The first digit sets the class, so even an unfamiliar code tells you where to look:

ClassMeaningTypical examples
1xxInformational, the request is still in progress100 Continue, 101 Switching Protocols, 103 Early Hints
2xxSuccess200 OK, 201 Created, 204 No Content
3xxRedirection, look elsewhere301, 302, 304 Not Modified, 308
4xxClient error, fix the request400, 401, 403, 404, 429
5xxServer error, the request may be fine500, 502, 503, 504

The reason phrase ("Not Found") is only a hint for humans. Clients must act on the number, and HTTP/2 and HTTP/3 do not send the phrase at all, so never match on the text in your code.

Example search

Searching for 429 returns a single entry with its class and meaning:

429 Too Many Requests  [Client error]
    Rate limit exceeded. Retry-After says how long to wait.

Keyword searches match the explanations too, so redirect or cache finds codes whose names do not contain the word. Clicking a code copies it with its name, which is handy for bug reports, test assertions and API documentation.

Status codes that are easy to confuse

  • 401 vs 403. 401 Unauthorized really means "unauthenticated": the client should send credentials, and the response should carry a WWW-Authenticate header. 403 Forbidden means the server knows who you are and still refuses, so logging in again will not help.
  • 301/302 vs 308/307. Older clients may turn a POST into a GET when following 301 or 302. 307 (temporary) and 308 (permanent) require the method and body to be kept, which is what you want for API redirects.
  • 302 vs 303. 303 See Other tells the browser to fetch the new URL with GET. It is the standard answer after a form POST (the Post/Redirect/Get pattern).
  • 400 vs 422. Use 400 when the request cannot be parsed, such as malformed JSON. Use 422 when the syntax is fine but a value fails validation.
  • 404 vs 410. 410 Gone says the resource was removed on purpose and will not return, which search engines treat as a stronger signal than 404.
  • 502 vs 503 vs 504. These usually come from a proxy or load balancer. 502 means the upstream sent an invalid response or refused the connection, 503 means the service is overloaded or in maintenance, and 504 means the upstream did not answer in time.

Choosing status codes for a REST API

Keep the set small and predictable. Return 200 for a successful read, 201 Created with a Location header when a POST creates something, and 204 No Content when a DELETE or PUT has nothing to return. Use 409 Conflict for duplicate keys or version clashes, and 429 with Retry-After for rate limits.

Pair every 4xx and 5xx with a machine-readable body. The application/problem+json format from RFC 9457 is a good default; you can confirm its media type in the MIME type lookup. To see which codes your endpoints really return, send requests from the API tester, and use the URL parser to inspect the Location URLs your redirects point to.

Unusual codes you may run into

103 Early Hints lets a server send Link preload headers before the final response. 421 Misdirected Request appears when an HTTP/2 connection is reused for a host it cannot serve. 425 Too Early protects against replayed TLS early data, and 451 Unavailable For Legal Reasons signals a legal block. 418 I'm a teapot started as an April Fools' joke and is reserved so it is never assigned a real meaning.

Vendor-specific codes such as nginx's 499 or Cloudflare's 520 to 527 are not in the list because they are not registered HTTP status codes. If you see one, check that vendor's documentation. The deprecated 305 Use Proxy and the reserved, unused 306 are left out as well.

Privacy

The status code table is part of the page itself, and searching runs in your browser. Nothing you type is sent to a server.

Frequently asked questions

Does a 404 error hurt my SEO?
A 404 for a page that genuinely no longer exists is normal and does not penalize the rest of your site. Problems start when important pages or internal links return 404, because visitors and link value are lost. Redirect moved pages with a 301 or 308 and fix broken internal links.
Why does my site show 502 Bad Gateway?
A 502 comes from a proxy, load balancer or CDN that could not get a valid response from your application server. Common causes are an app process that crashed or is not listening on the expected port, a PHP-FPM or Node process that is out of workers, or a firewall blocking the upstream. Check the proxy error log first; it usually names the failed upstream.
Should an API return 200 with an error message in the body?
It is better not to. Clients, proxies, monitoring tools and retry logic all rely on the status code, so a 200 with "error": true hides failures from them. Return a matching 4xx or 5xx code and put the details in the body.
Is 418 I'm a teapot a real status code?
It comes from an April Fools' RFC about coffee pots and was never part of core HTTP. The code is now reserved so it will not be given another meaning, and some frameworks support it for fun. Do not use it for real errors.
What is the difference between 500 and 503?
500 Internal Server Error means something unexpected broke while handling the request, usually a bug or unhandled exception. 503 Service Unavailable means the server is deliberately refusing work for now, for example during maintenance or overload, and may include a Retry-After header. Load balancers and crawlers treat a 503 as temporary.

Last updated October 3, 2026

Guides

Related tools

HTTP Request Headers Viewer See the HTTP request headers your browser sends: User-Agent, Accept, Sec-Fetch and client hints, plus headers added by a CDN or proxy. Cookie values hidden. JWT Decoder Decode a JSON Web Token to inspect its header, payload claims and expiry time, and verify its signature with your key. Runs locally. JWT Encoder & Generator Create and sign JSON Web Tokens with HS256, RS256, ES256, PS256 or EdDSA using a secret or PEM key. Signing happens in your browser. JWT Verifier Verify a JWT signature with a shared secret, PEM public key, X.509 certificate or JWKS and check exp, nbf, iss and aud claims. MIME Type Lookup Find the MIME / Content-Type for a file extension or the extensions for a media type — about 150 common types. MongoDB ObjectId to Timestamp Extract the creation date from MongoDB ObjectIds and see the random and counter parts; also builds a date-range _id query. QR Code Generator Create free QR codes for URLs, text, Wi-Fi, vCards, e-mail, SMS, phone numbers, locations and events. Custom colours, PNG and SVG. QR Code Reader & Scanner Scan QR codes from an image, screenshot or your camera and see the content — links, Wi-Fi passwords, contacts — safely before opening. Regex Cheat Sheet Interactive regex cheat sheet: anchors, classes, quantifiers, groups, lookarounds, flags and Unicode, with clickable examples and a flavour table. Regex Escape Escape special characters so any text can be matched literally inside a regular expression in JavaScript, PCRE, Python or Java. Regex Explainer Break a regular expression into tokens and explain each part in plain English: groups, quantifiers, classes, anchors and lookarounds. Regex Patterns Library Copy-ready regex patterns for email, phone, URL, IP, dates, numbers, UUIDs, postal codes and passwords, each with examples and a live test box.