Skip to content
DevTools

HTTP Status Codes — Complete Reference

Look up any HTTP status code: 200, 301, 404, 500 and more. Search by number, name or class (4xx) and read what each code means and when to use it.

Results update as you type.

Search

Output

Ready

Runs locally in your browser — your data is never uploaded.

About the HTTP Status Codes

A complete, searchable reference of HTTP response status codes. Type a code such as 404, a class such as 5xx, or a word such as redirect to see each matching status with its official name and an explanation of when it's used.

Status codes are grouped into five classes: 1xx informational, 2xx success, 3xx redirection, 4xx client errors and 5xx server errors.

How to use it

  1. Type a code, class (4xx) or keyword.
  2. Read the matching statuses.
  3. Scroll down for the full reference table.

Features

  • All standard codes from RFC 9110 and common extensions
  • Search by number, class or keyword
  • Plain-English descriptions

HTTP status code reference

CodeNameMeaning
100ContinueThe server received the request headers; the client should send the body.
101Switching ProtocolsThe server agrees to switch protocols, e.g. to WebSocket.
103Early HintsLets the browser preload resources while the server prepares the response.
200OKThe request succeeded.
201CreatedThe request succeeded and a new resource was created; usually returned by POST or PUT.
202AcceptedThe request was accepted for processing, but processing has not finished.
203Non-Authoritative InformationThe payload was modified by a transforming proxy.
204No ContentThe request succeeded and there is no body to return.
205Reset ContentThe client should reset the document view, e.g. clear a form.
206Partial ContentOnly part of the resource is returned, in response to a Range header.
207Multi-StatusWebDAV: the body contains status for multiple resources.
300Multiple ChoicesThere are several possible responses; the client should choose one.
301Moved PermanentlyThe resource has a new permanent URL, given in the Location header. Search engines transfer ranking to the new URL.
302FoundThe resource is temporarily at another URL. Clients may change POST to GET when following it.
303See OtherRedirect to another resource with GET, commonly after a form POST.
304Not ModifiedThe cached version is still valid (conditional request via ETag or Last-Modified).
307Temporary RedirectTemporary redirect that keeps the original method and body.
308Permanent RedirectPermanent redirect that keeps the original method and body.
400Bad RequestThe server cannot process the request because of a client error such as malformed syntax or invalid parameters.
401UnauthorizedAuthentication is required or has failed. The response includes a WWW-Authenticate header.
402Payment RequiredReserved; some APIs use it when a quota or subscription is exhausted.
403ForbiddenThe client is authenticated but not allowed to access the resource.
404Not FoundThe server cannot find the requested resource.
405Method Not AllowedThe HTTP method is not supported for this resource; see the Allow header.
406Not AcceptableNo representation matches the Accept headers sent by the client.
407Proxy Authentication RequiredThe client must authenticate with the proxy.
408Request TimeoutThe server timed out waiting for the request.
409ConflictThe request conflicts with the current state of the resource, e.g. an edit conflict or duplicate key.
410GoneThe resource was permanently removed and will not come back.
411Length RequiredThe request must include a Content-Length header.
412Precondition FailedA precondition header such as If-Match evaluated to false.
413Content Too LargeThe request body is larger than the server allows.
414URI Too LongThe request URL is longer than the server will interpret.
415Unsupported Media TypeThe Content-Type of the body is not supported.
416Range Not SatisfiableThe requested Range cannot be served.
417Expectation FailedThe Expect header requirement cannot be met.
418I'm a teapotAn April Fools' joke from RFC 2324; occasionally used to refuse requests.
421Misdirected RequestThe request was sent to a server that cannot produce a response for it.
422Unprocessable ContentThe request is well-formed but contains semantic errors, commonly used for validation failures.
423LockedWebDAV: the resource is locked.
425Too EarlyThe server will not process a request that might be replayed.
426Upgrade RequiredThe client should switch to a different protocol.
428Precondition RequiredThe server requires the request to be conditional to prevent lost updates.
429Too Many RequestsThe client is being rate-limited. Check the Retry-After header.
431Request Header Fields Too LargeHeaders are too large, often because of oversized cookies.
451Unavailable For Legal ReasonsThe resource is blocked for legal reasons, such as censorship or a court order.
500Internal Server ErrorA generic error: the server hit an unexpected condition.
501Not ImplementedThe server does not support the functionality required.
502Bad GatewayA gateway or proxy received an invalid response from the upstream server.
503Service UnavailableThe server is overloaded or down for maintenance. Retry-After may say when to try again.
504Gateway TimeoutA gateway or proxy did not get a timely response from the upstream server.
505HTTP Version Not SupportedThe HTTP version used is not supported.
507Insufficient StorageWebDAV: the server cannot store the representation.
508Loop DetectedWebDAV: an infinite loop was detected while processing.
511Network Authentication RequiredThe client must authenticate to gain network access, e.g. a captive portal.

Frequently asked questions

What's the difference between 301 and 302?

301 is a permanent redirect — browsers and search engines update to the new URL. 302 is temporary and the original URL stays canonical. Use 308/307 when the request method must be preserved.

401 vs 403?

401 Unauthorized means you aren't authenticated (or credentials are wrong). 403 Forbidden means you are authenticated but not allowed to access the resource.

When should an API return 422?

When the request is syntactically valid but fails validation — for example a missing required field or an invalid email address.