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
Continue
The server has received the request headers and the client should proceed to send the request body.
Switching Protocols
The server is switching protocols as requested by the client (e.g. upgrading to WebSocket).
Processing
The server has received and is processing the request, but no response is available yet.
Early Hints
Used to return some response headers before the final HTTP message, primarily for preloading resources.
2xx Success
OK
The request has succeeded. The meaning depends on the HTTP method used.
Created
The request has been fulfilled and a new resource has been created.
Accepted
The request has been accepted for processing, but processing has not been completed.
Non-Authoritative Information
The returned metadata is not exactly the same as available from the origin server.
No Content
The server successfully processed the request and is not returning any content.
Reset Content
The server successfully processed the request and asks the client to reset the document view.
Partial Content
The server is delivering only part of the resource due to a range header sent by the client.
Multi-Status
The message body contains an XML message with statuses for multiple independent operations.
Already Reported
The members of a DAV binding have already been enumerated in a previous reply and are not repeated.
IM Used
The server has fulfilled a GET request and the response is a representation of one or more instance-manipulations.
3xx Redirection
Multiple Choices
The request has more than one possible response. The user or user agent should choose one.
Moved Permanently
The URL of the requested resource has been changed permanently. The new URL is given in the response.
Found
This response code means the URI of requested resource has been changed temporarily.
See Other
The server sent this response to direct the client to get the requested resource at another URI with a GET request.
Not Modified
Used for caching. The response has not been modified, so the client can continue to use its cached version.
Use Proxy
Defined in a previous version of HTTP. Deprecated due to security concerns.
Temporary Redirect
The server sends this response to direct the client to the same URL with the same HTTP method.
Permanent Redirect
The resource is now permanently located at another URI. Unlike 301, the same HTTP method must be used.
4xx Client Error
Bad Request
The server cannot or will not process the request due to a client error (malformed syntax, invalid framing, etc.).
Unauthorized
Authentication is required and has failed or has not yet been provided.
Payment Required
Reserved for future use. Originally intended for digital payment systems.
Forbidden
The client does not have access rights to the content. Unlike 401, the server knows who you are but refuses access.
Not Found
The server cannot find the requested resource. The URL is not recognized or the resource doesn't exist.
Method Not Allowed
The request method is not supported for the requested resource (e.g. DELETE on a read-only resource).
Not Acceptable
The server cannot produce a response matching the list of acceptable values in the request's headers.
Proxy Authentication Required
Authentication is needed to be done by a proxy before the request is fulfilled.
Request Timeout
The server timed out waiting for the request. The client may repeat the request without modifications.
Conflict
The request conflicts with the current state of the server (e.g. editing conflict in version control).
Gone
The requested content has been permanently deleted from the server with no forwarding address.
Length Required
Server rejected the request because the Content-Length header field is not defined.
Precondition Failed
The client has indicated preconditions in its headers which the server does not meet.
Content Too Large
The request entity is larger than limits defined by the server.
URI Too Long
The URI requested by the client is longer than the server is willing to interpret.
Unsupported Media Type
The media format of the requested data is not supported by the server.
Range Not Satisfiable
The range specified by the Range header field in the request cannot be fulfilled.
Expectation Failed
The expectation indicated by the Expect request header field cannot be met by the server.
I'm a Teapot
The server refuses to brew coffee because it is, permanently, a teapot (RFC 2324 April Fools' joke).
Misdirected Request
The request was directed at a server that is not able to produce a response.
Unprocessable Content
The request was well-formed but could not be followed due to semantic errors (e.g. validation failure).
Locked
The resource that is being accessed is locked.
Failed Dependency
The request failed because it depended on another request that failed.
Too Early
The server is unwilling to risk processing a request that might be replayed.
Upgrade Required
The server refuses to perform the request using the current protocol but is willing to do so after an upgrade.
Precondition Required
The origin server requires the request to be conditional, to prevent lost-update problems.
Too Many Requests
The user has sent too many requests in a given amount of time (rate limiting).
Request Header Fields Too Large
The server is unwilling to process the request because its header fields are too large.
Unavailable For Legal Reasons
The resource cannot be provided due to legal demands (e.g. censorship or government-mandated blocked access).
5xx Server Error
Internal Server Error
The server has encountered a situation it does not know how to handle.
Not Implemented
The request method is not supported by the server and cannot be handled.
Bad Gateway
The server, while acting as a gateway, received an invalid response from the upstream server.
Service Unavailable
The server is not ready to handle the request — commonly due to maintenance or overloading.
Gateway Timeout
The server, acting as a gateway, did not get a response in time from the upstream server.
HTTP Version Not Supported
The HTTP version used in the request is not supported by the server.
Variant Also Negotiates
The chosen variant resource is configured to engage in transparent content negotiation itself.
Insufficient Storage
The server is unable to store the representation needed to complete the request.
Loop Detected
The server detected an infinite loop while processing the request.
Not Extended
Further extensions to the request are required for the server to fulfil it.
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:
| Range | Category | Meaning |
|---|---|---|
| 1xx | Informational | Request received and understood, processing continues |
| 2xx | Success | Request was successfully received, understood, and accepted |
| 3xx | Redirection | Further action must be taken to complete the request |
| 4xx | Client Error | The request contains bad syntax or cannot be fulfilled |
| 5xx | Server Error | The 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.