Skip to content
Developer Tools

HTTP Status Codes

Every HTTP status code, explained in plain English. Search by code or keyword.

1xx Informational

100Continue

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

101Switching Protocols

The requester has asked to switch protocols and the server is complying.

102Processing

The server has received and is processing the request, but no response is available yet.

103Early Hints

Used to return some response headers before the final HTTP message.

Primarily used with Link headers for preloading.

2xx Success

200OK

The request succeeded. The result depends on the HTTP method used.

201Created

The request succeeded and a new resource was created. Common response to POST.

202Accepted

The request has been received but not yet acted upon. Used for async operations.

203Non-Authoritative Information

The response is a modified version of the origin server's response.

204No Content

The request succeeded but there is no content to send in the response body.

205Reset Content

The server tells the client to reset the document which sent this request.

206Partial Content

Delivered when a Range header is sent from the client — used for resumable downloads.

207Multi-Status

Conveys information about multiple resources, in WebDAV scenarios.

208Already Reported

Used inside a DAV: propstat element to avoid enumerating members of multiple bindings.

226IM Used

The server has fulfilled a GET request, using one or more instance-manipulations.

3xx Redirection

300Multiple Choices

The request has multiple possible responses. The client should pick one.

301Moved Permanently

The URL of the requested resource has changed permanently.

Use for SEO-friendly redirects. Search engines update their index.

302Found

The URL has changed temporarily. The original URL should continue to be used.

303See Other

The server directs the client to get the resource at another URL using GET.

304Not Modified

The response has not been modified. The client can use its cached version.

Used with conditional requests (ETag, Last-Modified).

307Temporary Redirect

The request should be repeated at another URL, preserving the HTTP method.

Unlike 302, the method must not change.

308Permanent Redirect

The resource is now at another URL permanently, and the method must not change.

Like 301 but method is preserved.

4xx Client Error

400Bad Request

The server cannot process the request due to a client error — malformed syntax, invalid request, etc.

401Unauthorized

Authentication is required and has failed or not been provided.

Despite the name, this means unauthenticated. See 403 for unauthorized.

402Payment Required

Reserved for future use. Sometimes used by APIs to indicate quota exceeded.

403Forbidden

The client does not have access rights to the content — it is authenticated but not authorized.

404Not Found

The server cannot find the requested resource. The URL may be wrong or the resource deleted.

405Method Not Allowed

The HTTP method used is not supported for this resource.

406Not Acceptable

The server cannot produce a response matching the list of acceptable values in the request headers.

407Proxy Authentication Required

Authentication must be done by a proxy.

408Request Timeout

The server timed out waiting for the request to complete.

409Conflict

The request conflicts with the current state of the resource.

410Gone

The resource has been permanently deleted and will not be available again.

Unlike 404, this is intended to indicate permanent removal.

411Length Required

The server rejected the request because the Content-Length header is not defined.

412Precondition Failed

The server does not meet one of the conditions in the request headers.

413Content Too Large

The request entity is larger than limits defined by the server.

414URI Too Long

The URI requested by the client is longer than the server is willing to interpret.

415Unsupported Media Type

The media format is not supported by the server for this endpoint.

416Range Not Satisfiable

The range specified in the Range request header cannot be fulfilled.

417Expectation Failed

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

418I'm a teapot

The server refuses to brew coffee because it is, permanently, a teapot.

An April Fools' joke in RFC 2324. Kept in the spec.

421Misdirected Request

The request was directed at a server that is not able to produce a response for this combination of scheme and authority.

422Unprocessable Content

The request was well-formed but was unable to be followed due to semantic errors.

Common in REST APIs for validation failures.

423Locked

The resource being accessed is locked (WebDAV).

424Failed Dependency

The request failed due to failure of a previous request (WebDAV).

425Too Early

The server is unwilling to risk processing a request that might be replayed.

426Upgrade Required

The client should switch to a different protocol.

428Precondition Required

The origin server requires the request to be conditional.

429Too Many Requests

The user has sent too many requests in a given amount of time (rate limiting).

Often includes Retry-After header.

431Request Header Fields Too Large

The server is unwilling to process the request because its header fields are too large.

451Unavailable For Legal Reasons

The resource cannot be provided for legal reasons, such as a page censored by a government.

Named after the novel Fahrenheit 451.

5xx Server Error

500Internal Server Error

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

501Not Implemented

The request method is not supported by the server and cannot be handled.

502Bad Gateway

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

Common when a proxy or load balancer can't reach the origin.

503Service Unavailable

The server is not ready to handle the request — overloaded or down for maintenance.

Temporary. Often includes Retry-After header.

504Gateway Timeout

The server, acting as a gateway, did not get a response from the upstream server in time.

505HTTP Version Not Supported

The HTTP version used in the request is not supported by the server.

506Variant Also Negotiates

The server has an internal configuration error during content negotiation.

507Insufficient Storage

The server is unable to store the representation needed to complete the request (WebDAV).

508Loop Detected

The server detected an infinite loop while processing the request (WebDAV).

510Not Extended

Further extensions to the request are required for the server to fulfill it.

511Network Authentication Required

The client needs to authenticate to gain network access — e.g. a captive portal.