CompleteToolkit

HTTP Status Codes

A searchable reference of every HTTP status code — meaning, category and common causes.

1xx — Informational

100

Continue

The server received the request headers and the client should proceed to send the body.

101

Switching Protocols

The server is switching protocols as requested (e.g. to WebSocket).

103

Early Hints

Used to return preliminary headers while the final response is prepared.

2xx — Success

200

OK

The request succeeded. The most common success response.

201

Created

The request succeeded and a new resource was created — typical after a POST.

202

Accepted

The request was accepted for processing, but processing isn't complete.

204

No Content

The request succeeded but there's no content to return — common for DELETE.

206

Partial Content

The server is delivering part of the resource, used for range requests and resumable downloads.

3xx — Redirection

301

Moved Permanently

The resource has permanently moved to a new URL. Search engines transfer ranking to the new location.

302

Found

The resource is temporarily at a different URL. The original URL should still be used in future.

304

Not Modified

The cached version is still valid — the client can use its cached copy, saving bandwidth.

307

Temporary Redirect

Like 302 but the request method must not change (POST stays POST).

308

Permanent Redirect

Like 301 but the request method must not change. Used by many www/HTTPS redirects.

4xx — Client Error

400

Bad Request

The server couldn't understand the request — malformed syntax or invalid parameters.

401

Unauthorized

Authentication is required and has failed or not been provided. (Really means 'unauthenticated'.)

403

Forbidden

The server understood the request but refuses to authorize it. Authentication won't help.

404

Not Found

The server can't find the requested resource. The most famous status code.

405

Method Not Allowed

The HTTP method isn't supported for this resource (e.g. POST to a read-only endpoint).

408

Request Timeout

The server timed out waiting for the request.

409

Conflict

The request conflicts with the current state — e.g. an edit conflict or duplicate entry.

410

Gone

The resource is permanently gone with no forwarding address — stronger than 404.

418

I'm a teapot

An April Fools' joke from 1998 (RFC 2324). Some servers still return it playfully.

422

Unprocessable Entity

The request was well-formed but has semantic errors — common in API validation failures.

429

Too Many Requests

The user has sent too many requests in a given time — rate limiting.

5xx — Server Error

500

Internal Server Error

A generic server error — something went wrong but the server can't be more specific.

501

Not Implemented

The server doesn't support the functionality to fulfill the request.

502

Bad Gateway

A server acting as a gateway received an invalid response from an upstream server.

503

Service Unavailable

The server is temporarily unable to handle the request — overloaded or down for maintenance.

504

Gateway Timeout

A gateway server didn't receive a timely response from an upstream server.

About this tool

Every request on the web comes back with a status code, and while a few are famous (404, 500), the full set is a genuinely useful reference for anyone building or debugging web software. This is that reference — every standard code, grouped by category, searchable by number or name, with a plain-English explanation of what each one means and when you'd see it.

The codes fall into five families that are worth knowing as a mental model: 1xx informational (rare), 2xx success (200 OK, 201 Created), 3xx redirection (301 permanent, 302 temporary, 304 not-modified), 4xx client errors (400, 401, 403, 404, 429), and 5xx server errors (500, 502, 503). The first digit alone tells you who's at fault — 4xx means the request was wrong, 5xx means the server failed — which is often the first thing you need when debugging.

Search filters instantly as you type: enter 403 to jump to it, or type "forbidden" or "rate limit" to find codes by meaning. The descriptions go beyond the terse official names to explain the practical situation — why 401 really means "unauthenticated" not "unauthorized", why 502 points at an upstream server, when you'd return 422 instead of 400. A quick, no-nonsense lookup for API development, debugging and SEO work alike.

How to use the HTTP Status Codes

  1. 1Browse the codes grouped by category (1xx–5xx).
  2. 2Or search by number (404) or name (not found, rate limit) to filter instantly.
  3. 3Read the plain-English meaning and common cause of each code.
  4. 4Use the first digit as a shortcut: 4xx is a client problem, 5xx is a server problem.

Frequently asked questions

What does HTTP 404 mean?

Not Found — the server couldn't find the requested resource at that URL. It's a client-side (4xx) code, meaning the request was for something that doesn't exist, often a mistyped or outdated URL. It doesn't indicate a server malfunction; the server responded fine, the resource just isn't there.

What's the difference between 401 and 403?

401 Unauthorized actually means 'unauthenticated' — you haven't proven who you are, and providing credentials might grant access. 403 Forbidden means you're authenticated but not allowed — credentials won't help because you lack permission for this resource. The names are a historical quirk; the distinction is authentication vs authorization.

What causes a 500 vs a 502 error?

500 Internal Server Error is a generic 'something broke in the application' — an unhandled exception, a bug. 502 Bad Gateway specifically means a server acting as a proxy or gateway got an invalid response from an upstream server behind it — pointing the finger further back in the chain.

What is a 429 status code?

Too Many Requests — you've hit a rate limit by sending too many requests in a short window. The server is asking you to slow down; responses often include a Retry-After header telling you how long to wait. Common with public APIs that cap request rates per client.