HTTP Status Codes
A searchable reference of every HTTP status code — meaning, category and common causes.
1xx — Informational
Continue
The server received the request headers and the client should proceed to send the body.
Switching Protocols
The server is switching protocols as requested (e.g. to WebSocket).
Early Hints
Used to return preliminary headers while the final response is prepared.
2xx — Success
OK
The request succeeded. The most common success response.
Created
The request succeeded and a new resource was created — typical after a POST.
Accepted
The request was accepted for processing, but processing isn't complete.
No Content
The request succeeded but there's no content to return — common for DELETE.
Partial Content
The server is delivering part of the resource, used for range requests and resumable downloads.
3xx — Redirection
Moved Permanently
The resource has permanently moved to a new URL. Search engines transfer ranking to the new location.
Found
The resource is temporarily at a different URL. The original URL should still be used in future.
Not Modified
The cached version is still valid — the client can use its cached copy, saving bandwidth.
Temporary Redirect
Like 302 but the request method must not change (POST stays POST).
Permanent Redirect
Like 301 but the request method must not change. Used by many www/HTTPS redirects.
4xx — Client Error
Bad Request
The server couldn't understand the request — malformed syntax or invalid parameters.
Unauthorized
Authentication is required and has failed or not been provided. (Really means 'unauthenticated'.)
Forbidden
The server understood the request but refuses to authorize it. Authentication won't help.
Not Found
The server can't find the requested resource. The most famous status code.
Method Not Allowed
The HTTP method isn't supported for this resource (e.g. POST to a read-only endpoint).
Request Timeout
The server timed out waiting for the request.
Conflict
The request conflicts with the current state — e.g. an edit conflict or duplicate entry.
Gone
The resource is permanently gone with no forwarding address — stronger than 404.
I'm a teapot
An April Fools' joke from 1998 (RFC 2324). Some servers still return it playfully.
Unprocessable Entity
The request was well-formed but has semantic errors — common in API validation failures.
Too Many Requests
The user has sent too many requests in a given time — rate limiting.
5xx — Server Error
Internal Server Error
A generic server error — something went wrong but the server can't be more specific.
Not Implemented
The server doesn't support the functionality to fulfill the request.
Bad Gateway
A server acting as a gateway received an invalid response from an upstream server.
Service Unavailable
The server is temporarily unable to handle the request — overloaded or down for maintenance.
Gateway Timeout
A gateway server didn't receive a timely response from an upstream server.
About this tool
Every request on the web comes back with a status code, and while a few are famous (404, 500), the full set is a genuinely useful reference for anyone building or debugging web software. This is that reference — every standard code, grouped by category, searchable by number or name, with a plain-English explanation of what each one means and when you'd see it.
The codes fall into five families that are worth knowing as a mental model: 1xx informational (rare), 2xx success (200 OK, 201 Created), 3xx redirection (301 permanent, 302 temporary, 304 not-modified), 4xx client errors (400, 401, 403, 404, 429), and 5xx server errors (500, 502, 503). The first digit alone tells you who's at fault — 4xx means the request was wrong, 5xx means the server failed — which is often the first thing you need when debugging.
Search filters instantly as you type: enter 403 to jump to it, or type "forbidden" or "rate limit" to find codes by meaning. The descriptions go beyond the terse official names to explain the practical situation — why 401 really means "unauthenticated" not "unauthorized", why 502 points at an upstream server, when you'd return 422 instead of 400. A quick, no-nonsense lookup for API development, debugging and SEO work alike.
How to use the HTTP Status Codes
- 1Browse the codes grouped by category (1xx–5xx).
- 2Or search by number (404) or name (not found, rate limit) to filter instantly.
- 3Read the plain-English meaning and common cause of each code.
- 4Use the first digit as a shortcut: 4xx is a client problem, 5xx is a server problem.
Frequently asked questions
What does HTTP 404 mean?
Not Found — the server couldn't find the requested resource at that URL. It's a client-side (4xx) code, meaning the request was for something that doesn't exist, often a mistyped or outdated URL. It doesn't indicate a server malfunction; the server responded fine, the resource just isn't there.
What's the difference between 401 and 403?
401 Unauthorized actually means 'unauthenticated' — you haven't proven who you are, and providing credentials might grant access. 403 Forbidden means you're authenticated but not allowed — credentials won't help because you lack permission for this resource. The names are a historical quirk; the distinction is authentication vs authorization.
What causes a 500 vs a 502 error?
500 Internal Server Error is a generic 'something broke in the application' — an unhandled exception, a bug. 502 Bad Gateway specifically means a server acting as a proxy or gateway got an invalid response from an upstream server behind it — pointing the finger further back in the chain.
What is a 429 status code?
Too Many Requests — you've hit a rate limit by sending too many requests in a short window. The server is asking you to slow down; responses often include a Retry-After header telling you how long to wait. Common with public APIs that cap request rates per client.
Related tools
JSON Formatter & Validator
Format, minify and validate JSON instantly — with exact error positions when something's wrong.
Open toolURL Encoder / Decoder
Percent-encode text for URLs or decode %20-riddled strings back into readable text — live.
Open toolJWT Decoder
Decode JWT header and payload instantly — with human-readable expiry dates. Nothing leaves your browser.
Open toolCron Expression Parser
Translate any cron expression into plain English and see the next run times — with common presets.
Open tool