HTTP Status Codes
Every HTTP status code explained — searchable reference for debugging.
The HTTP Status Codes reference explains every status code you will meet in web development, grouped by family: 1xx informational, 2xx success, 3xx redirection, 4xx client errors and 5xx server errors — each with a plain-English description of what it means and when it appears.
Debugging APIs is decoding these numbers: a 401 tells you authentication failed, 403 means forbidden even with credentials, 429 is rate limiting (check Retry-After), 502 means a proxy got a bad upstream response, and 304 is your cache working as intended.
Search by code, name or meaning to find the status you are staring at. The reference covers the common IANA-registered codes with the descriptions developers actually need. Everything runs locally.
1xx Informational
100 · Continue
The server received the headers and the client can continue with the request body.
101 · Switching Protocols
The server agrees to switch protocols, e.g. to WebSocket, as requested.
102 · Processing
The server is still processing the request (WebDAV).
2xx Success
200 · OK
The request succeeded. Meaning depends on the method (GET: body, POST: created result).
201 · Created
A new resource was created as a result of the request.
202 · Accepted
The request was accepted for processing but is not finished.
203 · Non-Authoritative Information
The response was modified by a proxy and may differ from the origin.
204 · No Content
The request succeeded but there is nothing to return in the body.
205 · Reset Content
Tells the client to reset the document view.
206 · Partial Content
The server is delivering only part of the resource (range requests).
3xx Redirection
300 · Multiple Choices
The resource has several representations; the client should choose.
301 · Moved Permanently
The resource has a new permanent URL; update links and bookmarks.
302 · Found
Temporary redirect to another URL (often misused where 301 fits).
303 · See Other
Redirect to another URL, usually after a POST, fetched with GET.
304 · Not Modified
The cached copy is still valid — nothing new to send.
307 · Temporary Redirect
Temporary redirect preserving the method and body.
308 · Permanent Redirect
Permanent redirect preserving the method and body.
4xx Client Error
400 · Bad Request
The request is malformed — syntax, framing or parameters are wrong.
401 · Unauthorized
Authentication is required and was not provided or is invalid.
402 · Payment Required
Reserved for future use; historically tied to digital payments.
403 · Forbidden
The server understood the request but refuses to authorize it.
404 · Not Found
The resource does not exist on the server.
405 · Method Not Allowed
The URL exists but does not support this HTTP method.
406 · Not Acceptable
No representation matches the Accept headers sent by the client.
407 · Proxy Authentication Required
Authentication with the proxy is required first.
408 · Request Timeout
The server timed out waiting for the request.
409 · Conflict
The request conflicts with the current state of the resource.
410 · Gone
The resource used to exist but was permanently removed.
411 · Length Required
The Content-Length header is required but missing.
412 · Precondition Failed
A precondition header (like If-Match) was not satisfied.
413 · Payload Too Large
The request body exceeds the server's limit.
414 · URI Too Long
The URL is longer than the server can process.
415 · Unsupported Media Type
The Content-Type of the request is not supported.
422 · Unprocessable Entity
Well-formed request with semantic/validation errors in the content.
425 · Too Early
The server is unwilling to risk processing a replay-susceptible request.
426 · Upgrade Required
The client should switch to a different protocol, e.g. TLS.
429 · Too Many Requests
Rate limited — slow down. Respect the Retry-After header.
431 · Request Header Fields Too Large
Headers exceed the server's size limit.
451 · Unavailable For Legal Reasons
The resource is blocked for legal reasons (RFC 7725).
5xx Server Error
500 · Internal Server Error
Unexpected server failure — the generic catch-all.
501 · Not Implemented
The server does not support the requested functionality.
502 · Bad Gateway
An upstream server returned an invalid response.
503 · Service Unavailable
Temporarily overloaded or in maintenance; check Retry-After.
504 · Gateway Timeout
An upstream server did not respond in time.
505 · HTTP Version Not Supported
The server refuses the HTTP protocol version used.
The codes developers meet most: 200 OK, 301/308 permanent redirects, 304 cache hits, 401/403/404, 429 rate limits and 500/502/503 server issues.
How to use the HTTP Status Codes
- Scroll the family groups or search by code, name or keyword.
- Read each code's plain-English description.
- Check the colored card matching its family.
- Use the summary notes for the codes you meet most.
- Keep the tab open while debugging.
Frequently asked questions
What is the difference between 401 and 403?
401 Unauthorized means authentication is missing or failed — you have not proven who you are. 403 Forbidden means the server knows who you are but you are not allowed to access the resource.
When should I return 404 vs 410?
404 means the resource does not exist (or you are hiding its existence). 410 Gone means it existed and was permanently removed — useful when old links should stop being re-requested.
What is the difference between 301 and 308?
Both are permanent redirects, but 301 may switch POST to GET while 308 preserves the method and body. Use 308 for APIs where the request method must be kept intact.
Related tools
View all developer tools →JSON Formatter & Validator
Format, minify and validate JSON instantly with clear error messages that point at the exact problem.
Dev ToolsJSON Validator
Check if your JSON is valid and find syntax errors with exact line and column.
Dev ToolsJSON Minifier
Compress JSON to its smallest valid form for storage and transport.
Dev ToolsJSON to CSV
Convert a JSON array of objects into a clean CSV file in one click.
Dev ToolsCSV to JSON
Convert CSV (from Excel or Google Sheets) into a JSON array of objects.
Dev ToolsBase64 Encoder
Encode text or files to Base64 — standard or URL-safe — in your browser.