Static reference — filtering happens in your browser.
| Code | Name | Meaning | Source |
|---|---|---|---|
100 |
Continue | Server got the request headers and the client should send the body. Rare to see directly — used in large upload negotiation. | RFC 9110 |
101 |
Switching Protocols | Server agrees to switch protocols per the client's Upgrade header, most often into a WebSocket connection. | RFC 9110 |
102 |
Processing | WebDAV interim response telling the client the server is still working on a long-running request. | RFC 2518 |
103 |
Early Hints | Server sends preload/preconnect hints before the final response so the browser can start fetching assets early. | RFC 8297 |
| Code | Name | Meaning | Source |
|---|---|---|---|
200 |
OK | The request succeeded. The default success code for GET, and common for successful POST/PUT too. | RFC 9110 |
201 |
Created | The request succeeded and a new resource was created, typically returned from a POST with a Location header. | RFC 9110 |
202 |
Accepted | The request was accepted for processing but hasn't finished — common for async or queued jobs. | RFC 9110 |
203 |
Non-Authoritative Information | Success, but the returned metadata came from a proxy or cache rather than the origin server. | RFC 9110 |
204 |
No Content | The request succeeded and there's nothing to return in the body — common after a DELETE or a save-only POST. | RFC 9110 |
205 |
Reset Content | Success — the client should reset the form or view that submitted the request. | RFC 9110 |
206 |
Partial Content | Returns only the byte range the client asked for via a Range header, used for resumable downloads and video seeking. | RFC 9110 |
207 |
Multi-Status | WebDAV response bundling multiple independent status codes for sub-requests into one XML body. | RFC 4918 |
208 |
Already Reported | WebDAV optimization that avoids repeating members already listed earlier in the same multi-status response. | RFC 5842 |
226 |
IM Used | The response is the result of applying one or more instance manipulations (deltas) to the current resource. | RFC 3229 |
| Code | Name | Meaning | Source |
|---|---|---|---|
300 |
Multiple Choices | The requested resource has several representations and there's no way to pick one automatically. | RFC 9110 |
301 |
Moved Permanently | The resource has a new permanent URL. Browsers and crawlers should update their stored or indexed link. | RFC 9110 |
302 |
Found | A temporary redirect. Historically implemented inconsistently around method preservation — prefer 303/307 today. | RFC 9110 |
303 |
See Other | Redirects to a different resource with GET, typically used after a POST to avoid a resubmit-on-refresh prompt. | RFC 9110 |
304 |
Not Modified | Tells a client its cached copy is still valid, saving a full response body via a conditional GET (ETag/If-Modified-Since). | RFC 9110 |
305 |
Use Proxy | Deprecated — told the client to access the resource via a specified proxy. Dropped due to security concerns. | RFC 9110 |
306 |
(Unused) | Reserved but no longer used; defined in an earlier HTTP spec and never assigned a meaning. | RFC 9110 |
307 |
Temporary Redirect | Like a 302, but explicitly preserves the original HTTP method and body on the redirected request. | RFC 9110 |
308 |
Permanent Redirect | Like a 301, but explicitly preserves the original HTTP method and body on the redirected request. | RFC 9110 |
| Code | Name | Meaning | Source |
|---|---|---|---|
400 |
Bad Request | The request is malformed — bad syntax, invalid framing, or something the server simply can't parse. | RFC 9110 |
401 |
Unauthorized | Authentication is required or has failed. Despite the name, it's really about missing or bad credentials. | RFC 9110 |
402 |
Payment Required | Reserved for future use; occasionally repurposed by APIs today to signal a billing or quota problem. | RFC 9110 |
403 |
Forbidden | The server understood the request but refuses to authorize it — the client's identity won't help, unlike 401. | RFC 9110 |
404 |
Not Found | No resource exists at this URL. The most recognizable status code on the web. | RFC 9110 |
405 |
Method Not Allowed | The URL exists but doesn't support the HTTP method used, e.g. a POST to a read-only endpoint. | RFC 9110 |
406 |
Not Acceptable | The server can't produce a response matching the client's Accept headers (content type, language, or encoding). | RFC 9110 |
407 |
Proxy Authentication Required | Like a 401, but authentication is needed with a proxy sitting in front of the origin server. | RFC 9110 |
408 |
Request Timeout | The server gave up waiting for the client to finish sending the request. | RFC 9110 |
409 |
Conflict | The request conflicts with the current state of the resource, e.g. an edit based on stale data. | RFC 9110 |
410 |
Gone | The resource used to exist but was intentionally removed and won't return — a stronger signal than a plain not-found. | RFC 9110 |
411 |
Length Required | The server requires a Content-Length header that the request didn't include. | RFC 9110 |
412 |
Precondition Failed | A conditional request (If-Match/If-Unmodified-Since) failed, usually to prevent overwriting newer data. | RFC 9110 |
413 |
Content Too Large | The request body is larger than the server is willing or able to process. | RFC 9110 |
414 |
URI Too Long | The request URL exceeds what the server is willing to interpret — often from data stuffed into query strings. | RFC 9110 |
415 |
Unsupported Media Type | The request body's Content-Type isn't one the server knows how to handle. | RFC 9110 |
416 |
Range Not Satisfiable | The Range header requested bytes outside what the resource actually contains. | RFC 9110 |
417 |
Expectation Failed | The server can't meet the requirement given in the request's Expect header. | RFC 9110 |
418 |
I'm a teapot | An April Fools' joke from the Hyper Text Coffee Pot Control Protocol, kept alive as a running teapot Easter egg. | RFC 2324 |
421 |
Misdirected Request | The request was routed to a server that can't produce a response for this scheme-and-host combination. | RFC 9110 |
422 |
Unprocessable Content | The request is syntactically fine but semantically wrong — the classic REST API validation-error code. | RFC 4918 |
423 |
Locked | WebDAV — the target resource is locked, usually by another client's in-progress edit. | RFC 4918 |
424 |
Failed Dependency | WebDAV — the request failed because a prior dependent request in the same batch had already failed. | RFC 4918 |
425 |
Too Early | The server won't risk processing a request that might be replayed, sent over early TLS 1.3 0-RTT data. | RFC 8470 |
426 |
Upgrade Required | The server refuses to continue on the current protocol and wants the client to upgrade, per the Upgrade header. | RFC 9110 |
428 |
Precondition Required | The server wants a conditional request (If-Match, etc.) to avoid the classic lost-update problem. | RFC 6585 |
429 |
Too Many Requests | Rate limiting — the client has sent too many requests in a given window; check the Retry-After header. | RFC 6585 |
431 |
Request Header Fields Too Large | The request's headers, individually or combined, are too large for the server to process. | RFC 6585 |
444 |
No Response | Nginx closed the connection without sending any response, often to malformed or malicious-looking requests. | nginx Unofficial |
449 |
Retry With | IIS/Microsoft extension telling the client to resubmit the request after performing an indicated action. | Microsoft Unofficial |
451 |
Unavailable For Legal Reasons | The resource is withheld due to a legal demand, such as a censorship order or takedown notice. | RFC 7725 |
499 |
Client Closed Request | Nginx-specific — the client closed the connection before the server could finish sending a response. | nginx Unofficial |
| Code | Name | Meaning | Source |
|---|---|---|---|
500 |
Internal Server Error | A generic catch-all for unexpected server-side failures with no more specific code available. | RFC 9110 |
501 |
Not Implemented | The server doesn't support the functionality needed to fulfill the request, such as an unrecognized method. | RFC 9110 |
502 |
Bad Gateway | A server acting as a gateway or proxy got an invalid response from the upstream server it was talking to. | RFC 9110 |
503 |
Service Unavailable | The server is temporarily unable to handle the request — overloaded, or down for maintenance. | RFC 9110 |
504 |
Gateway Timeout | A gateway or proxy didn't get a timely response from the upstream server it depends on. | RFC 9110 |
505 |
HTTP Version Not Supported | The server doesn't support the HTTP protocol version used in the request line. | RFC 9110 |
506 |
Variant Also Negotiates | Server misconfiguration — the chosen variant resource is itself set up for content negotiation, creating a loop. | RFC 2295 |
507 |
Insufficient Storage | WebDAV — the server can't store the representation needed to complete the request. | RFC 4918 |
508 |
Loop Detected | WebDAV — the server detected an infinite loop while processing a request with header Depth: infinity. | RFC 5842 |
509 |
Bandwidth Limit Exceeded | Common on cPanel-hosted sites when a site's bandwidth allocation for the billing period is exhausted. | cPanel Unofficial |
510 |
Not Extended | The server requires further extensions to the request before it can be fulfilled. | RFC 2774 |
511 |
Network Authentication Required | The client needs to authenticate to gain network access, e.g. a captive portal on public Wi-Fi. | RFC 6585 |
520 |
Web Server Returned an Unknown Error | Cloudflare got an unexpected or empty response from the origin server and doesn't know why. | Cloudflare Unofficial |
521 |
Web Server Is Down | Cloudflare couldn't reach the origin server because it refused the connection outright. | Cloudflare Unofficial |
522 |
Connection Timed Out | Cloudflare's connection attempt to the origin server timed out during the TCP handshake. | Cloudflare Unofficial |
523 |
Origin Is Unreachable | Cloudflare couldn't route to the origin server at all — usually a DNS or network reachability issue. | Cloudflare Unofficial |
524 |
A Timeout Occurred | Cloudflare connected to the origin server but it took too long to send a complete response. | Cloudflare Unofficial |
525 |
SSL Handshake Failed | The SSL handshake between Cloudflare and the origin server failed. | Cloudflare Unofficial |
526 |
Invalid SSL Certificate | Cloudflare couldn't validate the origin server's SSL certificate. | Cloudflare Unofficial |
527 |
Railgun Error | Cloudflare's Railgun feature failed to establish a connection to its origin-side listener. | Cloudflare Unofficial |
598 |
Network Read Timeout Error | Unofficial — a proxy's read from the upstream server timed out before it finished responding. | Unofficial Unofficial |
599 |
Network Connect Timeout Error | Unofficial — a proxy's attempt to connect to the upstream server timed out. | Unofficial Unofficial |
No matching status codes.