HTTP Status Codes

Search and explore HTTP status codes and their meanings

100

Continue

CONTINUE

101

Switching Protocols

SWITCHING PROTOCOLS

102

Processing

PROCESSING

103

Early Hints

EARLY HINTS

200

OK

OK

201

Created

CREATED

202

Accepted

ACCEPTED

203

Non Authoritative Information

NON AUTHORITATIVE INFORMATION

204

No Content

NO CONTENT

205

Reset Content

RESET CONTENT

206

Partial Content

PARTIAL CONTENT

207

Multi-Status

MULTI STATUS

208

Already Reported

ALREADY REPORTED

226

IM Used

IM USED

300

Multiple Choices

MULTIPLE CHOICES

301

Moved Permanently

MOVED PERMANENTLY

302

Moved Temporarily

MOVED TEMPORARILY

303

See Other

SEE OTHER

304

Not Modified

NOT MODIFIED

305

Use Proxy

USE PROXY

307

Temporary Redirect

TEMPORARY REDIRECT

308

Permanent Redirect

PERMANENT REDIRECT

400

Bad Request

BAD REQUEST

401

Unauthorized

UNAUTHORIZED

402

Payment Required

PAYMENT REQUIRED

403

Forbidden

FORBIDDEN

404

Not Found

NOT FOUND

405

Method Not Allowed

METHOD NOT ALLOWED

406

Not Acceptable

NOT ACCEPTABLE

407

Proxy Authentication Required

PROXY AUTHENTICATION REQUIRED

408

Request Timeout

REQUEST TIMEOUT

409

Conflict

CONFLICT

410

Gone

GONE

411

Length Required

LENGTH REQUIRED

412

Precondition Failed

PRECONDITION FAILED

413

Request Entity Too Large

REQUEST TOO LONG

414

Request-URI Too Long

REQUEST URI TOO LONG

415

Unsupported Media Type

UNSUPPORTED MEDIA TYPE

416

Requested Range Not Satisfiable

REQUESTED RANGE NOT SATISFIABLE

417

Expectation Failed

EXPECTATION FAILED

418

I'm a teapot

IM A TEAPOT

419

Insufficient Space on Resource

INSUFFICIENT SPACE ON RESOURCE

420

Method Failure

METHOD FAILURE

421

Misdirected Request

MISDIRECTED REQUEST

422

Unprocessable Entity

UNPROCESSABLE ENTITY

423

Locked

LOCKED

424

Failed Dependency

FAILED DEPENDENCY

425

Too Early

TOO EARLY

426

Upgrade Required

UPGRADE REQUIRED

428

Precondition Required

PRECONDITION REQUIRED

429

Too Many Requests

TOO MANY REQUESTS

431

Request Header Fields Too Large

REQUEST HEADER FIELDS TOO LARGE

451

Unavailable For Legal Reasons

UNAVAILABLE FOR LEGAL REASONS

500

Internal Server Error

INTERNAL SERVER ERROR

501

Not Implemented

NOT IMPLEMENTED

502

Bad Gateway

BAD GATEWAY

503

Service Unavailable

SERVICE UNAVAILABLE

504

Gateway Timeout

GATEWAY TIMEOUT

505

HTTP Version Not Supported

HTTP VERSION NOT SUPPORTED

506

Variant Also Negotiates

VARIANT ALSO NEGOTIATES

507

Insufficient Storage

INSUFFICIENT STORAGE

508

Loop Detected

LOOP DETECTED

510

Not Extended

NOT EXTENDED

511

Network Authentication Required

NETWORK AUTHENTICATION REQUIRED

HTTP Status Code Reference — Complete Guide to HTTP Response Codes

Understanding the Basics

HTTP status codes are three-digit numeric codes returned by web servers in response to client requests, indicating the outcome of the request. Defined in RFC 9110 (the current HTTP/1.1 semantics standard, which superseded RFC 7231), they are grouped into five classes by their first digit: 1xx (Informational — request received, processing continues), 2xx (Successful — request received, understood, and accepted), 3xx (Redirection — further action required by client), 4xx (Client Error — request contains bad syntax or cannot be fulfilled), and 5xx (Server Error — server failed to fulfill valid request). The most commonly encountered codes are: 200 OK (success), 201 Created (resource created), 204 No Content (success with no body), 301 Moved Permanently (redirect), 302 Found (temporary redirect), 304 Not Modified (cached response still valid), 400 Bad Request (malformed request), 401 Unauthorized (authentication required), 403 Forbidden (authenticated but lacking permission), 404 Not Found (resource doesn't exist), 405 Method Not Allowed, 409 Conflict (duplicate resource), 422 Unprocessable Entity (validation failure), 429 Too Many Requests (rate limited), 500 Internal Server Error, 502 Bad Gateway (upstream error), 503 Service Unavailable (overloaded), and 504 Gateway Timeout. Understanding HTTP status codes is fundamental to debugging API integrations, designing REST APIs, configuring CDNs and load balancers, and building HTTP client retry logic.

How to Use the Tool

  1. Browse the full list of status codes organized by class (1xx, 2xx, 3xx, 4xx, 5xx).
  2. Search for a specific code number or keyword (e.g., "429" or "rate limit") using the search box.
  3. Click any status code to expand its full description: definition, RFC reference, common causes, and appropriate client handling.
  4. Use the filter buttons to show only a specific class of codes.
  5. Copy the status code number and description for use in API documentation or error handling code.

Key Features & Specifications

  • Complete reference for all standard HTTP status codes from RFC 9110 and common extensions
  • Search by code number or keyword description
  • Filter by response class: 1xx, 2xx, 3xx, 4xx, 5xx
  • Each entry includes RFC reference, common causes, and recommended client/server behavior
  • Non-standard but widely used codes included (103 Early Hints, 418 I'm a Teapot, 451 Unavailable for Legal Reasons)

Frequently Asked Questions (FAQ)

Q:What is the difference between 401 and 403?
401 Unauthorized means the client must authenticate (provide credentials) — despite the misleading name, it signals that authentication is missing or invalid, not that the client lacks permission. 403 Forbidden means the client is authenticated but does not have permission to access the resource — authentication would not help.
Q:When should an API return 400 vs 422?
400 Bad Request indicates the request is syntactically malformed (invalid JSON, wrong Content-Type, missing required headers). 422 Unprocessable Entity (from WebDAV, widely adopted by REST APIs) indicates the request is syntactically valid but semantically invalid — for example, a required field is missing in a valid JSON body, or a value fails business validation rules.
Q:What should happen when a 429 Too Many Requests is received?
The client should implement exponential backoff with jitter: wait a period before retrying (often indicated by the Retry-After response header), doubling the wait on successive failures, and adding random jitter to prevent thundering-herd effects when many clients retry simultaneously.