HTTP Status Code Reference

A searchable reference of all HTTP status codes with descriptions and common use cases.

1xx — Informational

100
Continue

The server has received the request headers and the client should proceed to send the request body.

101
Switching Protocols

The server is switching protocols as requested by the client via the Upgrade header.

102
Processing

The server has received and is processing the request, but no response is available yet. Prevents the client from timing out.

103
Early Hints

Used to return some response headers before the final HTTP message, allowing the browser to preload resources.

2xx — Success

200
OKCacheable

The request has succeeded. The meaning of the success depends on the HTTP method used.

201
Created

The request has been fulfilled and a new resource has been created. Typically returned after POST or PUT requests.

202
Accepted

The request has been accepted for processing, but the processing has not been completed. Used for asynchronous operations.

203
Non-Authoritative InformationCacheable

The returned metadata is not exactly the same as available from the origin server. The response is from a local or third-party copy.

204
No ContentCacheable

The server has successfully fulfilled the request and there is no additional content to send in the response body.

205
Reset Content

The server has fulfilled the request and the client should reset the document view that caused the request to be sent.

206
Partial ContentCacheable

The server is delivering only part of the resource due to a Range header sent by the client. Used for resumable downloads.

207
Multi-Status

Conveys information about multiple resources where multiple status codes might be appropriate. Used in WebDAV.

208
Already Reported

Used inside a DAV: propstat response to avoid enumerating the internal members of multiple bindings to the same collection repeatedly.

226
IM Used

The server has fulfilled a GET request and the response is a representation of the result of one or more instance-manipulations applied to the current instance.

3xx — Redirection

300
Multiple ChoicesCacheable

The request has more than one possible response. The user or user agent should choose one of them.

301
Moved PermanentlyCacheable

The resource has been permanently moved to a new URL. All future requests should use the new URL.

302
Found

The resource resides temporarily at a different URL. The client should continue to use the original URL for future requests.

303
See Other

The response to the request can be found at another URL using a GET method. Often used after POST to redirect to a result page.

304
Not Modified

The resource has not been modified since the last request. The client can use its cached version.

305
Use Proxy

The requested resource must be accessed through the proxy given by the Location header. Deprecated due to security concerns.

307
Temporary Redirect

The resource resides temporarily at a different URL. Unlike 302, the request method must not change when reissuing the request.

308
Permanent RedirectCacheable

The resource has been permanently moved. Unlike 301, the request method must not change when reissuing the request.

4xx — Client Error

400
Bad Request

The server cannot process the request due to malformed syntax, invalid framing, or deceptive routing.

401
Unauthorized

The request requires authentication. The client must provide valid credentials to access the resource.

402
Payment Required

Reserved for future use. Originally intended for digital payment systems, sometimes used for paywalled content.

403
Forbidden

The server understood the request but refuses to authorise it. Authentication will not help; the client lacks permission.

404
Not FoundCacheable

The server cannot find the requested resource. The URL may be wrong or the resource may have been removed.

405
Method Not AllowedCacheable

The HTTP method used is not supported for the requested resource. The response must include 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

The client must first authenticate itself with the proxy before the request can be fulfilled.

408
Request TimeoutRetryable

The server timed out waiting for the request. The client may repeat the request without modifications.

409
Conflict

The request conflicts with the current state of the target resource. Often used for concurrent edit conflicts.

410
GoneCacheable

The resource is no longer available and will not be available again. Unlike 404, this is a permanent condition.

411
Length Required

The server requires a Content-Length header in the request, which was not provided.

412
Precondition Failed

One or more conditions in the request headers (e.g. If-Match, If-Unmodified-Since) evaluated to false.

413
Payload Too Large

The request body is larger than the server is willing or able to process.

414
URI Too LongCacheable

The URI provided was too long for the server to process. Often caused by excessive query string data.

415
Unsupported Media Type

The server does not support the media type of the request body (e.g. sending XML when only JSON is accepted).

416
Range Not Satisfiable

The range specified in the Range header cannot be fulfilled. The range may be outside the size of the resource.

417
Expectation Failed

The server cannot meet the requirements of the Expect request header.

418
I'm a Teapot

Defined in RFC 2324 as an April Fools' joke. The server refuses to brew coffee because it is, permanently, a teapot.

421
Misdirected Request

The request was directed at a server that is not able to produce a response. Sent by servers that are not configured for the requested URI scheme and authority.

422
Unprocessable Content

The server understands the content type and syntax of the request, but the contained instructions are semantically invalid.

423
Locked

The resource that is being accessed is locked. Used in WebDAV.

424
Failed Dependency

The request failed because it depended on another request that also failed. Used in WebDAV.

425
Too Early

The server is unwilling to process a request that might be replayed, to avoid potential replay attacks.

426
Upgrade Required

The server refuses to perform the request using the current protocol but may do so after the client upgrades to a different protocol.

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 RequestsRetryable

The client has sent too many requests in a given amount of time. Used for rate limiting.

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 government censorship or court-ordered takedowns.

5xx — Server Error

500
Internal Server ErrorRetryable

The server encountered an unexpected condition that prevented it from fulfilling the request.

501
Not ImplementedCacheable

The server does not support the functionality required to fulfil the request. Typically means the HTTP method is not recognised.

502
Bad GatewayRetryable

The server, acting as a gateway or proxy, received an invalid response from the upstream server.

503
Service UnavailableRetryable

The server is currently unable to handle the request due to temporary overloading or scheduled maintenance.

504
Gateway TimeoutRetryable

The server, acting as a gateway or proxy, did not receive a timely response from the upstream server.

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: transparent content negotiation results in a circular reference.

507
Insufficient Storage

The server is unable to store the representation needed to complete the request. Used in WebDAV.

508
Loop Detected

The server detected an infinite loop while processing the request. Used in WebDAV.

510
Not Extended

The server requires further extensions to the request in order to fulfil it.

511
Network Authentication Required

The client needs to authenticate to gain network access, typically used by captive portals.