HTTP Status Codes Catalog
A comprehensive reference of HTTP status codes, explaining when to use them in REST APIs and mapping them to concrete error schemas.
Informational (1xx)
Success (2xx)
HTTP 200
OKThe request has succeeded. The response payload contains the requested resource representation.
HTTP 201
CreatedThe request has been fulfilled and has resulted in a new resource being created.
HTTP 202
AcceptedThe request has been accepted for processing, but the processing has not been completed.
HTTP 203
Non-Authoritative InformationThe server is a transforming proxy that received a 200 OK from its origin but is returning a modified payload.
HTTP 204
No ContentThe request was successful, but the response body is intentionally empty.
HTTP 205
Reset ContentThe server fulfilled the request and desires that the user agent reset the document view.
HTTP 206
Partial ContentThe server is delivering only part of the resource due to a Range header sent by the client.
HTTP 207
Multi-StatusThe response body contains multiple independent status codes for a batch of sub-operations.
HTTP 208
Already ReportedUsed inside a 207 Multi-Status response to avoid repeatedly enumerating the same bound resource.
HTTP 226
IM UsedThe server has fulfilled a request for the resource and the response represents the result of applying one or more instance manipulations.
Redirection (3xx)
HTTP 300
Multiple ChoicesThe request has more than one possible response and the user agent or user should choose one.
HTTP 301
Moved PermanentlyThe requested resource has been assigned a new permanent URI and future references should use it.
HTTP 302
FoundThe requested resource resides temporarily under a different URI.
HTTP 303
See OtherDirects the client to get the requested resource at another URI using a GET request.
HTTP 304
Not ModifiedInstructs the client that the cached version of the resource is still valid.
HTTP 305
Use ProxyDeprecated. Indicated that the requested resource had to be accessed through the proxy given in the response.
HTTP 306
UnusedReserved. Formerly defined as "Switch Proxy" in an early draft, this code was never used and is no longer part of the standard beyond being reserved.
HTTP 307
Temporary RedirectThe resource resides temporarily under a different URI. Method must not be changed.
HTTP 308
Permanent RedirectThe resource has been permanently moved. Method must not be changed.
Client Errors (4xx)
HTTP 400
Bad RequestThe server cannot process the request due to client error (e.g., malformed syntax, invalid framing).
HTTP 401
UnauthorizedThe request lacks valid authentication credentials. The client must authenticate.
HTTP 402
Payment RequiredReserved for future use. Used in modern APIs to indicate subscription limits or billing issues.
HTTP 403
ForbiddenThe client is authenticated but does not have access rights to the content.
HTTP 404
Not FoundThe server cannot find the requested resource or URI route.
HTTP 405
Method Not AllowedThe requested URI exists, but the HTTP method used is not supported.
HTTP 406
Not AcceptableThe server cannot produce a response matching the Accept headers sent by the client.
HTTP 407
Proxy Authentication RequiredThe client must first authenticate itself with the proxy server.
HTTP 408
Request TimeoutThe server timed out waiting for the client to complete the request.
HTTP 409
ConflictThe request conflicts with the current state of the target resource.
HTTP 410
GoneThe resource is permanently deleted and has no redirect address.
HTTP 411
Length RequiredThe server refuses to accept the request without a defined Content-Length header.
HTTP 412
Precondition FailedOne or more preconditions in the request headers evaluated to false.
HTTP 413
Content Too LargeThe request body size exceeds the maximum limit allowed by the server.
HTTP 414
URI Too LongThe URI requested by the client is longer than the server is willing to interpret.
HTTP 415
Unsupported Media TypeThe request payload media format is not supported by the server.
HTTP 416
Range Not SatisfiableThe requested byte range cannot be satisfied by the server.
HTTP 417
Expectation FailedThe server cannot meet the requirements of the Expect request header.
HTTP 418
I'm a teapotReturned by hyper text coffee pot control protocol clients.
HTTP 421
Misdirected RequestThe request was directed at a server that is not able to produce a response.
HTTP 422
Unprocessable EntityThe request body was syntactically correct but failed semantic business rules validation.
HTTP 423
LockedThe resource that is being accessed is locked.
HTTP 424
Failed DependencyThe request failed because it depended on another action that failed.
HTTP 425
Too EarlyThe server is unwilling to risk processing a request that might be replayed.
HTTP 426
Upgrade RequiredThe server refuses to perform the request using the current protocol.
HTTP 428
Precondition RequiredThe origin server requires the request to be conditional.
HTTP 429
Too Many RequestsThe user has sent too many requests in a given amount of time.
HTTP 431
Request Header Fields Too LargeThe server refuses to process the request because header fields are too large.
HTTP 451
Unavailable For Legal ReasonsThe server operator has received a legal demand to deny access to the resource.
Server Errors (5xx)
HTTP 500
Internal Server ErrorThe server encountered an unexpected condition that prevented it from fulfilling the request.
HTTP 501
Not ImplementedThe server does not support the functionality required to fulfill the request.
HTTP 502
Bad GatewayAn upstream server returned an invalid response to the gateway proxy.
HTTP 503
Service UnavailableThe server is temporarily down or overloaded. The client should retry.
HTTP 504
Gateway TimeoutThe upstream server failed to send a timely response to the gateway proxy.
HTTP 505
HTTP Version Not SupportedThe server does not support the HTTP protocol version used in the request.
HTTP 506
Variant Also NegotiatesContent negotiation for the request results in a circular reference.
HTTP 507
Insufficient StorageThe server is unable to store the representation needed to complete the request.
HTTP 508
Loop DetectedThe server terminated the operation because it detected an infinite loop.
HTTP 510
Not ExtendedFurther extensions to the request are required for the server to fulfill it.
HTTP 511
Network Authentication RequiredThe client needs to authenticate to gain network access.