HTTP Status Code Reference
Complete searchable reference for all HTTP 1xx–5xx status codes with descriptions.
Showing 60 status codes
Continue
The server 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 (WebDAV).
Early Hints
Used to return some response headers before final HTTP message, improving load performance.
OK
The request succeeded. The response depends on the HTTP method used.
Created
The request succeeded and a new resource was created. Typically sent after POST or PUT.
Accepted
The request has been accepted for processing, but has not been completed yet.
Non-Authoritative Information
The response is from a third-party proxy, not the original 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 (range request).
Multi-Status
The response body is an XML message containing multiple status codes (WebDAV).
Already Reported
Members of a DAV binding have already been enumerated in a previous reply (WebDAV).
IM Used
The server has fulfilled a GET request and the response is a representation of one or more instance-manipulations.
Multiple Choices
The request has more than one possible response. The client should choose one.
Moved Permanently
The URL of the requested resource has been permanently changed to the given URL.
Found
The URI of requested resource has been changed temporarily. Future requests should use the same URI.
See Other
The response to the request can be found under another URI using a GET method.
Not Modified
Indicates that the resource has not been modified since the version specified by request headers.
Temporary Redirect
The server sends this response to direct the client to get the requested resource at another URI with same method.
Permanent Redirect
The resource is permanently at another URI, specified in the Location header. Use the same HTTP method.
Bad Request
The server could not understand the request due to invalid syntax.
Unauthorized
Authentication is required and has failed or not been provided.
Payment Required
Reserved for future use. Sometimes used by APIs to indicate a payment-gated feature.
Forbidden
The client does not have access rights to the content — the server refuses to give the requested resource.
Not Found
The server cannot find the requested resource. The URL is not recognized.
Method Not Allowed
The request method is known by the server but is not supported by the target resource.
Not Acceptable
No content that conforms to the criteria given by the user agent can be found.
Proxy Authentication Required
Authentication is needed to be done by a proxy.
Request Timeout
The server would like to shut down this unused connection.
Conflict
The request conflicts with the current state of the server.
Gone
The requested content has been permanently deleted from server with no forwarding address.
Length Required
The server rejected the request because the Content-Length header field is not defined.
Precondition Failed
The server does not meet one of the preconditions that the requester put on the request header fields.
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 the attempt to brew coffee with a teapot. (RFC 2324 April Fools joke, widely implemented.)
Unprocessable Content
The request was well-formed but was unable to be followed due to semantic errors.
Locked
The resource that is being accessed is locked (WebDAV).
Failed Dependency
The request failed because it depended on another request that failed (WebDAV).
Too Early
Indicates that 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.
Precondition Required
The origin server requires the request to be conditional.
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 user agent requested a resource that cannot legally be provided, such as a censored web page.
Internal Server Error
The server encountered an unexpected condition that prevented it from fulfilling the request.
Not Implemented
The request method is not supported by the server and cannot be handled.
Bad Gateway
The server, acting as a gateway, received an invalid response from the upstream server.
Service Unavailable
The server is not ready to handle the request — common causes are maintenance or overload.
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 server has an internal configuration error: transparent content negotiation results in a circular reference.
Insufficient Storage
The server is unable to store the representation needed to complete the request (WebDAV).
Loop Detected
The server detected an infinite loop while processing the request (WebDAV).
Not Extended
Further extensions to the request are required for the server to fulfil it.
Network Authentication Required
Indicates that the client needs to authenticate to gain network access.
How to Use
- 1. Type a code number (e.g., "404"), a name (e.g., "not found"), or a keyword into the search box.
- 2. Use the category filters to narrow results: 1xx (informational), 2xx (success), 3xx (redirect), 4xx (client error), 5xx (server error).
- 3. Each entry shows the code, name, and a plain-English description of when and why it's used.
About HTTP Status Codes
HTTP status codes are three-digit numbers returned by a server in response to every HTTP request. They are grouped into five classes, each indicating a different type of outcome: 1xx for informational responses, 2xx for successes, 3xx for redirects, 4xx for client-side errors, and 5xx for server-side errors.
Every web developer and API designer encounters these codes constantly. Understanding the distinctions — like the difference between 401 (not authenticated) and 403 (not authorized), or 301 (permanent redirect) and 302 (temporary redirect) — is essential for building correct APIs and diagnosing issues quickly.
The codes are standardized by the IETF in RFC 9110 (HTTP Semantics) and various extensions (RFC 4918 for WebDAV, RFC 6585 for additional codes like 429). Some codes like 418 "I'm a Teapot" have become cultural icons of the web.
Our reference covers all standard codes with plain-English explanations, making it easy to look up any code you encounter in server logs, network inspector tabs, or API documentation.
You may also find our JSON Formatter, Regex Tester, and JWT Decoder helpful.
Frequently Asked Questions
What is the difference between 401 and 403?
401 Unauthorized means the request lacks valid authentication credentials — the client is not logged in. 403 Forbidden means the server understands the request and the client is authenticated, but does not have permission to access the resource.
When should an API return 422 vs 400?
400 Bad Request is for syntactically malformed requests (e.g., invalid JSON). 422 Unprocessable Content is for semantically invalid requests — the syntax is correct but the data fails business rules (e.g., a required field is missing or a date is in the past).
What is the difference between 301 and 302?
301 is a permanent redirect — browsers and search engines update their records. 302 is temporary — the original URL should still be used for future requests. Use 301 for SEO-impacting redirects and 302 for temporary maintenance pages.
What does 429 Too Many Requests mean for API users?
429 means you have exceeded the API rate limit. The response usually includes a Retry-After header telling you how long to wait before making another request.
Was this tool helpful?
More Tools
Related Developer Tools
JSON Schema Generator
Meta Tags Generator
JSON Formatter
Regex Tester
You Might Also Like