HTTP Status Codes

Searchable reference of HTTP status codes with explanations, from 1xx to 5xx.

100

Continue

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

101

Switching Protocols

The server is switching to the protocol requested in the Upgrade header (e.g. WebSocket).

102

Processing

WebDAV: the server has accepted the request but has not finished processing it yet.

103

Early Hints

Lets the browser start preloading resources while the server prepares the final response.

200

OK

The request succeeded. The meaning depends on the method: GET returns the resource, POST returns the result of the action.

201

Created

The request succeeded and a new resource was created. The Location header usually points to it.

202

Accepted

The request was accepted for processing, but processing has not completed (asynchronous work).

203

Non-Authoritative Information

The response was modified by a transforming proxy and may differ from the origin server's.

204

No Content

The request succeeded and there is no body to return — typical for DELETE and some PUT/PATCH calls.

205

Reset Content

The request succeeded; the client should reset the document view (e.g. clear a form).

206

Partial Content

Only part of the resource is returned because the client sent a Range header.

207

Multi-Status

WebDAV: the body contains multiple independent status codes for sub-operations.

208

Already Reported

WebDAV: members of a binding were already enumerated earlier in the response.

226

IM Used

The server fulfilled a GET using one or more instance-manipulations applied to the current instance.

300

Multiple Choices

The request has more than one possible response; the client should pick one.

301

Moved Permanently

The resource has a new permanent URL. Search engines transfer ranking; clients may cache this redirect.

302

Found

The resource is temporarily at a different URL. Clients keep using the original URL for future requests.

303

See Other

Redirects to another URL that should be fetched with GET (used after POST — Post/Redirect/Get).

304

Not Modified

The cached copy is still valid; no body is sent. Used with ETag / If-None-Match and If-Modified-Since.

305

Use Proxy

Deprecated. The resource must be accessed through the proxy given in Location.

307

Temporary Redirect

Temporary redirect that preserves the request method and body (unlike 302).

308

Permanent Redirect

Permanent redirect that preserves the request method and body (unlike 301).

400

Bad Request

The server cannot process the request because of malformed syntax, invalid framing, or bad parameters.

401

Unauthorized

Authentication is required or has failed. Really means "unauthenticated"; send credentials and retry.

402

Payment Required

Reserved for future use; some APIs use it to signal a billing or quota problem.

403

Forbidden

The server understood the request but refuses to authorize it. Re-authenticating will not help.

404

Not Found

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

405

Method Not Allowed

The method is not supported for this resource. The Allow header lists valid methods.

406

Not Acceptable

The server cannot produce a response matching the Accept headers sent by the client.

407

Proxy Authentication Required

Like 401, but the client must authenticate with the proxy first.

408

Request Timeout

The server timed out waiting for the client to finish sending the request.

409

Conflict

The request conflicts with the current state of the resource (e.g. edit conflict, duplicate key).

410

Gone

The resource used to exist but has been permanently removed. Stronger signal than 404.

411

Length Required

The server requires a Content-Length header and the request did not include one.

412

Precondition Failed

A condition in the request headers (If-Match, If-Unmodified-Since) evaluated to false.

413

Content Too Large

The request body is larger than the server is willing or able to process (formerly "Payload Too Large").

414

URI Too Long

The request URL is longer than the server will interpret.

415

Unsupported Media Type

The Content-Type of the request body is not supported by the endpoint.

416

Range Not Satisfiable

The Range header asks for a portion of the file that lies outside its size.

417

Expectation Failed

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

418

I'm a Teapot

Defined by the 1998 April Fools' RFC 2324 (HTCPCP). The server is a teapot and refuses to brew coffee.

421

Misdirected Request

The request was directed at a server that is not able to produce a response for this host.

422

Unprocessable Content

The body is well-formed but semantically invalid — the usual code for validation errors in REST APIs.

423

Locked

WebDAV: the source or destination resource is locked.

424

Failed Dependency

WebDAV: 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 (TLS early data).

426

Upgrade Required

The client must switch to a different protocol, named in the Upgrade header.

428

Precondition Required

The server requires the request to be conditional to prevent lost-update problems.

429

Too Many Requests

The client is rate limited. A Retry-After header may say when to try again.

431

Request Header Fields Too Large

A single header or all headers together are too large (often an oversized cookie).

444

No Response (nginx)non-standard

nginx closes the connection without sending a response — used to drop malicious requests.

451

Unavailable For Legal Reasons

Access is denied for legal reasons, such as a court order or government censorship.

499

Client Closed Request (nginx)non-standard

nginx: the client closed the connection before the server finished responding.

500

Internal Server Error

The server hit an unexpected condition. Check server logs — usually an unhandled exception.

501

Not Implemented

The server does not support the functionality required to fulfil the request.

502

Bad Gateway

A gateway or proxy received an invalid response from the upstream server.

503

Service Unavailable

The server is overloaded or down for maintenance. May include a Retry-After header.

504

Gateway Timeout

A gateway or proxy did not get a timely response from the upstream server.

505

HTTP Version Not Supported

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

506

Variant Also Negotiates

Transparent content negotiation resulted in a circular reference.

507

Insufficient Storage

WebDAV: the server cannot store the representation needed to complete the request.

508

Loop Detected

WebDAV: the server detected an infinite loop while processing the request.

510

Not Extended

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

511

Network Authentication Required

The client must authenticate to gain network access (captive portals).

520

Web Server Returned an Unknown Error (Cloudflare)non-standard

Cloudflare: the origin returned an empty, unknown, or unexpected response.

521

Web Server Is Down (Cloudflare)non-standard

Cloudflare: the origin refused the connection.

522

Connection Timed Out (Cloudflare)non-standard

Cloudflare: the TCP connection to the origin timed out.

523

Origin Is Unreachable (Cloudflare)non-standard

Cloudflare: it could not reach the origin server (DNS or routing problem).

524

A Timeout Occurred (Cloudflare)non-standard

Cloudflare: the connection was made but the origin did not reply in time.

525

SSL Handshake Failed (Cloudflare)non-standard

Cloudflare: the TLS handshake with the origin failed.

526

Invalid SSL Certificate (Cloudflare)non-standard

Cloudflare: the origin's TLS certificate is invalid or expired.