HTTP Status Codes

Every standard HTTP status code, organized by class, with the meaning, the typical real-world cause, and the fix that actually works. Search by code, name, or keyword — the reference you keep open while debugging an API. 100% client-side.

The five classes, at a glance

1xxInformational — the request is being processed. You almost never see these as a user; they are protocol-level messages (100 Continue, 101 Switching Protocols).
2xxSuccess — the request worked. 200 OK is the universal success; 201 Created for new resources; 204 No Content when the response intentionally has no body.
3xxRedirects — the client must do something else. 301/308 permanent, 302/307 temporary, 304 Not Modified (the cache is still valid — this is a good thing, not an error).
4xxClient errors — the request was wrong. 400 Bad Request, 401 Unauthorized (no credentials), 403 Forbidden (credentials but no permission), 404 Not Found, 429 Too Many Requests. You or your client caused these.
5xxServer errors — the server failed. 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout. These are on you (the server operator).

How to use this reference when debugging

The first question is always: who is at fault? A 4xx means the request itself is wrong — check the request body, headers, authentication, or rate limits before touching the server. A 5xx means the server failed on a valid request — check application logs, then infrastructure. A 3xx means follow the redirect and check where it leads. A 2xx means the problem is downstream: your rendering, your caching, or your interpretation of the response. This mental model resolves 80% of API debugging before you open a single log file.

For the deep-dive on the most confusing cases — 301 vs 308, when 429 strikes, and how to fix 404/500/503 — see the structured FAQ at the top of this page.

Related tools: URL Parser · cURL → fetch Converter · MIME Type Lookup · JWT Decoder · More Developer Tools