Debug an API error
Look up the meaning and typical context of codes such as 401, 403, 409 or 422 quickly.
Guide
The HTTP status page is a built-in reference table you can search by code, English name, meaning or description, and filter by 1xx informational, 2xx success, 3xx redirection, 4xx client error and 5xx server error. What it shows is static knowledge: it never sends an HTTP request to a domain or an endpoint you type.
Updated 2026-09-102 min read
404, “timeout” or a status name, or leave the box empty to browse everything.| Input | Output | Notes |
|---|---|---|
404 |
The 404 Not Found entry | Exact code search |
| “redirect” | Matching 3xx descriptions | Text search |
| Selecting 5xx | Server error classes only | Local filtering |
HTTP_STATUS list built into the repository, and its coverage moves with the application version rather than syncing with the IANA registry online.fetch, so it cannot tell you what status code a website currently returns.Look up the meaning and typical context of codes such as 401, 403, 409 or 422 quickly.
Browse grouped by 2xx, 3xx, 4xx and 5xx to build up the basic protocol concepts.
No. This page has no network capability at all; it only searches a local status code table.
No, it is built-in data released with the application.
The search keyword only filters a static table locally; no network request is sent.
Updated 2026-09-10
Quick reference for every 1xx–5xx status code with meaning and typical use
The server received the request headers and the client should keep sending the body. Common for large uploads gated by Expect: 100-continue.
The server agrees to switch protocols, most often for a WebSocket upgrade (Upgrade: websocket).
WebDAV extension: the request was received and is being processed, but no response is ready yet. Keeps clients from timing out.
Returns some headers before the final response, often with a Link header so the browser can preload CSS/JS early.
The request succeeded. GET returns the resource body, POST returns the processing result. The most common status code.
The resource was created, typically returned by POST/PUT with a Location header pointing at the new resource.
The request was accepted but not processed yet — used for asynchronous work such as queues and bulk imports.
The returned metadata comes from a local or third-party copy (for example a rewriting proxy) rather than the origin server.
Succeeded with no response body. Common after a successful DELETE or a form save that should not navigate away.
Succeeded, and the client should reset its view (for example clear a form). Rarely used in practice.
A range request succeeded and part of the resource is returned. Video seeking and resumable downloads rely on it (Range header).
WebDAV extension: one request carries several operations and the XML body reports each status separately.
WebDAV extension: the bound members were already enumerated in an earlier response, so they are not listed again.
The server fulfilled a GET and the response is the result of applying instance manipulations (delta encoding).
The resource has several representations (for example language variants) and the client or user must pick one.
The resource moved permanently to a new URL and search engines will update their index. Used for domain changes and HTTP to HTTPS.
The resource is temporarily at another URL. Historically clients may turn POST into GET; use 307 when the method must be preserved.
The client should fetch the result from another URL with GET — the classic post/redirect/get form flow.
The resource has not changed since the last request, so the cached copy can be reused. Works with ETag / Last-Modified.
(Deprecated) The resource must be reached through the given proxy. Modern browsers no longer support it for security reasons.
Like 302, but the request method and body must not change during the redirect (POST stays POST).
Like 301, but the request method and body are preserved — suited to permanently moving an API.
The server cannot understand the request: missing parameters, malformed JSON, invalid syntax. The client should fix the request.
The credentials are missing or invalid (for example an expired token). Semantically "not signed in" — send the user to authenticate.
A reserved code that some APIs use to signal an exhausted quota or a subscription that is required.
The identity is known but lacks permission (for example a regular user calling an admin endpoint). Unlike 401, this is about authorisation.
The requested resource does not exist: wrong URL or deleted resource. The best-known status code.
The resource does not support this HTTP method (for example POST on a read-only endpoint). The response should list allowed methods in Allow.
The server cannot produce a representation matching the Accept header (the client accepts only XML while the server has only JSON).
Like 401, but authentication against a proxy server is required first.
The server timed out waiting for the request to be sent (slow network or an aborted client). The client may retry later.
The request conflicts with the current state of the resource: duplicate creation, concurrent edits and so on.
The resource existed but was permanently removed and will not come back. More explicit than 404 and helps search engines drop it.
The server requires the request to carry a Content-Length header.
A conditional header such as If-Match was not satisfied — often optimistic locking that blocks overwriting a resource someone else changed.
The request body exceeds the server limit, typically an oversized upload (for example the nginx client_max_body_size setting).
The requested URL is longer than the server accepts, usually because of too many GET parameters — switch to POST.
The request body format is not supported, for example a form body sent to an endpoint that expects application/json.
The range in the Range header exceeds the resource size — common when a resumable download disagrees with the file on the server.
The server cannot meet the Expect header (for example 100-continue is not supported).
A 1998 April Fools joke (HTCPCP): the teapot refuses to brew coffee. Some sites use it as a playful anti-scraper response.
The request reached a server that cannot produce a response, often via HTTP/2 connection reuse to the wrong virtual host.
The syntax is fine but the semantics are invalid: field validation failed (for example a malformed e-mail). REST APIs use it for form errors.
WebDAV extension: the resource is locked and the current operation cannot proceed.
WebDAV extension: the current request cannot be completed because an earlier request failed.
The server refuses to process early data that could be replayed (TLS 1.3 0-RTT), guarding against replay attacks.
The server refuses the current protocol and asks the client to upgrade; the Upgrade header names the target protocol.
The server requires a conditional header such as If-Match so clients use optimistic locking and updates are not lost.
Rate limiting kicked in. The response may include Retry-After to say when to try again — the standard throttling code.
The combined or a single header exceeds the limit, often because cookies have grown too large.
The resource is withheld for legal reasons such as copyright or regulation. The number nods to the novel Fahrenheit 451.
The server hit an unexpected error while handling the request (uncaught exception, bug). Check the server logs.
The server does not support the request method or feature, for example PATCH on a server that only handles GET/POST.
A gateway or reverse proxy received an invalid response from the upstream server — often a crashed backend or a refused nginx upstream connection.
The server is temporarily overloaded or down for maintenance and may send Retry-After. Common during scaling, deploys and circuit breaking.
The gateway or proxy timed out waiting for the upstream server, often because the backend is slow or a slow query drags the endpoint down.
The server does not support the HTTP protocol version used by the request.
A content negotiation misconfiguration: the selected variant itself takes part in negotiation, creating a loop.
WebDAV extension: the server has not enough space for what the request needs (for example a full disk).
WebDAV extension: an infinite loop was detected while processing the request (for example a binding cycle).
The request lacks extensions the server requires; it must be extended before retrying. Very rarely used.
Network-level authentication is required before getting online — the classic hotel or airport Wi-Fi captive portal.