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
| 1xx | Informational — the request is being processed. You almost never see these as a user; they are protocol-level messages (100 Continue, 101 Switching Protocols). |
| 2xx | Success — the request worked. 200 OK is the universal success; 201 Created for new resources; 204 No Content when the response intentionally has no body. |
| 3xx | Redirects — 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). |
| 4xx | Client 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. |
| 5xx | Server 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