Status codes · 1xx–5xx
Status code atlas: choosing the right response
Learn the 1xx–5xx families, individual codes and the consequences of API response decisions.
Understand the concept
A status code is a protocol decision, not just a number printed on a page. Browsers, caches, proxies and application clients use it to decide what to do next. The 1xx family is informational; 2xx describes successful handling; 3xx requires further action, including validation; 4xx describes a request-related problem; 5xx describes server-side failure. These families do not automatically assign blame or prescribe retries.
Ask whether the request was understood, whether identity and permissions are acceptable, whether processing finished, and which layer produced the response. Creating a resource can produce 201, accepting queued work 202, and finishing without a response body 204. Hiding every error inside 200 breaks monitoring and client contracts. Keep the real status and any Problem Details status consistent.
Use the atlas below to search individual registered codes. Extension, historical and temporary entries are labelled separately. A code also implies header and body obligations: 401 needs a challenge, 405 identifies allowed methods, and some responses can communicate retry timing. Follow the linked family lessons to practise those decisions.
When designing API contracts, frontend error handling and alert rules together.
Fetch does not reject its promise merely because a response is 4xx or 5xx; inspect response.ok or status.
REFERENCE DESK
Find a status code. Understand its meaning.
Expand a code for its explanation and lesson link. Entries are not all usage recommendations; extensions and historical codes are labelled.
64 / 64 entries
100ContinueProtocol
The request body may be sent; the final response is still pending.
Study the related lesson101Switching ProtocolsProtocol
An HTTP/1.1 protocol switch was accepted; consider a classic WebSocket upgrade.
Study the related lesson102ProcessingExtension
A WebDAV-related processing indication, not the final success.
Study the related lesson103Early HintsProtocol
Resource hints arrive before the final response, without guaranteeing its outcome.
Study the related lesson104Upload Resumption SupportedTemporary registration
A temporary resumable-upload registration; check its current registry validity.
The entry checked on 2 October 2026 expires on 13 November 2026. Do not treat experimental support or that date as permanent; check the current IANA registry.
Study the related lesson200OKProtocol
The request was handled successfully; content meaning depends on the method.
Study the related lesson201CreatedProtocol
A resource was created; Location or the target URI identifies the primary resource.
Study the related lesson202AcceptedProtocol
Work was accepted but is not complete and may eventually fail.
Study the related lesson203Non-Authoritative InformationProtocol
An intermediary transformed the representation; this does not simply mean untrustworthy data.
Study the related lesson204No ContentProtocol
The operation succeeded without content; do not parse a JSON body.
Study the related lesson205Reset ContentProtocol
The operation succeeded and the initiating document view should reset. No content is sent.
Study the related lesson206Partial ContentProtocol
One or more byte ranges were returned, with appropriate range metadata.
Study the related lesson207Multi-StatusExtension
A WebDAV multi-resource result; the body can contain individual statuses.
Study the related lesson208Already ReportedExtension
Previously reported binding information is not repeated in its WebDAV context.
Study the related lesson226IM UsedExtension
A specialised response to GET using supported instance manipulation, such as delta encoding.
Study the related lesson300Multiple ChoicesProtocol
Alternative representations exist and client selection may be needed.
Study the related lesson301Moved PermanentlyProtocol
A permanent new URI; consider historical POST-to-GET behaviour and caching.
Study the related lesson302FoundProtocol
A temporary alternative URI; do not assume every client preserves the method.
Study the related lesson303See OtherProtocol
Retrieve the result from another resource with GET/HEAD, commonly after forms.
Study the related lesson304Not ModifiedProtocol
Validation of a conditional GET/HEAD; reuse the cached representation without new content.
Study the related lesson305Use ProxyHistorical / do not use
A deprecated historical proxy redirect; do not use it in a new API design.
Study the related lesson306UnusedUnused
An unused reserved entry; do not choose it as an application response.
Study the related lesson307Temporary RedirectProtocol
A temporary redirect preserving method and body.
Study the related lesson308Permanent RedirectProtocol
A permanent redirect preserving method and body.
Study the related lesson400Bad RequestProtocol
Malformed syntax or a general invalid request; safely explain what can be corrected.
Study the related lesson401UnauthorizedProtocol
Usable authentication credentials are required; include a WWW-Authenticate challenge.
Study the related lesson402Payment RequiredReserved
Reserved for future use; do not present it as a universal payment contract.
Study the related lesson403ForbiddenProtocol
The server understood but refuses; insufficient permission with valid identity is a common case.
Study the related lesson404Not FoundProtocol
The resource is unavailable or its existence is not disclosed, including access concealment.
Study the related lesson405Method Not AllowedProtocol
The resource does not permit this method; communicate allowed methods with Allow.
Study the related lesson406Not AcceptableProtocol
No acceptable response representation can be supplied; inspect Accept preferences.
Study the related lesson407Proxy Authentication RequiredProtocol
A forward proxy requires credentials; include Proxy-Authenticate.
Study the related lesson408Request TimeoutProtocol
The server did not receive the request in time; this is not every client timeout.
Study the related lesson409ConflictProtocol
The request conflicts with resource state; correction or merging may be needed.
Study the related lesson410GoneProtocol
The resource’s availability is known to have permanently ended.
Study the related lesson411Length RequiredProtocol
The request is refused without the required Content-Length information.
Study the related lesson412Precondition FailedProtocol
A supplied precondition failed; a stale If-Match is a typical example.
Study the related lesson413Content Too LargeProtocol
Supplied content exceeds a size limit; revise the payload or upload strategy.
Study the related lesson414URI Too LongProtocol
The URI is too long; redesign oversized query or filter contracts.
Study the related lesson415Unsupported Media TypeProtocol
The supplied content type or coding is unsupported; this differs from 406.
Study the related lesson416Range Not SatisfiableProtocol
The requested range cannot be satisfied for the current representation; inspect its length.
Study the related lesson417Expectation FailedProtocol
The expectation in Expect cannot be met by the server chain.
Study the related lesson418UnusedUnused
Unused in IANA/RFC 9110; historical teapot humour is not a normal API contract.
Study the related lesson421Misdirected RequestProtocol
The request reached a server unable to respond for that target.
Study the related lesson422Unprocessable ContentProtocol
Content is understood but its instructions cannot be processed; use a consistent validation contract.
Study the related lesson423LockedExtension
A WebDAV resource is locked; this is not a generic account-lockout code.
Study the related lesson424Failed DependencyExtension
A WebDAV action failed because a dependent action failed.
Study the related lesson425Too EarlyProtocol
The server is unwilling to process early data with potential replay risk.
Study the related lesson426Upgrade RequiredProtocol
A protocol upgrade is required; consider the Upgrade information.
Study the related lesson428Precondition RequiredProtocol
A conditional request is required; this is missing a precondition, not failing one.
Study the related lesson429Too Many RequestsProtocol
A rate limit was exceeded; consider its scope and any Retry-After information.
Study the related lesson431Request Header Fields Too LargeProtocol
An individual field or total header set is too large; inspect oversized cookies too.
Study the related lesson451Unavailable For Legal ReasonsProtocol
Access is restricted for legal reasons, rather than an authentication failure.
Study the related lesson500Internal Server ErrorProtocol
An unexpected server condition; correlate internal logs without disclosing secrets.
Study the related lesson501Not ImplementedProtocol
Required functionality is not implemented; this differs from a resource’s 405 method rule.
Study the related lesson502Bad GatewayProtocol
A gateway received an invalid upstream response; identify the responding hop.
Study the related lesson503Service UnavailableProtocol
Temporary overload or maintenance may apply; Retry-After does not guarantee safe replay.
Study the related lesson504Gateway TimeoutProtocol
A gateway did not receive an upstream response in time; side effects may already exist.
Study the related lesson505HTTP Version Not SupportedProtocol
The required HTTP version is not supported by the server.
Study the related lesson506Variant Also NegotiatesExtension
A specialised configuration error in transparent content negotiation.
Study the related lesson507Insufficient StorageExtension
Insufficient storage for the operation in its WebDAV context; an extension code.
Study the related lesson508Loop DetectedExtension
A loop occurred in a WebDAV operation; not a generic redirect-loop status.
Study the related lesson510Not ExtendedHistorical / do not use
An obsolete historical extension entry; do not use it for a new API.
Study the related lesson511Network Authentication RequiredProtocol
Network or captive-portal access requires authentication; not ordinary application login.
Study the related lessonFramework or vendor codes such as 419 and 520 must not be confused with registered standards. Not every number from 100 to 599 is assigned. This atlas was checked on 2 October 2026.
One topic. Three levels of depth.
HTTP/1.1 201 Created
Location: /orders/42The order was created; the URI identifies its resource.
This page does not send requests to external servers. Messages are readable HTTP/1.1 illustrations, not HTTP/2 or HTTP/3 wire dumps. example.test is reserved for examples. Run commands and JavaScript only in your own test environment; never publish real tokens or cookies.
Try it yourself first.
A report will take 30 seconds and has only been queued. Choose 200, 201 or 202.
Show the solution and explanation
HTTP/1.1 202 Accepted
Location: /jobs/report-42202 communicates acceptance, not guaranteed completion. Monitor a separate job resource.