Skip to main content

HTTP Status Codes

Complete reference for all 65 HTTP response status codes with RFC citations, examples, and implementation references.

1xx Informational

Request received, continuing process

2xx Success

Request successfully received and accepted
200

OK

HTTP 200 OK indicates the request has succeeded.

RFC 9110
201

Created

HTTP 201 Created indicates the request has been fulfilled and a new resource has been created.

RFC 9110
202

Accepted

HTTP 202 Accepted indicates the request has been accepted for processing, but the processing has not been completed.

RFC 9110
203

Non-Authoritative Information

HTTP 203 Non-Authoritative Information means the request succeeded but the enclosed payload has been modified by a transforming proxy from the origin server's original 200 response.

RFC 9110
204

No Content

HTTP 204 No Content indicates the server successfully processed the request but is not returning any content.

RFC 9110
205

Reset Content

HTTP 205 Reset Content tells the client the server fulfilled the request and the user agent SHOULD reset the document view that sent it.

RFC 9110
206

Partial Content

HTTP 206 Partial Content indicates the server is delivering only part of the resource due to a Range header sent by the client.

RFC 9110
207

Multi-Status

HTTP 207 Multi-Status indicates the message body contains a DAV:multistatus XML document with multiple response codes for independent sub-operations.

RFC 4918
208

Already Reported

HTTP 208 Already Reported appears inside a 207 Multi-Status response body to indicate that members of a DAV binding have already been enumerated in a preceding part of the response.

RFC 5842
226

IM Used

HTTP 226 IM Used indicates the server fulfilled a GET request and the response is the result of instance-manipulations applied to the current instance.

RFC 3229

3xx Redirection

Further action needed to complete request

4xx Client Error

Request contains bad syntax or cannot be fulfilled
400

Bad Request

HTTP 400 Bad Request indicates the server cannot process the request due to something perceived as a client error.

RFC 9110
401

Unauthorized

HTTP 401 Unauthorized indicates the request lacks valid authentication credentials for the target resource.

RFC 9110
402

Payment Required

HTTP 402 Payment Required indicates that the request cannot be fulfilled until the client provides valid payment.

RFC 9110
403

Forbidden

HTTP 403 Forbidden indicates the server understood the request but refuses to fulfill it.

RFC 9110
404

Not Found

HTTP 404 Not Found indicates the server cannot find the requested resource.

RFC 9110
405

Method Not Allowed

HTTP 405 Method Not Allowed indicates the request method is recognized by the server but is not supported by the target resource.

RFC 9110
406

Not Acceptable

HTTP 406 Not Acceptable indicates the server cannot produce a response matching the proactive content negotiation headers sent by the client.

RFC 9110
407

Proxy Authentication Required

HTTP 407 Proxy Authentication Required indicates the client must first authenticate with an intermediary proxy before the request can be forwarded.

RFC 9110
408

Request Timeout

HTTP 408 Request Timeout indicates the server did not receive a complete request message within the time it was prepared to wait.

RFC 9110
409

Conflict

HTTP 409 Conflict indicates the request could not be completed due to a conflict with the current state of the target resource.

RFC 9110
410

Gone

HTTP 410 Gone indicates the target resource is no longer available at the origin server and this condition is likely to be permanent.

RFC 9110
411

Length Required

HTTP 411 Length Required indicates the server refuses to accept the request without a defined Content-Length header.

RFC 9110
412

Precondition Failed

HTTP 412 Precondition Failed indicates that one or more conditions given in the request header fields (If-Match, If-Unmodified-Since, If-None-Match) evaluated to false on the server.

RFC 9110
413

Content Too Large

HTTP 413 Content Too Large indicates the server is refusing to process the request because the request content exceeds the size the server is willing or able to accept.

RFC 9110
414

URI Too Long

HTTP 414 URI Too Long indicates the server refuses the request because the target URI is longer than the server is willing to interpret.

RFC 9110
415

Unsupported Media Type

HTTP 415 Unsupported Media Type indicates the server refuses the request because the payload's format is not supported.

RFC 9110
416

Range Not Satisfiable

HTTP 416 Range Not Satisfiable indicates the requested ranges cannot be satisfied for the selected resource.

RFC 9110
417

Expectation Failed

HTTP 417 Expectation Failed indicates the server cannot meet the expectation given in the request's Expect header field.

RFC 9110
418

I'm a Teapot

HTTP 418 I'm a Teapot indicates the server refuses to brew coffee because it is, permanently, a teapot.

RFC 2324
421

Misdirected Request

HTTP 421 Misdirected Request indicates the server cannot produce a response for the combination of scheme and authority in the request URI.

RFC 9110
422

Unprocessable Content

HTTP 422 Unprocessable Content indicates the server understands the content type and syntax but cannot process the contained instructions.

RFC 9110
423

Locked

HTTP 423 Locked indicates the source or destination resource is currently locked.

RFC 4918
424

Failed Dependency

HTTP 424 Failed Dependency indicates the method could not be performed because the requested action depended on another action and that action failed.

RFC 4918
425

Too Early

HTTP 425 Too Early indicates the server is unwilling to risk processing a request that might be replayed.

RFC 8470
426

Upgrade Required

HTTP 426 Upgrade Required indicates the server refuses to perform the request using the current protocol but might after the client upgrades.

RFC 9110
428

Precondition Required

HTTP 428 Precondition Required means the server refuses to process the request because it lacks a conditional header (If-Match, If-None-Match, or If-Unmodified-Since).

RFC 6585
429

Too Many Requests

HTTP 429 Too Many Requests indicates the user has sent too many requests in a given time period.

RFC 6585
431

Request Header Fields Too Large

HTTP 431 Request Header Fields Too Large indicates the server refuses to process the request because its header fields are too large.

RFC 6585
451

Unavailable For Legal Reasons

HTTP 451 Unavailable For Legal Reasons indicates the server is denying access to a resource as a consequence of a legal demand.

RFC 7725
508

Loop Detected

HTTP 508 Loop Detected means the server terminated the operation because it encountered an infinite loop while processing a request with Depth: infinity.

RFC 5842

5xx Server Error

Server failed to fulfill a valid request
500

Internal Server Error

HTTP 500 Internal Server Error indicates the server encountered an unexpected condition that prevented it from fulfilling the request.

RFC 9110
501

Not Implemented

HTTP 501 Not Implemented indicates the server does not support the functionality required to fulfill the request.

RFC 9110
502

Bad Gateway

HTTP 502 Bad Gateway indicates the server, while acting as a gateway or proxy, received an invalid response from an inbound upstream server.

RFC 9110
503

Service Unavailable

HTTP 503 Service Unavailable indicates the server is temporarily unable to handle the request due to overload or scheduled maintenance.

RFC 9110
504

Gateway Timeout

HTTP 504 Gateway Timeout indicates the server, acting as a gateway or proxy, did not receive a timely response from the upstream server needed to complete the request.

RFC 9110
505

HTTP Version Not Supported

HTTP 505 HTTP Version Not Supported indicates the server does not support the major version of HTTP used in the request.

RFC 9110
506

Variant Also Negotiates

HTTP 506 Variant Also Negotiates means the server's chosen variant is itself configured to engage in transparent content negotiation, creating an infinite negotiation loop.

RFC 2295
507

Insufficient Storage

HTTP 507 Insufficient Storage indicates the server cannot store the representation needed to complete the request.

RFC 4918
510

Not Extended

HTTP 510 Not Extended indicates the request lacks required extension declarations to access the resource.

RFC 2774
511

Network Authentication Required

HTTP 511 Network Authentication Required indicates the client needs to authenticate to gain network access.

RFC 6585