HTTP Status Codes

Complete reference of HTTP status codes. Search, filter by category, and learn when to use each code.

How it works: Browse all HTTP status codes below. Use the search bar to find specific codes by number or name, or filter by category (1xx-5xx). Click any code to copy it.

Showing 34 of 34 status codes

100

Continue

click to copy

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

101

Switching Protocols

click to copy

The server is switching protocols as requested by the client (e.g., upgrading to WebSocket).

102

Processing

click to copy

The server has received and is processing the request, but no response is available yet (WebDAV).

103

Early Hints

click to copy

Used to return some response headers before the final HTTP message, allowing the browser to preload resources.

200

OK

click to copy

The request succeeded. The meaning depends on the HTTP method: GET returns the resource, POST returns the result of the action.

201

Created

click to copy

The request succeeded and a new resource was created. Typically used as a response to POST requests.

202

Accepted

click to copy

The request has been accepted for processing, but the processing has not been completed. Used for async operations.

204

No Content

click to copy

The server successfully processed the request but returns no content. Common response for DELETE operations.

206

Partial Content

click to copy

The server is delivering only part of the resource due to a Range header sent by the client.

207

Multi-Status

click to copy

A multi-status response conveys information about multiple resources where multiple status codes might be appropriate (WebDAV).

301

Moved Permanently

click to copy

The resource has been permanently moved to a new URL. Search engines will update their links. Use for permanent URL changes.

302

Found

click to copy

The resource temporarily resides at a different URL. The client should continue to use the original URL for future requests.

303

See Other

click to copy

The response can be found at another URL using a GET request. Often used after POST to redirect to a confirmation page.

304

Not Modified

click to copy

The resource has not been modified since the last request. Used for caching — the client can use its cached version.

307

Temporary Redirect

click to copy

The resource temporarily resides at a different URL. Unlike 302, the request method must not change (POST stays POST).

308

Permanent Redirect

click to copy

The resource has been permanently moved. Unlike 301, the request method must not change (POST stays POST).

400

Bad Request

click to copy

The server cannot process the request due to malformed syntax, invalid parameters, or missing required fields.

401

Unauthorized

click to copy

Authentication is required. The client must provide valid credentials (API key, token, or login) to access this resource.

403

Forbidden

click to copy

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

404

Not Found

click to copy

The requested resource could not be found on the server. The URL may be incorrect or the resource may have been deleted.

405

Method Not Allowed

click to copy

The HTTP method used is not supported for this resource. For example, using POST on a read-only endpoint.

408

Request Timeout

click to copy

The server timed out waiting for the request. The client took too long to send the complete request.

409

Conflict

click to copy

The request conflicts with the current state of the server. Common in version control or when trying to create a duplicate resource.

410

Gone

click to copy

The resource is no longer available and will not be available again. Unlike 404, this is a permanent condition.

413

Payload Too Large

click to copy

The request body is larger than the server is willing to accept. Common for file upload limits.

415

Unsupported Media Type

click to copy

The media type of the request body is not supported. For example, sending XML when only JSON is accepted.

418

I'm a Teapot

click to copy

The server refuses to brew coffee because it is, permanently, a teapot. An April Fools' joke from RFC 2324 that became a real HTTP status code.

422

Unprocessable Entity

click to copy

The server understands the content but cannot process it. Used for validation errors — the syntax is correct but the data is invalid.

429

Too Many Requests

click to copy

The user has sent too many requests in a given time period (rate limiting). Check the Retry-After header for when to retry.

500

Internal Server Error

click to copy

The server encountered an unexpected condition that prevented it from fulfilling the request. A generic server-side error.

501

Not Implemented

click to copy

The server does not support the functionality required to fulfill the request. The method may not be recognized.

502

Bad Gateway

click to copy

The server, acting as a gateway or proxy, received an invalid response from an upstream server.

503

Service Unavailable

click to copy

The server is temporarily unable to handle the request due to maintenance or overloading. Usually temporary.

504

Gateway Timeout

click to copy

The server, acting as a gateway or proxy, did not receive a timely response from an upstream server.

What Are HTTP Status Codes?

HTTP status codes are three-digit numbers returned by web servers to indicate the result of a client's request. They are grouped into five categories: 1xx (Informational), 2xx (Success), 3xx (Redirection), 4xx (Client Error), and 5xx (Server Error). Understanding these codes is essential for web development, API design, and debugging network issues.

Most Common HTTP Status Codes

The most frequently encountered status codes are 200 OK (request succeeded), 301 Moved Permanently (resource permanently relocated), 404 Not Found (resource doesn't exist), 403 Forbidden (access denied), and 500 Internal Server Error (server-side failure). These five codes account for the vast majority of HTTP responses you'll encounter in everyday web browsing and API development.

HTTP Status Codes in REST APIs

REST APIs use status codes to communicate the result of operations. A well-designed API returns 200 for successful GET requests, 201 for successful POST (resource created), 204 for successful DELETE (no content to return), 400 for invalid input, 401 for authentication failures, 403 for authorization failures, 404 for missing resources, and 422 for validation errors. Consistent status code usage makes APIs predictable and easier to consume.

Status Code Best Practices

  • Always return the most specific status code — 404 is better than generic 400
  • Use 201 Created (not 200) when a new resource is created via POST
  • Return 204 No Content for successful DELETE operations
  • Use 429 Too Many Requests with a Retry-After header for rate limiting
  • Never return 200 with an error message in the body — use proper 4xx/5xx codes
  • Use 301 for permanent redirects (SEO-friendly) and 307 for temporary ones