Complete reference for all standard HTTP status codes with descriptions and usage examples.
Continue
The server has received the request headers and the client should proceed.
Use when sending a large request body with Expect: 100-continue header.
Switching Protocols
The requester has asked the server to switch protocols.
Use when upgrading an HTTP connection to WebSocket.
OK
The request has succeeded.
Standard response for successful GET, POST, PUT, or DELETE requests.
Created
The request succeeded and a new resource was created.
Return after a successful POST that creates a new user or record.
Accepted
The request has been received but not yet acted upon.
Use for async operations like queuing a background job.
Non-Authoritative Information
The returned metadata is from a local or third-party copy, not the origin server.
Use when a proxy modifies the response from the upstream server.
No Content
There is no content to send for this request.
Return after a successful DELETE or when a PUT requires no response body.
Reset Content
The server tells the client to reset the document view.
Use after a form submission to tell the browser to clear the form.
Partial Content
The server is delivering only part of the resource due to a range header.
Use for resumable downloads or video streaming with Range requests.
Multi-Status
Multiple statuses are conveyed in the response body (WebDAV).
Use in WebDAV when a single request performs multiple operations.
Already Reported
Members of a DAV binding have already been enumerated.
Use in WebDAV to avoid re-listing members of a collection.
IM Used
The server has fulfilled a GET request and the response is a representation of the delta.
Use with HTTP delta encoding (RFC 3229).
Multiple Choices
The request has more than one possible response.
Use when a resource has multiple representations (e.g. different languages).
Moved Permanently
The URL of the requested resource has been changed permanently.
Use when permanently redirecting old URLs to new ones (e.g. after a site migration).
Found
The URL of the requested resource has been changed temporarily.
Use for temporary redirects, such as during maintenance.
See Other
The server sends this response to direct the client to get the requested resource at another URI via GET.
Use after a POST to redirect the browser to a confirmation page.
Not Modified
This is used for caching purposes. The response has not been modified.
Return when a resource matches ETag or Last-Modified, so clients use their cache.
Temporary Redirect
The server sends this response to direct the client to another URI with the same method.
Use for temporary redirects that must preserve the HTTP method (e.g. POST stays POST).
Permanent Redirect
The resource is now permanently at another URI. The HTTP method must not change.
Use when permanently redirecting a POST endpoint to a new URL.
Bad Request
The server cannot process the request due to a client error.
Return when the request body has invalid JSON or missing required fields.
Unauthorized
The client must authenticate itself to get the requested response.
Return when an API request is made without a valid token or credentials.
Payment Required
Reserved for future use; sometimes used for digital payment requirements.
Use when a user tries to access a feature beyond their subscription plan.
Forbidden
The client does not have access rights to the content.
Return when a logged-in user tries to access an admin-only resource.
Not Found
The server cannot find the requested resource.
Return when a requested record does not exist in the database.
Method Not Allowed
The request method is known by the server but is not supported by the target resource.
Return when a client sends a DELETE request to a read-only endpoint.
Not Acceptable
The server cannot find content matching the criteria in the Accept headers.
Return when the client requests XML but the API only supports JSON.
Proxy Authentication Required
Authentication is needed to be done by a proxy.
Use when a proxy server requires credentials before forwarding the request.
Request Timeout
The server timed out waiting for the request.
Return when a client takes too long to complete a large upload.
Conflict
The request conflicts with the current state of the resource.
Return when a user tries to register with an email address already in use.
Gone
The content has been permanently deleted from the server.
Use when a resource has been intentionally removed and won't return.
Length Required
The server requires the Content-Length header.
Return when the server rejects a request without a Content-Length header.
Precondition Failed
The client has indicated preconditions that the server does not meet.
Return when an If-Match header doesn't match the current ETag.
Content Too Large
The request entity is larger than limits defined by the server.
Return when a file upload exceeds the maximum allowed size.
URI Too Long
The URI requested by the client is longer than the server is willing to interpret.
Return when query string parameters make the URL excessively long.
Unsupported Media Type
The media format of the requested data is not supported by the server.
Return when a client sends XML to an endpoint that only accepts JSON.
Range Not Satisfiable
The range specified in the Range header field cannot be fulfilled.
Return when a client requests bytes beyond the end of a file.
Expectation Failed
The expectation indicated by the Expect header cannot be met.
Return when the server cannot satisfy an Expect: 100-continue request.
I'm a Teapot
The server refuses to brew coffee because it is a teapot.
Easter egg from RFC 2324; sometimes used as a humorous catch-all error.
Misdirected Request
The request was directed at a server that is not able to produce a response.
Return when a request reaches a server that is not configured for the target URI.
Unprocessable Content
The request was well-formed but contains semantic errors.
Return when input data fails business logic validation (e.g. invalid date range).
Locked
The resource that is being accessed is locked (WebDAV).
Return when a WebDAV resource is locked by another user.
Failed Dependency
The request failed due to failure of a previous request (WebDAV).
Return in a WebDAV batch when a dependent operation previously failed.
Too Early
The server is unwilling to risk processing a request that might be replayed.
Return to prevent replay attacks on TLS 0-RTT early data requests.
Upgrade Required
The server refuses to perform the request using the current protocol.
Return when HTTPS is required and the client is using HTTP.
Precondition Required
The origin server requires the request to be conditional.
Return to force clients to use If-Match to avoid lost updates.
Too Many Requests
The user has sent too many requests in a given amount of time (rate limiting).
Return when an API client exceeds its rate limit (e.g. 100 requests/minute).
Request Header Fields Too Large
The server is unwilling to process the request because its header fields are too large.
Return when cookies or custom headers exceed the server's size limit.
Unavailable For Legal Reasons
The user requested a resource that cannot be legally provided.
Return when content is blocked due to GDPR, copyright, or government request.
Internal Server Error
The server has encountered a situation it does not know how to handle.
Return when an unhandled exception occurs in your application code.
Not Implemented
The request method is not supported by the server and cannot be handled.
Return for HTTP methods the server is not designed to support (e.g. PATCH).
Bad Gateway
The server, acting as a gateway, received an invalid response from an upstream server.
Return when a reverse proxy receives a malformed response from an app server.
Service Unavailable
The server is not ready to handle the request — overloaded or down for maintenance.
Return during planned maintenance windows or when the server is overloaded.
Gateway Timeout
The server, acting as a gateway, did not get a response in time from the upstream server.
Return when a proxy times out waiting for a slow backend service.
HTTP Version Not Supported
The HTTP version used in the request is not supported by the server.
Return when a client sends an HTTP/3 request to an HTTP/1.1-only server.
Variant Also Negotiates
The server has an internal configuration error in content negotiation.
Return when a transparent content negotiation loop is detected.
Insufficient Storage
The server is unable to store the representation needed to complete the request (WebDAV).
Return when a WebDAV server runs out of disk space.
Loop Detected
The server detected an infinite loop while processing the request (WebDAV).
Return when a WebDAV COPY or MOVE triggers an infinite loop.
Not Extended
Further extensions to the request are required for the server to fulfill it.
Return when a mandatory HTTP extension is missing from the request.
Network Authentication Required
The client needs to authenticate to gain network access.
Return when a Wi-Fi captive portal requires login before granting internet access.