HTTP Status Codes
DeveloperComplete reference for HTTP response codes
65 status codes
- 100
ContinueRFC 9110
Headers received; the client should send the request body.
- 101
Switching ProtocolsRFC 9110
Server agrees to switch protocol, e.g. to WebSocket via Upgrade.
- 102
ProcessingRFC 2518
WebDAV: request received and still being processed.
- 103
Early HintsRFC 8297
Preload hints (Link headers) sent before the final response.
- 200
OKRFC 9110
Standard success. Body depends on the method.
- 201
CreatedRFC 9110
A new resource was created; its URL is usually in the Location header.
- 202
AcceptedRFC 9110
Request accepted for asynchronous processing that hasn't finished.
- 203
Non-Authoritative InformationRFC 9110
Payload was modified by a transforming proxy.
- 204
No ContentRFC 9110
Success with no body — common for DELETE and PUT.
- 205
Reset ContentRFC 9110
Success; the client should reset the document view (e.g. clear a form).
- 206
Partial ContentRFC 9110
Only the requested byte range is returned (Range header, video seeking, resumable downloads).
- 207
Multi-StatusRFC 4918
WebDAV: body contains multiple status codes for sub-requests.
- 208
Already ReportedRFC 5842
WebDAV: members already listed earlier in the response.
- 226
IM UsedRFC 3229
Response is the result of instance manipulations (delta encoding).
- 300
Multiple ChoicesRFC 9110
Several representations are available; the client should choose.
- 301
Moved PermanentlyRFC 9110
Permanent redirect. Search engines transfer ranking. Clients may change POST to GET.
- 302
FoundRFC 9110
Temporary redirect. Clients may change POST to GET.
- 303
See OtherRFC 9110
Redirect to another URL with GET — typical after a form POST.
- 304
Not ModifiedRFC 9110
Cached copy is still valid (If-None-Match / If-Modified-Since). No body.
- 307
Temporary RedirectRFC 9110
Temporary redirect that keeps the method and body.
- 308
Permanent RedirectRFC 9110
Permanent redirect that keeps the method and body.
- 400
Bad RequestRFC 9110
Malformed syntax, invalid framing or failed validation.
- 401
UnauthorizedRFC 9110
Authentication is missing or invalid. Should include WWW-Authenticate.
- 402
Payment RequiredRFC 9110
Reserved; used by some APIs for billing or quota issues.
- 403
ForbiddenRFC 9110
Authenticated but not allowed. Re-authenticating won't help.
- 404
Not FoundRFC 9110
No resource at this URL (or the server hides that it exists).
- 405
Method Not AllowedRFC 9110
The method isn't supported here. Must include an Allow header.
- 406
Not AcceptableRFC 9110
Nothing matches the Accept* headers sent by the client.
- 407
Proxy Authentication RequiredRFC 9110
Authenticate with the proxy first.
- 408
Request TimeoutRFC 9110
The server gave up waiting for the client to finish the request.
- 409
ConflictRFC 9110
Conflicts with the current state — edit conflicts, duplicate keys.
- 410
GoneRFC 9110
Permanently removed with no forwarding address. Stronger than 404 for SEO.
- 411
Length RequiredRFC 9110
A Content-Length header is required.
- 412
Precondition FailedRFC 9110
A conditional header (If-Match, If-Unmodified-Since) didn't match.
- 413
Content Too LargeRFC 9110
Request body exceeds the server's limit.
- 414
URI Too LongRFC 9110
The URL is longer than the server will process.
- 415
Unsupported Media TypeRFC 9110
The Content-Type of the body isn't supported.
- 416
Range Not SatisfiableRFC 9110
The requested byte range is outside the resource.
- 417
Expectation FailedRFC 9110
The Expect header can't be met.
- 418
I'm a teapotRFC 2324
April Fools' joke from HTCPCP; sometimes used to refuse bots.
- 421
Misdirected RequestRFC 9110
Sent to a server that can't produce a response for this host (HTTP/2 connection reuse).
- 422
Unprocessable ContentRFC 9110
Well-formed but semantically invalid — common for validation errors in APIs.
- 423
LockedRFC 4918
WebDAV: the resource is locked.
- 424
Failed DependencyRFC 4918
WebDAV: failed because a previous request failed.
- 425
Too EarlyRFC 8470
Server won't process a request that might be replayed (TLS early data).
- 426
Upgrade RequiredRFC 9110
Client must switch to another protocol (see Upgrade header).
- 428
Precondition RequiredRFC 6585
Request must be conditional to avoid lost updates.
- 429
Too Many RequestsRFC 6585
Rate limited. Check the Retry-After header.
- 431
Request Header Fields Too LargeRFC 6585
Headers (often cookies) are too large.
- 451
Unavailable For Legal ReasonsRFC 7725
Blocked for legal reasons, e.g. censorship or a court order.
- 499
Client Closed Requestnon-standard
nginx: the client closed the connection before the response.
- 500
Internal Server ErrorRFC 9110
Generic server failure — an unhandled exception.
- 501
Not ImplementedRFC 9110
The server doesn't support the functionality required.
- 502
Bad GatewayRFC 9110
A proxy or gateway got an invalid response from the upstream server.
- 503
Service UnavailableRFC 9110
Overloaded or down for maintenance. May include Retry-After.
- 504
Gateway TimeoutRFC 9110
A proxy or gateway didn't get an upstream response in time.
- 505
HTTP Version Not SupportedRFC 9110
The HTTP version used isn't supported.
- 506
Variant Also NegotiatesRFC 2295
Content negotiation configuration error.
- 507
Insufficient StorageRFC 4918
WebDAV: the server can't store the representation.
- 508
Loop DetectedRFC 5842
WebDAV: infinite loop detected.
- 511
Network Authentication RequiredRFC 6585
Log in to the network first (captive portal).
- 520
Web Server Returned an Unknown Errornon-standard
Cloudflare: origin returned an empty or unexpected response.
- 521
Web Server Is Downnon-standard
Cloudflare: origin refused the connection.
- 522
Connection Timed Outnon-standard
Cloudflare: TCP connection to the origin timed out.
- 524
A Timeout Occurrednon-standard
Cloudflare: origin didn't send an HTTP response within 100 s.