HTTP Status Codes Reference
Complete reference for all HTTP response status codes with descriptions and use cases.
1xx — Informational
| Code | Name | Description |
|---|---|---|
| 100 | Continue | The server has received the request headers; the client should proceed to send the body. |
| 101 | Switching Protocols | The server agrees to switch protocols as requested (e.g., upgrading to WebSocket). |
| 102 | Processing | The server has received and is processing the request, but no response is available yet. |
| 103 | Early Hints | Allows the client to start preloading resources before the server's final response. |
2xx — Success
| Code | Name | Description |
|---|---|---|
| 200 | OK | Standard successful response for GET, POST, PUT, PATCH, DELETE. |
| 201 | Created | Resource was created. Returned after a successful POST that created an entity. |
| 202 | Accepted | Request accepted for asynchronous processing; not yet completed. |
| 203 | Non-Authoritative Information | Response from a proxy that modified the origin server's 200 response. |
| 204 | No Content | Success but no body to return. Common for DELETE and some PUT operations. |
| 205 | Reset Content | Success; client should reset the document view (e.g., clear a form). |
| 206 | Partial Content | Range request succeeded; response contains partial data (used for file downloads). |
| 207 | Multi-Status | Response body contains multiple status codes (WebDAV). |
| 208 | Already Reported | Members of a DAV binding already enumerated in a previous reply. |
| 226 | IM Used | Server fulfilled GET with instance manipulations applied. |
3xx — Redirection
| Code | Name | Description |
|---|---|---|
| 300 | Multiple Choices | Multiple options available; client or user must choose. |
| 301 | Moved Permanently | Resource permanently moved to new URL. Browsers cache this. Good for SEO. |
| 302 | Found | Temporary redirect. Client should continue using the original URL. |
| 303 | See Other | Redirect to another resource using GET (common after POST form submit). |
| 304 | Not Modified | Resource unchanged since last request. Client can use its cached copy. |
| 307 | Temporary Redirect | Temporary redirect; client must use same method (preserves POST). |
| 308 | Permanent Redirect | Permanent redirect; client must use same method. Like 301 but preserves method. |
4xx — Client Errors
| Code | Name | Description |
|---|---|---|
| 400 | Bad Request | Server cannot process request due to malformed syntax or invalid parameters. |
| 401 | Unauthorized | Authentication required or failed. Client must authenticate to get the requested response. |
| 402 | Payment Required | Reserved for future use. Sometimes used by APIs for quota exceeded. |
| 403 | Forbidden | Client is authenticated but does not have permission to access this resource. |
| 404 | Not Found | Resource not found at this URL. Most well-known HTTP error. |
| 405 | Method Not Allowed | HTTP method (GET, POST, etc.) is not allowed for this endpoint. |
| 406 | Not Acceptable | Server cannot produce content matching the Accept headers sent by the client. |
| 407 | Proxy Authentication Required | Client must authenticate with the proxy first. |
| 408 | Request Timeout | Server timed out waiting for the request from the client. |
| 409 | Conflict | Request conflicts with current state of the resource (e.g., duplicate entry). |
| 410 | Gone | Resource permanently deleted. Unlike 404, indicates intentional removal. |
| 411 | Length Required | Server requires a Content-Length header on the request. |
| 412 | Precondition Failed | A conditional request header (If-Match etc.) evaluated to false. |
| 413 | Content Too Large | Request body exceeds server's size limit. |
| 414 | URI Too Long | The request URI is longer than the server will accept. |
| 415 | Unsupported Media Type | Request's Content-Type is not supported by the server. |
| 416 | Range Not Satisfiable | Requested range in Range header cannot be satisfied. |
| 417 | Expectation Failed | Expect request header cannot be met by the server. |
| 418 | I'm a Teapot | April Fools' joke from RFC 2324. Any similarity to a real status is coincidental. |
| 422 | Unprocessable Content | Request is well-formed but contains semantic errors (common in REST APIs). |
| 423 | Locked | Resource is locked (WebDAV). |
| 424 | Failed Dependency | Request failed because a dependent request failed (WebDAV). |
| 425 | Too Early | Server unwilling to process a request that might be replayed. |
| 426 | Upgrade Required | Client should switch to a different protocol (e.g., TLS). |
| 428 | Precondition Required | Origin server requires the request to be conditional. |
| 429 | Too Many Requests | Client has sent too many requests in a given time. API rate limiting. |
| 431 | Request Header Fields Too Large | Request headers are too large. |
| 451 | Unavailable For Legal Reasons | Resource unavailable due to legal reasons (e.g., government censorship). |
5xx — Server Errors
| Code | Name | Description |
|---|---|---|
| 500 | Internal Server Error | Generic server-side error. The server encountered an unexpected condition. |
| 501 | Not Implemented | Server does not support the functionality required to fulfil the request. |
| 502 | Bad Gateway | Upstream server returned an invalid response (common with proxies/load balancers). |
| 503 | Service Unavailable | Server is temporarily unavailable (overloaded or down for maintenance). |
| 504 | Gateway Timeout | Upstream server did not respond in time. |
| 505 | HTTP Version Not Supported | Server does not support the HTTP version used in the request. |
| 506 | Variant Also Negotiates | Circular reference in content negotiation. |
| 507 | Insufficient Storage | Server is out of storage space (WebDAV). |
| 508 | Loop Detected | Infinite loop detected while processing request (WebDAV). |
| 510 | Not Extended | Further extensions are required for the server to fulfil the request. |
| 511 | Network Authentication Required | Client must authenticate to gain network access (e.g., captive portals). |