HTTP Status Codes — Complete Reference

Every HTTP status code from 1xx to 5xx with descriptions. Search by code number, name, or keyword. Filter by category to quickly find what you need.

62 status codes

1xx Informational

100

Continue

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

101

Switching Protocols

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

102

Processing

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

103

Early Hints

Used to return some response headers before the final HTTP message, primarily for preloading resources.

2xx Success

200

OK

The request has succeeded. The meaning depends on the HTTP method used.

201

Created

The request has been fulfilled and a new resource has been created.

202

Accepted

The request has been accepted for processing, but processing has not been completed.

203

Non-Authoritative Information

The returned metadata is not exactly the same as available from the origin server.

204

No Content

The server successfully processed the request and is not returning any content.

205

Reset Content

The server successfully processed the request and asks the client to reset the document view.

206

Partial Content

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

207

Multi-Status

The message body contains an XML message with statuses for multiple independent operations.

208

Already Reported

The members of a DAV binding have already been enumerated in a previous reply and are not repeated.

226

IM Used

The server has fulfilled a GET request and the response is a representation of one or more instance-manipulations.

3xx Redirection

300

Multiple Choices

The request has more than one possible response. The user or user agent should choose one.

301

Moved Permanently

The URL of the requested resource has been changed permanently. The new URL is given in the response.

302

Found

This response code means the URI of requested resource has been changed temporarily.

303

See Other

The server sent this response to direct the client to get the requested resource at another URI with a GET request.

304

Not Modified

Used for caching. The response has not been modified, so the client can continue to use its cached version.

305

Use Proxy

Defined in a previous version of HTTP. Deprecated due to security concerns.

307

Temporary Redirect

The server sends this response to direct the client to the same URL with the same HTTP method.

308

Permanent Redirect

The resource is now permanently located at another URI. Unlike 301, the same HTTP method must be used.

4xx Client Error

400

Bad Request

The server cannot or will not process the request due to a client error (malformed syntax, invalid framing, etc.).

401

Unauthorized

Authentication is required and has failed or has not yet been provided.

402

Payment Required

Reserved for future use. Originally intended for digital payment systems.

403

Forbidden

The client does not have access rights to the content. Unlike 401, the server knows who you are but refuses access.

404

Not Found

The server cannot find the requested resource. The URL is not recognized or the resource doesn't exist.

405

Method Not Allowed

The request method is not supported for the requested resource (e.g. DELETE on a read-only resource).

406

Not Acceptable

The server cannot produce a response matching the list of acceptable values in the request's headers.

407

Proxy Authentication Required

Authentication is needed to be done by a proxy before the request is fulfilled.

408

Request Timeout

The server timed out waiting for the request. The client may repeat the request without modifications.

409

Conflict

The request conflicts with the current state of the server (e.g. editing conflict in version control).

410

Gone

The requested content has been permanently deleted from the server with no forwarding address.

411

Length Required

Server rejected the request because the Content-Length header field is not defined.

412

Precondition Failed

The client has indicated preconditions in its headers which the server does not meet.

413

Content Too Large

The request entity is larger than limits defined by the server.

414

URI Too Long

The URI requested by the client is longer than the server is willing to interpret.

415

Unsupported Media Type

The media format of the requested data is not supported by the server.

416

Range Not Satisfiable

The range specified by the Range header field in the request cannot be fulfilled.

417

Expectation Failed

The expectation indicated by the Expect request header field cannot be met by the server.

418

I'm a Teapot

The server refuses to brew coffee because it is, permanently, a teapot (RFC 2324 April Fools' joke).

421

Misdirected Request

The request was directed at a server that is not able to produce a response.

422

Unprocessable Content

The request was well-formed but could not be followed due to semantic errors (e.g. validation failure).

423

Locked

The resource that is being accessed is locked.

424

Failed Dependency

The request failed because it depended on another request that failed.

425

Too Early

The server is unwilling to risk processing a request that might be replayed.

426

Upgrade Required

The server refuses to perform the request using the current protocol but is willing to do so after an upgrade.

428

Precondition Required

The origin server requires the request to be conditional, to prevent lost-update problems.

429

Too Many Requests

The user has sent too many requests in a given amount of time (rate limiting).

431

Request Header Fields Too Large

The server is unwilling to process the request because its header fields are too large.

451

Unavailable For Legal Reasons

The resource cannot be provided due to legal demands (e.g. censorship or government-mandated blocked access).

5xx Server Error

500

Internal Server Error

The server has encountered a situation it does not know how to handle.

501

Not Implemented

The request method is not supported by the server and cannot be handled.

502

Bad Gateway

The server, while acting as a gateway, received an invalid response from the upstream server.

503

Service Unavailable

The server is not ready to handle the request — commonly due to maintenance or overloading.

504

Gateway Timeout

The server, acting as a gateway, did not get a response in time from the upstream server.

505

HTTP Version Not Supported

The HTTP version used in the request is not supported by the server.

506

Variant Also Negotiates

The chosen variant resource is configured to engage in transparent content negotiation itself.

507

Insufficient Storage

The server is unable to store the representation needed to complete the request.

508

Loop Detected

The server detected an infinite loop while processing the request.

510

Not Extended

Further extensions to the request are required for the server to fulfil it.

511

Network Authentication Required

The client needs to authenticate to gain network access (e.g. a captive portal).

HTTP Status Code Categories

HTTP status codes are grouped into five classes based on the first digit of the response code:

RangeCategoryMeaning
1xxInformationalRequest received and understood, processing continues
2xxSuccessRequest was successfully received, understood, and accepted
3xxRedirectionFurther action must be taken to complete the request
4xxClient ErrorThe request contains bad syntax or cannot be fulfilled
5xxServer ErrorThe server failed to fulfil an apparently valid request

Most Common HTTP Status Codes

  • 200 OK — The standard success response for GET, POST, and PUT requests.
  • 201 Created — Returned after a successful POST that creates a new resource.
  • 204 No Content — Successful request with no response body (common for DELETE).
  • 301 Moved Permanently — SEO-friendly permanent redirect.
  • 304 Not Modified — Browser cache is fresh; no new data sent.
  • 400 Bad Request — Client sent malformed or invalid data.
  • 401 Unauthorized — Authentication required.
  • 403 Forbidden — Authenticated but not authorized.
  • 404 Not Found — Resource does not exist at this URL.
  • 422 Unprocessable Content — Validation failed (common in REST APIs).
  • 429 Too Many Requests — Rate limit exceeded.
  • 500 Internal Server Error — Generic server-side error.
  • 502 Bad Gateway — Upstream server returned an invalid response.
  • 503 Service Unavailable — Server down or overloaded.

Frequently Asked Questions

What is the difference between 401 and 403?

401 Unauthorized means the request lacks valid authentication credentials — the server doesn't know who you are. 403 Forbidden means authentication succeeded but the authenticated user does not have permission to access the resource — the server knows who you are but says no.

What is the difference between 301 and 302?

301 Moved Permanently tells browsers and search engines that the resource has moved forever — the new URL should replace the old one in bookmarks and search indexes. 302 Found is a temporary redirect — the old URL should be kept. For SEO, always use 301 for permanent moves.

What does 422 mean in a REST API?

422 Unprocessable Content (formerly "Unprocessable Entity") means the request body is syntactically correct but contains semantic errors — such as a validation failure (e.g. a required field is missing or a value is out of range). It's the preferred response for API validation errors, compared to the more generic 400.

When should I use 503 vs 500?

Use 500 Internal Server Error for unexpected bugs or unhandled exceptions. Use 503 Service Unavailable when the server is intentionally down (maintenance mode) or temporarily overloaded and requests should be retried later. Pair 503 with a Retry-After header to tell clients when to try again.