HTTP Status Codes Reference

Complete reference for all HTTP response status codes with descriptions and use cases.

1xx — Informational

CodeNameDescription
100ContinueThe server has received the request headers; the client should proceed to send the body.
101Switching ProtocolsThe server agrees to switch protocols as requested (e.g., upgrading to WebSocket).
102ProcessingThe server has received and is processing the request, but no response is available yet.
103Early HintsAllows the client to start preloading resources before the server's final response.

2xx — Success

CodeNameDescription
200OKStandard successful response for GET, POST, PUT, PATCH, DELETE.
201CreatedResource was created. Returned after a successful POST that created an entity.
202AcceptedRequest accepted for asynchronous processing; not yet completed.
203Non-Authoritative InformationResponse from a proxy that modified the origin server's 200 response.
204No ContentSuccess but no body to return. Common for DELETE and some PUT operations.
205Reset ContentSuccess; client should reset the document view (e.g., clear a form).
206Partial ContentRange request succeeded; response contains partial data (used for file downloads).
207Multi-StatusResponse body contains multiple status codes (WebDAV).
208Already ReportedMembers of a DAV binding already enumerated in a previous reply.
226IM UsedServer fulfilled GET with instance manipulations applied.

3xx — Redirection

CodeNameDescription
300Multiple ChoicesMultiple options available; client or user must choose.
301Moved PermanentlyResource permanently moved to new URL. Browsers cache this. Good for SEO.
302FoundTemporary redirect. Client should continue using the original URL.
303See OtherRedirect to another resource using GET (common after POST form submit).
304Not ModifiedResource unchanged since last request. Client can use its cached copy.
307Temporary RedirectTemporary redirect; client must use same method (preserves POST).
308Permanent RedirectPermanent redirect; client must use same method. Like 301 but preserves method.

4xx — Client Errors

CodeNameDescription
400Bad RequestServer cannot process request due to malformed syntax or invalid parameters.
401UnauthorizedAuthentication required or failed. Client must authenticate to get the requested response.
402Payment RequiredReserved for future use. Sometimes used by APIs for quota exceeded.
403ForbiddenClient is authenticated but does not have permission to access this resource.
404Not FoundResource not found at this URL. Most well-known HTTP error.
405Method Not AllowedHTTP method (GET, POST, etc.) is not allowed for this endpoint.
406Not AcceptableServer cannot produce content matching the Accept headers sent by the client.
407Proxy Authentication RequiredClient must authenticate with the proxy first.
408Request TimeoutServer timed out waiting for the request from the client.
409ConflictRequest conflicts with current state of the resource (e.g., duplicate entry).
410GoneResource permanently deleted. Unlike 404, indicates intentional removal.
411Length RequiredServer requires a Content-Length header on the request.
412Precondition FailedA conditional request header (If-Match etc.) evaluated to false.
413Content Too LargeRequest body exceeds server's size limit.
414URI Too LongThe request URI is longer than the server will accept.
415Unsupported Media TypeRequest's Content-Type is not supported by the server.
416Range Not SatisfiableRequested range in Range header cannot be satisfied.
417Expectation FailedExpect request header cannot be met by the server.
418I'm a TeapotApril Fools' joke from RFC 2324. Any similarity to a real status is coincidental.
422Unprocessable ContentRequest is well-formed but contains semantic errors (common in REST APIs).
423LockedResource is locked (WebDAV).
424Failed DependencyRequest failed because a dependent request failed (WebDAV).
425Too EarlyServer unwilling to process a request that might be replayed.
426Upgrade RequiredClient should switch to a different protocol (e.g., TLS).
428Precondition RequiredOrigin server requires the request to be conditional.
429Too Many RequestsClient has sent too many requests in a given time. API rate limiting.
431Request Header Fields Too LargeRequest headers are too large.
451Unavailable For Legal ReasonsResource unavailable due to legal reasons (e.g., government censorship).

5xx — Server Errors

CodeNameDescription
500Internal Server ErrorGeneric server-side error. The server encountered an unexpected condition.
501Not ImplementedServer does not support the functionality required to fulfil the request.
502Bad GatewayUpstream server returned an invalid response (common with proxies/load balancers).
503Service UnavailableServer is temporarily unavailable (overloaded or down for maintenance).
504Gateway TimeoutUpstream server did not respond in time.
505HTTP Version Not SupportedServer does not support the HTTP version used in the request.
506Variant Also NegotiatesCircular reference in content negotiation.
507Insufficient StorageServer is out of storage space (WebDAV).
508Loop DetectedInfinite loop detected while processing request (WebDAV).
510Not ExtendedFurther extensions are required for the server to fulfil the request.
511Network Authentication RequiredClient must authenticate to gain network access (e.g., captive portals).