HTTP status codes, explained for debugging

Not the RFC prose — what each code actually means when your request comes back wrong, and what to check next. Every page includes the practical debug move.

1xx — Informational

Interim responses: the request was received and the process continues.

2xx — Success

The request was received, understood and accepted.

3xx — Redirection

Further action is needed, usually following a Location header.

4xx — Client errors

The request is at fault: syntax, auth, permissions or the resource itself.

400 Bad Request

The server could not parse or accept the request as sent.

401 Unauthorized

Authentication is missing or invalid; the name is misleading.

402 Payment Required

Reserved for payment; used in practice for quota and billing walls.

403 Forbidden

Authenticated (or known), but not allowed to do this.

404 Not Found

No representation exists for this URL — or the API hides that it does.

405 Method Not Allowed

The URL exists, but not for this HTTP method.

406 Not Acceptable

The server cannot produce a representation matching your Accept headers.

407 Proxy Authentication Required

A proxy between you and the origin wants credentials.

408 Request Timeout

The server gave up waiting for your request to arrive.

409 Conflict

The request clashes with the current state of the resource.

410 Gone

It existed, it was removed on purpose, it is not coming back.

411 Length Required

The server insists on a Content-Length header.

412 Precondition Failed

An If-* conditional header did not hold.

413 Content Too Large

The request body exceeds what the server accepts.

414 URI Too Long

The URL itself exceeds server limits.

415 Unsupported Media Type

The server rejects the Content-Type of your body.

416 Range Not Satisfiable

The requested byte range is outside the resource.

417 Expectation Failed

The server cannot meet the Expect header.

418 I'm a teapot

An April Fools RFC classic: the teapot refuses to brew coffee.

421 Misdirected Request

This server is not the right one for that URL/authority.

422 Unprocessable Content

Syntax is fine; the data is semantically invalid.

423 Locked

WebDAV: the resource is locked.

425 Too Early

The server refuses to process a possibly-replayed early request.

426 Upgrade Required

Switch protocols (see the Upgrade header) and try again.

428 Precondition Required

The server demands conditional headers to prevent lost updates.

429 Too Many Requests

You hit a rate limit; slow down and honor Retry-After.

431 Request Header Fields Too Large

Headers (often cookies) exceed server limits.

451 Unavailable For Legal Reasons

Blocked due to legal demands (the Fahrenheit 451 code).

5xx — Server errors

The server failed to fulfill an apparently valid request.

See the status, fix the request — from your phone.

ReqPad shows status, timing and headers for every request, with searchable history. REST, GraphQL, gRPC, MQTT, WebSocket & Socket.IO.