HTTP Status Codes

The foundation of data communication on the web. HTTP status codes indicate the result of a client's request to a server.

View Specification →

100-199 1xx Informational

The request was received, continuing process. These interim responses indicate that the server has received the request and is continuing to process it.

200-299 2xx Success

The request was successfully received, understood, and accepted.

300-399 3xx Redirection

Further action needs to be taken to complete the request. The client must take additional action to complete the request.

400-499 4xx Client Error

The request contains bad syntax or cannot be fulfilled. The client seems to have made an error.

400
Bad Request

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

401
Unauthorized

The request requires user authentication. The response includes a WWW-Authenticate header indicating the authentication scheme.

402
Payment Required

Reserved for future use. Originally intended for digital payment systems, some APIs use it to indicate a billing or subscription …

403
Forbidden

The server understood the request but refuses to authorize it. Unlike 401, authentication will not help — the user simply …

404
Not Found

The server cannot find the requested resource. The URL may be wrong, the resource may have been deleted, or it …

405
Method Not Allowed

The HTTP method is not allowed for the requested 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

The client must first authenticate itself with the proxy.

408
Request Timeout

The server timed out waiting for the request. The client did not produce a request within the time the server …

409
Conflict

The request conflicts with the current state of the server. Often due to concurrent modification or business rule violations.

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 refuses to accept the request without a Content-Length header.

412
Precondition Failed

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

413
Content Too Large

The request payload exceeds the server's size limit.

414
URI Too Long

The URI provided was too long for the server to process.

415
Unsupported Media Type

The server refuses to accept the request because the Content-Type is not supported.

416
Range Not Satisfiable

The server cannot serve the requested byte range. The Range header value is outside the resource's size.

417
Expectation Failed

The server cannot meet the requirements of the Expect header.

418
I'm a Teapot

Any attempt to brew coffee with a teapot should result in this error. An April Fools' joke from 1998 that …

421
Misdirected Request

The request was directed at a server that is unable to produce a response for the combination of scheme and …

422
Unprocessable Content

The server understands the content type and syntax, but was unable to process the contained instructions. Common in API validation …

423
Locked

The resource is locked and cannot be modified (WebDAV).

424
Failed Dependency

The request failed because it depended on another request that failed (WebDAV).

425
Too Early

The server is unwilling to risk processing a request that might be replayed. Used with TLS 1.3 early data (0-RTT).

426
Upgrade Required

The server refuses to perform the request using the current protocol but might after the client upgrades to a different …

428
Precondition Required

The server requires the request to be conditional (e.g., include If-Match header) to prevent lost updates.

429
Too Many Requests

The user has sent too many requests in a given time (rate limiting). The response should include a Retry-After header.

431
Request Header Fields Too Large

The server refuses to process the request because an individual header field or all headers collectively are too large.

451
Unavailable For Legal Reasons

The server is denying access to the resource as a consequence of a legal demand. Named after Ray Bradbury's Fahrenheit …

499
Client Closed Request

A non-standard status code used by Nginx when the client closes the connection before the server responds.

Vendor

500-599 5xx Server Error

The server failed to fulfill an apparently valid request.

500
Internal Server Error

The server encountered an unexpected condition that prevented it from fulfilling the request. A generic catch-all for server-side errors.

501
Not Implemented

The server does not support the functionality required to fulfill the request. The server either does not recognize the request …

502
Bad Gateway

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

503
Service Unavailable

The server is temporarily unable to handle the request due to maintenance or overload. Should include a Retry-After header.

504
Gateway Timeout

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 version used in the request.

506
Variant Also Negotiates

The server has an internal configuration error: the chosen variant resource is configured to engage in content negotiation itself.

507
Insufficient Storage

The server is unable to 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. Used by captive portals (hotel/airport WiFi).

520
Web Server Returned an Unknown Error

Cloudflare-specific. The origin server returned an unexpected response that Cloudflare could not process.

Vendor
521
Web Server Is Down

Cloudflare-specific. The origin server refused the connection.

Vendor
522
Connection Timed Out

Cloudflare-specific. TCP connection to the origin server timed out.

Vendor
523
Origin Is Unreachable

Cloudflare-specific. Cloudflare could not reach the origin server (DNS resolution failed or no route).

Vendor
524
A Timeout Occurred

Cloudflare-specific. A TCP connection was established but the origin didn't respond with an HTTP response in time.

Vendor
525
SSL Handshake Failed

Cloudflare-specific. SSL/TLS handshake with the origin server failed.

Vendor
526
Invalid SSL Certificate

Cloudflare-specific. The origin's SSL certificate could not be validated.

Vendor
530
Site Frozen

Cloudflare-specific. Used by Pantheon hosting to indicate a frozen site.

Vendor