HTTP Status Codes Reference

A complete, searchable reference of HTTP response status codes. Filter by code or keyword.


1xx — Informational

CodeNameDescription
100ContinueThe server has received the request headers and the client should proceed to send the request body.
101Switching ProtocolsThe server is switching protocols as requested by the client (e.g., upgrading to WebSocket).
102ProcessingThe server has received and is processing the request, but no response is available yet (WebDAV).
103Early HintsUsed to return some response headers before the final response, allowing the client to preload resources.

2xx — Success

CodeNameDescription
200OKThe request succeeded. The meaning depends on the HTTP method used.
201CreatedThe request succeeded and a new resource was created as a result.
202AcceptedThe request has been received but not yet acted upon. It is intended for asynchronous processing.
203Non-Authoritative InformationThe returned metadata is from a local or third-party copy, not the origin server.
204No ContentThe request succeeded but there is no content to return in the response body.
205Reset ContentThe server asks the client to reset the document view (e.g., clear a form).
206Partial ContentThe server is delivering only part of the resource due to a Range header sent by the client.
207Multi-StatusConveys information about multiple resources in situations where multiple status codes might be appropriate (WebDAV).

3xx — Redirection

CodeNameDescription
300Multiple ChoicesThe request has more than one possible response. The client should choose one.
301Moved PermanentlyThe resource has been permanently moved to a new URL. Search engines will update their links.
302FoundThe resource is temporarily located at a different URL. The client should continue using the original URL.
303See OtherThe response can be found at a different URL using a GET request.
304Not ModifiedThe resource has not been modified since the last request. The client can use its cached version.
307Temporary RedirectThe resource is temporarily at a different URL. The request method must not change.
308Permanent RedirectThe resource has permanently moved. The request method must not change (like 301 but method-preserving).

4xx — Client Error

CodeNameDescription
400Bad RequestThe server cannot process the request due to malformed syntax or invalid parameters.
401UnauthorizedThe request requires authentication. The client must provide valid credentials.
402Payment RequiredReserved for future use. Some APIs use it to indicate a payment is required.
403ForbiddenThe server understood the request but refuses to authorize it. Authentication will not help.
404Not FoundThe server cannot find the requested resource. The URL may be incorrect or the resource may have been removed.
405Method Not AllowedThe HTTP method used is not supported for the requested resource.
406Not AcceptableThe server cannot produce a response matching the Accept headers sent by the client.
407Proxy Authentication RequiredThe client must authenticate with a proxy before the request can proceed.
408Request TimeoutThe server timed out waiting for the client to send a complete request.
409ConflictThe request conflicts with the current state of the resource (e.g., duplicate entry, edit conflict).
410GoneThe resource is no longer available and has been permanently removed. Unlike 404, this is intentional.
411Length RequiredThe server requires a Content-Length header in the request.
412Precondition FailedA condition in the request headers (e.g., If-Match) evaluated to false.
413Content Too LargeThe request body exceeds the size limit defined by the server.
414URI Too LongThe request URL is longer than the server is willing to interpret.
415Unsupported Media TypeThe server does not support the media type of the request body.
416Range Not SatisfiableThe Range header in the request cannot be fulfilled (e.g., beyond the resource size).
417Expectation FailedThe server cannot meet the requirements of the Expect header.
418I'm a TeapotAn April Fools' joke from RFC 2324. The server refuses to brew coffee because it is a teapot.
422Unprocessable ContentThe server understands the request but cannot process the contained instructions (e.g., validation errors).
425Too EarlyThe server is unwilling to process a request that might be replayed (TLS early data).
426Upgrade RequiredThe server refuses the request using the current protocol and requires the client to upgrade.
428Precondition RequiredThe server requires the request to be conditional (e.g., include If-Match header).
429Too Many RequestsThe client has sent too many requests in a given time period (rate limiting).
431Request Header Fields Too LargeThe server refuses the request because the header fields are too large.
451Unavailable For Legal ReasonsThe resource is unavailable due to legal demands (e.g., government censorship, DMCA).

5xx — Server Error

CodeNameDescription
500Internal Server ErrorThe server encountered an unexpected condition that prevented it from fulfilling the request.
501Not ImplementedThe server does not support the functionality required to fulfill the request.
502Bad GatewayThe server, acting as a gateway or proxy, received an invalid response from an upstream server.
503Service UnavailableThe server is temporarily unable to handle the request due to maintenance or overload.
504Gateway TimeoutThe server, acting as a gateway, did not receive a timely response from the upstream server.
505HTTP Version Not SupportedThe server does not support the HTTP version used in the request.
506Variant Also NegotiatesThe server has a configuration error in transparent content negotiation.
507Insufficient StorageThe server cannot store the representation needed to complete the request (WebDAV).
508Loop DetectedThe server detected an infinite loop while processing the request (WebDAV).
510Not ExtendedFurther extensions to the request are required for the server to fulfill it.
511Network Authentication RequiredThe client needs to authenticate to gain network access (e.g., captive portal).

Frequently Asked Questions

What are HTTP status codes?

Three-digit numbers returned by a server indicating the result of a request. They are grouped into five classes: 1xx (Informational), 2xx (Success), 3xx (Redirection), 4xx (Client Error), and 5xx (Server Error).

401 vs 403?

401 Unauthorized: the client should authenticate and retry. 403 Forbidden: the server refuses even with valid credentials — the user simply doesn't have permission.

200 vs 201 vs 204?

200 OK: standard success. 201 Created: a resource was created (typically POST). 204 No Content: success with no response body (common for DELETE/PUT).