HTTP Status Code Reference

Search every HTTP status code with a plain-English explanation

62 codes
100

Continue

The initial part of a request has been received and the client should continue sending the rest.

101

Switching Protocols

The server agrees to switch protocols as requested by the client, e.g. upgrading an HTTP connection to WebSocket.

102

Processing

WebDAV: the server has accepted a request but processing will take a while, sent to prevent the client from timing out.

103

Early Hints

Lets the client start preloading resources (e.g. via Link headers) while the server is still preparing 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, typically in response to a POST or PUT.

202

Accepted

The request was accepted for processing, but that processing isn't complete yet and may not succeed.

203

Non-Authoritative Information

The request succeeded, but the returned metadata came from a transforming proxy rather than the origin server.

204

No Content

The request succeeded but there is no content to send — commonly returned after a successful DELETE or an action-only POST.

205

Reset Content

The request succeeded and the client should reset the document view that sent the request, e.g. clear a form.

206

Partial Content

The server is delivering only part of the resource in response to a Range header — used for resumable downloads and media streaming.

207

Multi-Status

WebDAV: the response body is an XML document describing the status of multiple independent sub-operations.

208

Already Reported

WebDAV: avoids repeatedly enumerating the members of a binding that were already reported in a previous 207 response.

226

IM Used

The server fulfilled a GET request and the response is a representation of the result of one or more instance manipulations.

300

Multiple Choices

The request has more than one possible response and the client (or user) should choose one — rarely used in practice.

301

Moved Permanently

The resource has permanently moved to a new URL given in the Location header; clients should update their bookmarks/links.

302

Found

The resource temporarily resides at a different URL. Historically often misused for what 303/307 now express more precisely.

303

See Other

The response to the request can be found at another URL using a GET request — the standard "redirect after POST" status.

304

Not Modified

The resource hasn't changed since the value in the request's conditional headers (e.g. If-None-Match) — the client should use its cached copy.

305

Use Proxy

Deprecated: the requested resource must be accessed through the proxy given in the Location header. Disabled in most modern clients for security reasons.

307

Temporary Redirect

Like 302, but guarantees the request method and body are repeated on the new URL rather than potentially changing to GET.

308

Permanent Redirect

Like 301, but guarantees the request method and body are repeated on the new URL rather than potentially changing to GET.

400

Bad Request

The server can't process the request due to a client error — malformed syntax, invalid request framing, or bad input.

401

Unauthorized

The request requires authentication, and either none was supplied or what was supplied is invalid. Despite the name, this is about authentication, not authorization.

402

Payment Required

Reserved for future use — historically intended for digital payment systems. Occasionally repurposed by APIs to signal a billing/quota issue.

403

Forbidden

The server understood the request but refuses to authorize it — the client's identity is known but it lacks permission for this resource.

404

Not Found

The server can't find the requested resource. Often also returned deliberately when a resource exists but the server doesn't want to reveal that.

405

Method Not Allowed

The request method (e.g. DELETE) is known to the server but isn't supported for this particular resource.

406

Not Acceptable

The server can't produce a response matching the Accept headers sent by the client, and no default representation is available.

407

Proxy Authentication Required

Like 401, but authentication needs to happen against a proxy sitting between the client and the server.

408

Request Timeout

The server timed out waiting for the request — the client took too long to send it.

409

Conflict

The request conflicts with the current state of the resource — e.g. an edit based on stale data, or a duplicate resource creation.

410

Gone

The resource used to exist but has been permanently removed, with no forwarding address — a more deliberate signal than a plain 404.

411

Length Required

The server refuses to accept the request because a required Content-Length header is missing.

412

Precondition Failed

A condition set in a conditional request header (e.g. If-Match) evaluated to false — commonly used for optimistic concurrency control.

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 requested URL is longer than the server is willing to interpret — often caused by putting too much data in a GET query string.

415

Unsupported Media Type

The request body's media type (Content-Type) isn't one the server/endpoint supports.

416

Range Not Satisfiable

The Range header requested a byte range that the target resource doesn't have — usually because it's outside the size of the resource.

417

Expectation Failed

The expectation given in the request's Expect header couldn't be met by the server.

418

I'm a Teapot

An April Fools' joke from RFC 2324 (the Hyper Text Coffee Pot Control Protocol) — a teapot asked to brew coffee refuses. Still implemented by some servers for fun.

421

Misdirected Request

The request was sent to a server that isn't able to produce a response for the combination of scheme and authority in the URI.

422

Unprocessable Content

The request is well-formed but semantically invalid — the classic status for "your JSON parsed fine but failed validation."

423

Locked

WebDAV: the resource being accessed is locked.

424

Failed Dependency

WebDAV: the request failed because a previous request it depended on in the same batch also failed.

425

Too Early

The server is unwilling to process a request that might be replayed, sent when the request was made using TLS early data (0-RTT).

426

Upgrade Required

The server refuses to service the request using the current protocol, but might if the client upgrades (see the Upgrade header).

428

Precondition Required

The server requires the request to be conditional (e.g. carry an If-Match header) to avoid the "lost update" problem.

429

Too Many Requests

The client has sent too many requests in a given time window (rate limiting) — often paired with a Retry-After header.

431

Request Header Fields Too Large

The server won't process the request because its header fields are too large, individually or in total.

451

Unavailable For Legal Reasons

The resource is unavailable due to a legal demand, e.g. government-mandated content blocking (named after Ray Bradbury's Fahrenheit 451).

500

Internal Server Error

A generic catch-all: the server encountered an unexpected condition that prevented it from fulfilling the request.

501

Not Implemented

The server doesn't support the functionality required to fulfill the request — often used when a method isn't recognized at all.

502

Bad Gateway

A server acting as a gateway or proxy received an invalid response from an upstream server it was trying to reach.

503

Service Unavailable

The server isn't ready to handle the request — commonly due to maintenance or overload. Often paired with a Retry-After header.

504

Gateway Timeout

A server acting as a gateway or proxy didn't get a response from the upstream server in time.

505

HTTP Version Not Supported

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

506

Variant Also Negotiates

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

507

Insufficient Storage

WebDAV: the server can't store the representation needed to complete the request due to a lack of storage space.

508

Loop Detected

WebDAV: the server detected an infinite loop while processing a request (e.g. a circular reference between bindings).

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 — typically returned by a captive portal rather than the destination server.

A searchable reference of every standard HTTP status code, grouped by class, with a plain-English explanation of when each one is actually returned — search by number, name, or keyword to jump straight to the one you're debugging.

Is this every HTTP status code?
It covers every standard status code from the IANA HTTP Status Code Registry, including the WebDAV-specific ones (207, 423, 507, etc.) and the well-known unofficial 418 "I'm a Teapot" — 62 codes in total, grouped into the five standard classes (1xx–5xx).
What do the number ranges mean?
1xx is informational (the request is still being processed), 2xx is success, 3xx is redirection, 4xx is a client error (something wrong with the request), and 5xx is a server error (the server failed to fulfill a valid request).
Does searching or browsing send anything to a server?
No — this is a static list filtered entirely client-side; nothing about what you search for is sent anywhere.