| Code | Name | Copy |
|---|---|---|
100 | Continue The initial part of a request has been received and the client should continue. | |
101 | Switching Protocols The server agrees to switch protocols, as requested by an Upgrade header. | |
102 | Processing The server has received and is processing the request, but no response is available yet. | |
103 | Early Hints Preliminary headers sent before the final response, e.g. to preload resources. |
| Code | Name | Copy |
|---|---|---|
200 | OK The request succeeded and the response body contains the result. Use 204 instead when the request succeeded but there is no body to return. | |
201 | Created The request succeeded and a new resource was created as a result. | |
202 | Accepted The request has been accepted for processing, but processing is not complete. | |
203 | Non-Authoritative Information The returned metadata is from a local or third-party copy, not the origin server. | |
204 | No Content The request succeeded but there is no content to send in the response body. Use 200 instead when a response body is present. | |
205 | Reset Content The request succeeded; the client should reset the document view that sent the request. | |
206 | Partial Content Delivers only part of the resource, as requested by a Range header. | |
207 | Multi-Status Conveys multiple status codes for independent operations in a single response. | |
208 | Already Reported The members of a DAV binding have already been enumerated in a previous reply. | |
226 | IM Used The server fulfilled the request and the response is an instance-manipulation result. |
| Code | Name | Copy |
|---|---|---|
300 | Multiple Choices There are multiple possible representations of the resource for the client to choose from. | |
301 | Moved Permanently The resource has permanently moved to a new URL given by the Location header. Permanent and may change the request method. Use 308 to keep the method fixed, or 302/307 for a temporary move. | |
302 | Found The resource temporarily resides at a different URL; the original URL should be reused later. Temporary and, historically, browsers may change the request method. Use 307 to guarantee the method is preserved. | |
303 | See Other The response to the request can be found at another URL, fetched with a GET request. | |
304 | Not Modified The cached version of the resource is still valid; no body is returned. | |
305 | Use Proxy The requested resource must be accessed through the proxy given by the Location header. Deprecated due to security concerns; most clients ignore it. | |
307 | Temporary Redirect The resource temporarily resides at a different URL; the request method must not change. Temporary, unlike 301/308. Preserves the method, unlike 302 in older clients. | |
308 | Permanent Redirect The resource has permanently moved to a new URL; the request method must not change. Permanent, like 301, but guarantees the method is preserved. |
| Code | Name | Copy |
|---|---|---|
400 | Bad Request The server cannot process the request due to malformed syntax or invalid data. Use 422 instead when the syntax is valid but the semantics/validation fail. | |
401 | Unauthorized Authentication is required and has failed or not yet been provided. Really means "unauthenticated" — the client is not logged in. Use 403 when the client is identified but lacks permission. | |
402 | Payment Required Reserved for future use; occasionally used by APIs for payment/billing failures. | |
403 | Forbidden The client is authenticated but does not have permission to access the resource. The client is known but not allowed. Use 401 when the client has not authenticated at all. | |
404 | Not Found The server cannot find the requested resource. | |
405 | Method Not Allowed The request method is not supported for the requested resource. | |
406 | Not Acceptable No representation of the resource matches the criteria in the Accept headers. | |
407 | Proxy Authentication Required The client must first authenticate itself with a proxy. | |
408 | Request Timeout The server timed out waiting for the request from the client. | |
409 | Conflict The request conflicts with the current state of the target resource. | |
410 | Gone The resource is permanently gone and no forwarding address is known. | |
411 | Length Required The server refuses the request because a Content-Length header was not defined. | |
412 | Precondition Failed A condition in one of the request header fields evaluated to false. | |
413 | Content Too Large The request body is larger than the server is willing or able to process. | |
414 | URI Too Long The URI requested by the client is longer than the server is willing to interpret. | |
415 | Unsupported Media Type The request body has a media format that the server does not support. | |
416 | Range Not Satisfiable The Range header value cannot be fulfilled for the target resource. | |
417 | Expectation Failed The expectation given in the request Expect header could not be met. | |
418 | I'm a Teapot A joke status code from the Hyper Text Coffee Pot Control Protocol; servers should not implement it. April Fools' Day RFC 2324 (1998); not a serious status code. | |
421 | Misdirected Request The request was directed at a server that cannot produce a response for it. | |
422 | Unprocessable Content The request is well-formed but contains semantic errors that prevent processing. Use 400 instead when the request body itself is malformed (not valid syntax). | |
423 | Locked The resource being accessed is locked. | |
424 | Failed Dependency The request failed because it depended on another request that failed. | |
425 | Too Early The server is unwilling to risk processing a request that might be replayed. | |
426 | Upgrade Required The server refuses to perform the request using the current protocol. | |
428 | Precondition Required The origin server requires the request to be conditional, e.g. to prevent lost updates. | |
429 | Too Many Requests The client has sent too many requests in a given amount of time. Often paired with a Retry-After header telling the client how long to wait. | |
431 | Request Header Fields Too Large The server is unwilling to process the request because its header fields are too large. | |
451 | Unavailable For Legal Reasons The resource is unavailable due to a legal demand, such as government censorship. |
| Code | Name | Copy |
|---|---|---|
500 | Internal Server Error The server encountered an unexpected condition that prevented it from fulfilling the request. | |
501 | Not Implemented The server does not support the functionality required to fulfill the request. | |
502 | Bad Gateway The server, acting as a gateway, received an invalid response from an upstream server. The gateway itself is fine, but the upstream response it received was invalid — different from 503, where the server (or upstream) is simply unavailable. | |
503 | Service Unavailable The server is temporarily unable to handle the request, often due to overload or maintenance. Usually temporary; often paired with a Retry-After header. Different from 502, which reports a bad upstream response. | |
504 | Gateway Timeout The server, acting as a gateway, did not receive a timely response from an upstream server. The gateway timed out waiting on an upstream server, unlike 502 (invalid response) or 503 (server unavailable). | |
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: the chosen variant resource is itself negotiable. | |
507 | Insufficient Storage The server is unable to store the representation needed to complete the request. | |
508 | Loop Detected The server detected an infinite loop while processing the request. | |
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, e.g. via a captive portal. |