HTTP Status Code Reference
Searchable reference of every HTTP status code with descriptions and category.
1xx Informational
| 100 | Continue Initial request received; client should proceed with the request body. |
| 101 | Switching Protocols Server is switching protocols as requested (e.g. WebSocket upgrade). |
| 102 | Processing Server has accepted the request but hasn't finished processing it. |
| 103 | Early Hints Preload hints sent before the final response — useful for `<link rel=preload>`. |
2xx Success
| 200 | OK Standard success response. The body contains the resource or operation result. |
| 201 | Created Resource was created. The Location header usually points to it. |
| 202 | Accepted Request accepted for processing but not yet completed. |
| 203 | Non-Authoritative Information Returned data was modified by a transforming proxy. |
| 204 | No Content Success, but there is no body to return. |
| 205 | Reset Content Tell the client to reset the document view (e.g. clear a form). |
| 206 | Partial Content Partial response for a Range request (resumable downloads, video seek). |
| 207 | Multi-Status WebDAV — body contains XML with multiple status results. |
| 208 | Already Reported WebDAV — bindings already enumerated in a previous response. |
| 226 | IM Used Server fulfilled the GET using one or more instance manipulations. |
3xx Redirection
| 300 | Multiple Choices Multiple options for the resource — client must choose. |
| 301 | Moved Permanently Resource has a new permanent URI (in Location). Use for SEO-safe redirects. |
| 302 | Found Temporary redirect. Some clients change POST to GET — prefer 307 if that's bad. |
| 303 | See Other Redirect to a result resource, always with GET. |
| 304 | Not Modified Cached copy is still valid — no body returned. |
| 307 | Temporary Redirect Redirect that preserves the original HTTP method and body. |
| 308 | Permanent Redirect Like 301 but preserves the method and body. |
4xx Client Error
| 400 | Bad Request Malformed request — syntax, missing required fields, invalid framing. |
| 401 | Unauthorized Authentication is required or has failed. (Confusingly named — really 'unauthenticated'.) |
| 402 | Payment Required Reserved for future use; some APIs use it for billing-related errors. |
| 403 | Forbidden Server understood the request but refuses to authorize it. |
| 404 | Not Found Resource doesn't exist (or you don't have permission to know that it does). |
| 405 | Method Not Allowed The HTTP method isn't supported on this resource. Allow header lists valid ones. |
| 406 | Not Acceptable Server can't produce a response matching the client's Accept headers. |
| 407 | Proxy Authentication Required Client must authenticate with the proxy. |
| 408 | Request Timeout Client took too long to send the request. |
| 409 | Conflict Request conflicts with current state (e.g. version mismatch on update). |
| 410 | Gone Resource intentionally removed and won't return. Stronger than 404 for SEO. |
| 411 | Length Required Server requires Content-Length header. |
| 412 | Precondition Failed A precondition header (If-Match, If-Unmodified-Since) wasn't met. |
| 413 | Payload Too Large Request body exceeds the server's allowed size. |
| 414 | URI Too Long Request URI is longer than the server is willing to interpret. |
| 415 | Unsupported Media Type Content-Type isn't accepted by the endpoint. |
| 416 | Range Not Satisfiable Requested Range can't be served. |
| 417 | Expectation Failed Expect request-header field can't be met. |
| 418 | I'm a teapot RFC 2324 joke status. Some APIs use it deliberately. |
| 422 | Unprocessable Entity Request was well-formed but contains semantic errors (validation failures). |
| 423 | Locked WebDAV — the resource is locked. |
| 424 | Failed Dependency WebDAV — request failed because a previous one did. |
| 425 | Too Early Server is unwilling to risk processing a replay-able request. |
| 426 | Upgrade Required Client must switch to a different protocol (e.g. TLS). |
| 428 | Precondition Required Server requires the request to be conditional. |
| 429 | Too Many Requests Rate-limited. Retry-After tells you when to try again. |
| 431 | Request Header Fields Too Large Headers (collectively or individually) are too big. |
| 451 | Unavailable For Legal Reasons Resource blocked by legal demand. Named for Fahrenheit 451. |
5xx Server Error
| 500 | Internal Server Error Generic 'something broke on the server' — check logs. |
| 501 | Not Implemented Server doesn't recognize the request method. |
| 502 | Bad Gateway Upstream server returned an invalid response. Usually a proxy issue. |
| 503 | Service Unavailable Server overloaded or down for maintenance. Retry-After may say when. |
| 504 | Gateway Timeout Upstream server didn't respond in time. |
| 505 | HTTP Version Not Supported Server doesn't support the HTTP protocol version used. |
| 506 | Variant Also Negotiates Transparent content negotiation has a misconfigured loop. |
| 507 | Insufficient Storage WebDAV — server can't store the representation. |
| 508 | Loop Detected WebDAV — server detected an infinite loop processing the request. |
| 510 | Not Extended Further extensions to the request are required. |
| 511 | Network Authentication Required Captive portal — sign in to gain network access. |
You might also like
- MIME Type ReferenceSearchable reference of common MIME types by extension and category.
- Cache-Control Header BuilderBuild HTTP Cache-Control headers with presets for static assets, APIs, and private responses.
- HTTP Cookie Builder & ParserConstruct or decode Set-Cookie headers with SameSite, Secure, HttpOnly, and prefix validation.
- HTTP Message ParserParse a header block, raw request, or raw response into structured JSON with smart Set-Cookie / Cache-Control / Content-Type breakdowns.