HTTP Status Codes

Searchable reference of 40 common HTTP status codes with plain-English explanations.

HTTP Status Codes

Searchable reference of 40 common HTTP status codes with plain-English explanations.

Look up any common HTTP status code and get its official meaning in plain English. Filter by class or search by code, name, or keyword like redirect. Covers the codes you will actually encounter debugging APIs and websites.

40 of 40 status codes

CodeNameMeaning
100ContinueThe server received the request headers and the client should proceed to send the request body.
101Switching ProtocolsThe server agrees to switch protocols as requested via the Upgrade header, e.g. HTTP to WebSocket.
200OKThe request succeeded. The response body contains the requested representation of the resource.
201CreatedThe request succeeded and a new resource was created, usually identified by the Location header.
202AcceptedThe request was accepted for processing, but processing has not completed yet.
204No ContentThe server processed the request successfully and returns no content in the response body.
206Partial ContentThe server is delivering part of the resource in response to a Range request.
301Moved PermanentlyThe resource has permanently moved (permanent redirect) to the URL in the Location header; update bookmarks and links.
302FoundThe resource temporarily lives at a different URL (temporary redirect); keep using the original URL for future requests.
303See OtherThe response can be found at another URI (redirect) and should be retrieved with a GET request.
304Not ModifiedThe cached version is still fresh; the client should use its cached copy. Sent for conditional requests.
307Temporary RedirectLike 302, but the client must not change the HTTP method when following the redirect.
308Permanent RedirectLike 301, but the client must not change the HTTP method when following the redirect.
400Bad RequestThe server cannot process the request due to malformed syntax or invalid parameters.
401UnauthorizedAuthentication is required and has failed or was not provided. Despite the name, it means unauthenticated.
402Payment RequiredReserved for future use; originally intended for digital payment systems.
403ForbiddenThe server understood the request but refuses to authorize it; re-authenticating will not help.
404Not FoundThe server cannot find the requested resource; it may have been deleted or the URL is wrong.
405Method Not AllowedThe HTTP method is not supported for this resource, e.g. POST to a read-only endpoint.
406Not AcceptableThe server cannot produce a response matching the Accept headers sent by the client.
408Request TimeoutThe server timed out waiting for the client to send the complete request.
409ConflictThe request conflicts with the current state of the resource, e.g. a duplicate unique key.
410GoneThe resource is permanently gone with no forwarding address; clients should remove references to it.
412Precondition FailedA precondition in the request headers (such as If-Match) was not met.
413Content Too LargeThe request body is larger than the server is willing to process (formerly Payload Too Large).
415Unsupported Media TypeThe server refuses the request because the Content-Type is not supported.
418I'm a teapotAn April Fools' joke from RFC 2324 (HTCPCP); some APIs return it as an easter egg.
422Unprocessable ContentThe server understands the content type and syntax but cannot process the instructions (formerly Unprocessable Entity).
425Too EarlyThe server will not process a request that might be replayed, used with TLS early data.
426Upgrade RequiredThe client should switch to a different protocol, indicated in the Upgrade header.
428Precondition RequiredThe server requires the request to be conditional to prevent lost-update problems.
429Too Many RequestsThe client sent too many requests in a time window — rate limiting in action.
431Request Header Fields Too LargeThe request headers are too large; often caused by oversized cookies.
451Unavailable For Legal ReasonsThe resource is blocked for legal reasons, e.g. censorship or takedown orders.
500Internal Server ErrorA generic server-side error; the server encountered an unexpected condition.
501Not ImplementedThe server does not support the functionality required to fulfill the request.
502Bad GatewayA gateway or proxy received an invalid response from the upstream server.
503Service UnavailableThe server is temporarily unable to handle the request due to overload or maintenance.
504Gateway TimeoutA gateway or proxy timed out waiting for the upstream server to respond.
505HTTP Version Not SupportedThe server does not support the HTTP protocol version used in the request.

How to use this calculator

  1. Type a code, name, or keyword (e.g. 404, not found, redirect) into the search box.
  2. Or tap a category chip — 1xx, 2xx, 3xx, 4xx, 5xx — to browse one class.
  3. Read the plain-English meaning in the table.
  4. Combine search and category filters to narrow large result sets.

Worked example

Searching 404 returns 404 Not Found (4xx): the server cannot find the requested resource. Searching redirect finds all five redirect codes: 301, 302, 303, 307, 308.

Frequently Asked Questions

What do the first digits of a status code mean?

The first digit defines the class: 1xx means informational, 2xx means success, 3xx means redirection, 4xx means the client made an error, and 5xx means the server failed. When debugging, the class alone tells you which side of the connection to investigate — 4xx means check your request, 5xx means check the server.

What is the difference between 401 and 403?

401 Unauthorized means authentication is missing or invalid — despite the name, it really means unauthenticated, and the fix is to log in or send valid credentials. 403 Forbidden means the server knows who you are and still refuses — re-authenticating will not help; you lack permission for that resource. A login page returning 401 versus an admin page returning 403 for a regular user is the classic distinction.

When should I use 301 vs 302 vs 307 vs 308?

Use 301 for a permanent move and 302 for a temporary one. The catch: some clients change POST to GET when following 301/302. Use 308 instead of 301, and 307 instead of 302, when the HTTP method must be preserved — critical for API redirects. Search engines treat 301/308 as transfer-ranking signals and 302/307 as keep-ranking signals.

Why does status code 418 exist?

418 (I am a teapot) comes from RFC 2324, an April Fools joke defining the Hyper Text Coffee Pot Control Protocol. It was never meant for production, but it stuck around: some APIs return it as an easter egg. It is harmless, memorable, and a good reminder that not every spec is deadly serious.

My API returns 429 Too Many Requests — what should I do?

You are being rate-limited: slow down and retry with exponential backoff. Check the Retry-After response header, which tells you how many seconds to wait before trying again. Respect it — hammering a rate-limited endpoint usually extends the lockout. If you control the API, return 429 with a clear Retry-After instead of silently dropping requests.