HTTP Status Codes Reference
Search HTTP status codes by number or keyword and see what each one means. Covers 1xx to 5xx, including WebDAV codes.
Search HTTP status codes by number or keyword and see what each one means. Covers 1xx to 5xx, including WebDAV codes.
Every HTTP response starts with a status code that tells the client what happened. They are grouped by their first digit: 1xx informational, 2xx success, 3xx redirection, 4xx client error and 5xx server error.
Type a code to read its meaning, or a word such as redirect or timeout to find related codes. Leave it empty to see the full list.
HTTP status codes are defined in RFC 9110, which obsoleted the earlier RFC 7231, and are maintained in the IANA registry. The first digit gives the class, and a client that does not recognise a specific code must treat it like the x00 code of its class. So an unknown 499 is handled like 400. Semantics matter more than the number: 200 means the request succeeded, 201 means a resource was created, 204 means success with no body, and 304 means the cached copy is still valid. Choosing precisely helps caches, browsers, crawlers and API clients behave correctly.
Redirect codes illustrate the subtlety. 301 and 302 allow clients to change a POST into a GET when following the redirect, which is why 307 and 308 were defined to preserve the original method; 308 is the permanent one and 307 the temporary one. Among errors, 400 reports a malformed request, 422 a well formed request with invalid content, 429 too many requests, 502 a bad response from an upstream server, 503 temporary unavailability and 504 an upstream timeout. A 5xx suggests the fault lies with the server, so clients may retry, while most 4xx errors need the request to change first.
401 means the request lacks valid authentication. 403 means the server knows who you are but you are not allowed to do that.
301 is permanent and passes search ranking to the new URL. 302 is temporary.
I'm a teapot, a joke status from an April Fools RFC. Some servers use it to turn away bots.
The standard registered ones. Custom codes some services use are not included.
502 means a gateway received an invalid response from an upstream server, 503 means the service is temporarily unable to handle requests, and 504 means the gateway timed out waiting for the upstream.
400 suits requests that cannot be parsed, such as broken JSON. 422 suits well formed requests whose values fail validation, such as an invalid email field. Many APIs use 400 for both, so stay consistent.