HTTP Status Codes

Every status code a server can answer with — what it means, why you're seeing it, and how to fix it. Click any code for causes, fixes and related codes, or test responses interactively with the HTTP Status Code Reference tool.

1xxInformational

Interim responses — the request was received and processing continues.

2xxSuccess

The request was received, understood and accepted.

3xxRedirection

Further action is needed — usually following a Location header.

4xxClient Error

The request is at fault — malformed, unauthorized, or targeting something that isn't there.

400 Bad Request

The server can't or won't process the request because the client sent something malformed — invalid JSON, bad query parameters, broken headers or framing.

401 Unauthorized

Authentication is required and was missing or invalid. Despite the name, it means "unauthenticated" — the response includes a WWW-Authenticate challenge.

402 Payment Required

Reserved originally for digital payments; today used by some APIs to signal exceeded quotas, expired subscriptions, or billing problems.

403 Forbidden

The server understood the request and refuses to authorize it. Unlike 401, re-authenticating won't help — the identity is known but lacks permission.

404 Not Found

The server can't find anything at the requested URL. It says nothing about whether the resource ever existed or will exist.

405 Method Not Allowed

The URL exists but doesn't support the HTTP method used — e.g. POSTing to a GET-only endpoint. The Allow header lists what's permitted.

406 Not Acceptable

The server can't produce a response matching the client's Accept headers (content type, language, encoding).

407 Proxy Authentication Required

Like 401, but the authentication challenge comes from a proxy between you and the target (Proxy-Authenticate header).

408 Request Timeout

The server gave up waiting for the client to finish sending the request. Servers often close the connection afterwards.

409 Conflict

The request conflicts with the resource's current state — classic cases are duplicate creation and stale optimistic-locking versions.

410 Gone

The resource existed but was intentionally and permanently removed. Stronger than 404 — clients and crawlers should stop asking.

411 Length Required

The server insists on a Content-Length header and the request didn't include one (e.g. chunked uploads it refuses to accept).

412 Precondition Failed

A conditional header (If-Match, If-Unmodified-Since…) evaluated to false — the resource changed since the client last saw it.

413 Content Too Large

The request body exceeds what the server is willing to process. Formerly called 'Payload Too Large'.

414 URI Too Long

The request URL exceeds the server's limit — usually a symptom of stuffing data into the query string.

415 Unsupported Media Type

The server refuses the request because the body's media type (Content-Type/Content-Encoding) isn't supported by the endpoint.

416 Range Not Satisfiable

The Range header asks for bytes outside the resource's actual size — e.g. resuming a download past the end of the file.

417 Expectation Failed

The server can't meet the requirements of the Expect header (almost always Expect: 100-continue).

418 I'm a teapot

An April Fools' joke from the Hyper Text Coffee Pot Control Protocol: the server is a teapot and refuses to brew coffee. Some real services use it as a playful block response.

421 Misdirected Request

The request reached a server that isn't configured to answer for that scheme/authority — common with HTTP/2 connection reuse across hostnames.

422 Unprocessable Content

The request is syntactically valid but semantically wrong — well-formed JSON that fails business validation (missing fields, invalid values).

423 Locked

The WebDAV resource is locked by another client and the request would violate the lock.

424 Failed Dependency

The request failed because an earlier request it depended on (in the same WebDAV operation) failed.

425 Too Early

The server refuses to process a request sent in TLS early data (0-RTT) because it might be replayed.

426 Upgrade Required

The server refuses to serve the request over the current protocol; the Upgrade header says which protocol to switch to.

428 Precondition Required

The server requires the request to be conditional — send If-Match/If-Unmodified-Since to avoid lost-update races.

429 Too Many Requests

The client exceeded the rate limit. The Retry-After header (when present) says how long to back off.

431 Request Header Fields Too Large

Headers (one or all together) are too large for the server — very often a bloated Cookie header.

451 Unavailable For Legal Reasons

Access is denied for legal reasons — court orders, government censorship, or geo-specific legal restrictions (the number nods to Fahrenheit 451).

5xxServer Error

The server failed to fulfill a valid request.

500 Internal Server Error

A generic 'something broke on the server' — an unhandled exception or misconfiguration with no more specific status to report.

501 Not Implemented

The server doesn't support the functionality required — typically an HTTP method it doesn't implement at all (contrast 405: method known, not allowed here).

502 Bad Gateway

A gateway/reverse proxy got an invalid response from the upstream server — the proxy is fine, the thing behind it isn't answering properly.

503 Service Unavailable

The server is temporarily unable to handle the request — overloaded, in maintenance, or deliberately shedding load. Retry-After may say when to come back.

504 Gateway Timeout

A gateway/proxy didn't get a response from the upstream in time. The upstream may still be processing — the proxy just gave up waiting.

505 HTTP Version Not Supported

The server doesn't support the HTTP protocol version used in the request.

506 Variant Also Negotiates

A server misconfiguration in transparent content negotiation: the chosen variant is itself configured to negotiate, creating a loop.

507 Insufficient Storage

The server can't store what the request requires — disk or quota exhausted (WebDAV origin, seen in storage-backed APIs).

508 Loop Detected

The server aborted an operation because it found itself in an infinite loop while processing (WebDAV bindings referencing each other).

510 Not Extended

The request must be extended (HTTP Extension Framework) for the server to fulfill it. Essentially unused on the modern web.

511 Network Authentication Required

The network (not the website) requires authentication first — the response captive portals send before you log in to hotel/airport Wi-Fi.