Reference
HTTP Status Codes
Every standard HTTP response status code with descriptions. Use this reference when building APIs or debugging requests with the HTTP Request Builder.
1xx — Informational
The server has received the request headers and the client should proceed to send the request body.
| Code | Name | Description |
|---|---|---|
| 100 | Continue | The server has received the initial part of the request and the client should continue with the rest. |
| 101 | Switching Protocols | The server is switching to the protocol requested in the Upgrade header, such as WebSocket. |
| 102 | Processing | The server has received the request but has not yet completed it. Prevents the client from timing out. |
| 103 | Early Hints | Used with the Link header to let the browser start preloading resources while the server prepares the final response. |
2xx — Success
The request was successfully received, understood, and accepted.
| Code | Name | Description |
|---|---|---|
| 200 | OK | The request succeeded. The meaning depends on the HTTP method: GET returns the resource, POST returns the result of the action. |
| 201 | Created | The request succeeded and a new resource was created. Typically returned after POST or PUT requests. |
| 202 | Accepted | The request has been accepted for processing, but processing is not yet complete. Used for asynchronous operations. |
| 203 | Non-Authoritative Information | The response metadata is not from the origin server but from a local or third-party copy. |
| 204 | No Content | The request succeeded but there is no content to return. Common for successful DELETE requests. |
| 205 | Reset Content | The server fulfilled the request and asks the client to reset the document view, such as clearing a form. |
| 206 | Partial Content | The server is returning only part of the resource due to a Range header sent by the client. |
| 207 | Multi-Status | A WebDAV response that conveys information about multiple resources where multiple status codes might be appropriate. |
| 208 | Already Reported | Used in a WebDAV DAV:propstat response to avoid enumerating the same member repeatedly. |
| 226 | IM Used | The server has fulfilled a GET request and the response is a representation of one or more instance manipulations. |
3xx — Redirection
Further action is needed to complete the request, typically by following a different URL.
| Code | Name | Description |
|---|---|---|
| 300 | Multiple Choices | The request has more than one possible response. The client should choose one. |
| 301 | Moved Permanently | The requested resource has been permanently moved to a new URL. Search engines transfer ranking to the new URL. |
| 302 | Found | The resource is temporarily at a different URL. The client should continue using the original URL for future requests. |
| 303 | See Other | The response to the request can be found at another URL using a GET request. |
| 304 | Not Modified | The resource has not been modified since the version specified by the If-Modified-Since or If-None-Match headers. |
| 307 | Temporary Redirect | The resource is temporarily at a different URL. Unlike 302, the HTTP method must not change. |
| 308 | Permanent Redirect | The resource has permanently moved. Unlike 301, the HTTP method must not change. |
4xx — Client Error
The request contains bad syntax or cannot be fulfilled by the server.
| Code | Name | Description |
|---|---|---|
| 400 | Bad Request | The server cannot process the request due to a client error such as malformed syntax, invalid framing, or deceptive routing. |
| 401 | Unauthorized | Authentication is required and has either failed or not been provided. The response includes a WWW-Authenticate header. |
| 402 | Payment Required | Reserved for future use. Some APIs use it to indicate that a payment or subscription is needed. |
| 403 | Forbidden | The server understood the request but refuses to authorize it. Unlike 401, re-authenticating will not help. |
| 404 | Not Found | The server cannot find the requested resource. The most common error response on the web. |
| 405 | Method Not Allowed | The HTTP method is not supported for the target resource. The response includes an Allow header listing valid methods. |
| 406 | Not Acceptable | The server cannot produce a response matching the Accept headers sent by the client. |
| 407 | Proxy Authentication Required | Similar to 401, but authentication must be done with a proxy. |
| 408 | Request Timeout | The server timed out waiting for the client to finish sending the request. |
| 409 | Conflict | The request conflicts with the current state of the server, such as an edit conflict or duplicate resource. |
| 410 | Gone | The resource is permanently gone and will not be available again. Unlike 404, this is intentional and permanent. |
| 411 | Length Required | The server requires a Content-Length header in the request. |
| 412 | Precondition Failed | A precondition in the request headers (such as If-Match) evaluated to false on the server. |
| 413 | Content Too Large | The request body is larger than the server is willing to process. |
| 414 | URI Too Long | The request URI is longer than the server is willing to interpret. |
| 415 | Unsupported Media Type | The request body is in a format not supported by the target resource for the requested method. |
| 416 | Range Not Satisfiable | The range specified in the Range header cannot be fulfilled. The resource may be smaller than the requested range. |
| 417 | Expectation Failed | The Expect request header cannot be met by the server. |
| 418 | I'm a Teapot | An April Fools' joke from RFC 2324. The server refuses to brew coffee because it is, permanently, a teapot. |
| 422 | Unprocessable Content | The request is well-formed but contains semantic errors that prevent processing. |
| 425 | Too Early | The server is unwilling to process the request because it might be replayed in a TLS early data context. |
| 426 | Upgrade Required | The server refuses the request using the current protocol but might accept it after the client upgrades. |
| 428 | Precondition Required | The server requires the request to be conditional (e.g., include an If-Match header) to prevent lost-update conflicts. |
| 429 | Too Many Requests | The client has sent too many requests in a given period. The response may include a Retry-After header. |
| 431 | Request Header Fields Too Large | The server refuses to process the request because one or more header fields are too large. |
| 451 | Unavailable For Legal Reasons | The resource is unavailable due to legal demands, such as censorship or government-mandated blocking. |
5xx — Server Error
The server failed to fulfill a valid request.
| Code | Name | Description |
|---|---|---|
| 500 | Internal Server Error | The server encountered an unexpected condition that prevented it from fulfilling the request. |
| 501 | Not Implemented | The server does not recognize the request method or lacks the ability to fulfill the request. |
| 502 | Bad Gateway | The server received an invalid response from an upstream server while acting as a gateway or proxy. |
| 503 | Service Unavailable | The server is temporarily unable to handle the request, typically due to maintenance or overload. |
| 504 | Gateway Timeout | The server did not receive a timely response from an upstream server while acting as a gateway. |
| 505 | HTTP Version Not Supported | The server does not support the HTTP protocol version used in the request. |
| 506 | Variant Also Negotiates | The server has an internal configuration error involving transparent content negotiation. |
| 507 | Insufficient Storage | The server cannot store the representation needed to complete the request (WebDAV). |
| 508 | Loop Detected | The server detected an infinite loop while processing the request (WebDAV). |
| 510 | Not Extended | Further extensions to the request are required for the server to fulfill it. |
| 511 | Network Authentication Required | The client needs to authenticate to gain network access, typically from a captive portal. |
Test HTTP responses in your browser
Use the HTTP Request Builder to send requests and inspect status codes, headers, and response bodies directly.
Open HTTP Request Builder