HTTP Status Code Reference

Searchable dictionary of standard HTTP response status codes.

Copy as
89 codes
100
1xx

Continue

The initial part of the request was received; the client should continue sending the request body.

RFC 9110 §15.2.1
101
1xx

Switching Protocols

The server agrees to switch protocols as requested via the Upgrade header (e.g. to WebSocket).

RFC 9110 §15.2.2
102
1xx

Processing

Interim response indicating the server accepted the request but has not completed it. Deprecated.

RFC 2518 (WebDAV)deprecated
103
1xx

Early Hints

Preliminary response used to send Link headers (preload/preconnect) before the final response.

RFC 8297
104
1xx

Upload Resumption Supported

Interim response indicating the server supports resumable uploads (temporary IANA registration).

draft-ietf-httpbis-resumable-upload
200
2xx

OK

The request succeeded. The payload depends on the request method.

Use for: Successful GET/PUT/PATCH with a response body.

RFC 9110 §15.3.1cacheable
201
2xx

Created

The request was fulfilled and resulted in a new resource being created.

Use for: Successful POST/PUT that created a resource; include a Location header.

RFC 9110 §15.3.2
202
2xx

Accepted

The request has been accepted for processing, but processing has not completed.

Use for: Async processing: work queued but not finished.

RFC 9110 §15.3.3
203
2xx

Non-Authoritative Information

The response was modified by a transforming proxy from the origin's 200 response.

RFC 9110 §15.3.4cacheable
204
2xx

No Content

The request succeeded and there is no content to send in the response body.

Use for: Successful DELETE, or PUT/POST with nothing to return.

RFC 9110 §15.3.5cacheable
205
2xx

Reset Content

The request succeeded; the client should reset the document view (e.g. clear a form).

RFC 9110 §15.3.6
206
2xx

Partial Content

The server is delivering only part of the resource due to a Range header.

Use for: Range requests: resumable downloads, video streaming.

RFC 9110 §15.3.7cacheable
207
2xx

Multi-Status

Conveys multiple status codes for multiple independent operations (XML body).

RFC 4918 (WebDAV)
208
2xx

Already Reported

Members of a DAV binding were already enumerated earlier in the same multistatus response.

RFC 5842 (WebDAV)
218
Apache

This Is Fine

Apache with ProxyErrorOverride: allows passing an error body while masking the upstream error.

Unofficial
226
2xx

IM Used

The response is a representation of the result of one or more instance-manipulations (delta encoding).

RFC 3229
300
3xx

Multiple Choices

The target resource has multiple representations; the client should pick one.

RFC 9110 §15.4.1cacheable
301
3xx

Moved Permanently

The resource has been assigned a new permanent URI. Future requests should use it.

Use for: Permanent URL move; method may change to GET. SEO-safe permanent redirect.

RFC 9110 §15.4.2cacheable
302
3xx

Found

The resource resides temporarily under a different URI. Clients often rewrite POST to GET.

Use for: Temporary redirect where legacy method-rewriting to GET is acceptable.

RFC 9110 §15.4.3
303
3xx

See Other

The response can be found at another URI using GET.

Use for: Post/Redirect/Get pattern: redirect after a form POST.

RFC 9110 §15.4.4
304
3xx

Not Modified

The cached representation is still valid; no body is sent.

Use for: Conditional GET with ETag/If-Modified-Since matched.

RFC 9110 §15.4.5cacheable
305
3xx

Use Proxy

The resource must be accessed through a proxy. Deprecated for security reasons.

RFC 9110 §15.4.6deprecated
306
3xx

(Unused)

Reserved. Was 'Switch Proxy' in a draft; no longer used.

RFC 9110 §15.4.7deprecated
307
3xx

Temporary Redirect

Repeat the request at another URI with the same method; the original URI remains canonical.

Use for: Temporary redirect that must preserve the request method and body.

RFC 9110 §15.4.8
308
3xx

Permanent Redirect

Like 301 but the request method and body must not change.

Use for: Permanent move that must preserve the method (e.g. POST endpoints).

RFC 9110 §15.4.9cacheable
400
4xx

Bad Request

The server cannot process the request due to a client error (malformed syntax, invalid framing).

Use for: Malformed syntax, invalid JSON, bad parameters.

RFC 9110 §15.5.1
401
4xx

Unauthorized

Authentication is required and has failed or has not been provided.

Use for: Missing or invalid credentials; send WWW-Authenticate.

RFC 9110 §15.5.2
402
4xx

Payment Required

Reserved for future use; used in practice for quota/billing walls (e.g. API credits exhausted).

RFC 9110 §15.5.3
403
4xx

Forbidden

The server understood the request but refuses to authorize it.

Use for: Authenticated but not allowed; re-authenticating won't help.

RFC 9110 §15.5.4
404
4xx

Not Found

The server cannot find the requested resource.

Use for: Resource doesn't exist, or hide its existence from unauthorized users.

RFC 9110 §15.5.5cacheable
405
4xx

Method Not Allowed

The request method is known but not supported by the target resource.

Use for: Wrong verb on a valid route; include an Allow header.

RFC 9110 §15.5.6cacheable
406
4xx

Not Acceptable

No representation matches the request's proactive content negotiation headers (Accept…).

RFC 9110 §15.5.7
407
4xx

Proxy Authentication Required

Like 401, but authentication is required by a proxy (Proxy-Authenticate).

RFC 9110 §15.5.8
408
4xx

Request Timeout

The server timed out waiting for the complete request and wants to close the idle connection.

RFC 9110 §15.5.9
409
4xx

Conflict

The request conflicts with the current state of the resource.

Use for: Version conflicts, duplicate creation, concurrent edit collisions.

RFC 9110 §15.5.10
410
4xx

Gone

The resource is permanently gone and no forwarding address is known.

Use for: Resource intentionally removed forever (tells crawlers to de-index).

RFC 9110 §15.5.11cacheable
411
4xx

Length Required

The server requires a Content-Length header on the request.

RFC 9110 §15.5.12
412
4xx

Precondition Failed

One or more request preconditions (If-Match, If-Unmodified-Since…) evaluated false.

Use for: Optimistic locking with If-Match/ETag failed.

RFC 9110 §15.5.13
413
4xx

Content Too Large

The request body is larger than the server is willing to process (formerly 'Payload Too Large').

Use for: Upload/body exceeds server limits.

RFC 9110 §15.5.14
414
4xx

URI Too Long

The request URI is longer than the server is willing to interpret.

RFC 9110 §15.5.15cacheable
415
4xx

Unsupported Media Type

The payload format is not supported by the target resource.

Use for: Wrong Content-Type on the request body.

RFC 9110 §15.5.16
416
4xx

Range Not Satisfiable

The Range header cannot be satisfied (e.g. beyond the end of the resource).

RFC 9110 §15.5.17
417
4xx

Expectation Failed

The expectation in the request's Expect header could not be met.

RFC 9110 §15.5.18
418
4xx

I'm a teapot

The server refuses to brew coffee with a teapot. Officially '(Unused)' in RFC 9110.

RFC 2324 (April Fools); reserved in RFC 9110deprecated
419
Laravel

Page Expired

Laravel: CSRF token missing or expired on a form submission.

Unofficial
421
4xx

Misdirected Request

The request was directed at a server unable to produce a response (e.g. wrong SNI on a reused HTTP/2 connection).

RFC 9110 §15.5.20
422
4xx

Unprocessable Content

The server understands the content type and syntax but cannot process the contained instructions.

Use for: Syntactically valid but semantically invalid input (validation errors).

RFC 9110 §15.5.21
423
4xx

Locked

The source or destination resource is locked.

RFC 4918 (WebDAV)
424
4xx

Failed Dependency

The request failed because it depended on another request that failed.

RFC 4918 (WebDAV)
425
4xx

Too Early

The server is unwilling to process a request that might be replayed (TLS early data).

RFC 8470
426
4xx

Upgrade Required

The server refuses to perform the request using the current protocol; upgrade per the Upgrade header.

RFC 9110 §15.5.22
428
4xx

Precondition Required

The origin server requires the request to be conditional.

Use for: Require If-Match to prevent lost-update races.

RFC 6585
429
4xx

Too Many Requests

The user has sent too many requests in a given amount of time.

Use for: Rate limiting; include Retry-After.

RFC 6585
431
4xx

Request Header Fields Too Large

Header fields (individually or collectively) are too large; e.g. oversized cookies.

RFC 6585
440
IIS

Login Time-out

Microsoft IIS: the client's session has expired and must log in again.

Unofficial
444
nginx

No Response

nginx: close the connection without sending a response (logged only, never sent to the client).

Unofficial
449
IIS

Retry With

Microsoft: the request should be retried after performing the appropriate action.

Unofficial
451
4xx

Unavailable For Legal Reasons

Access denied for legal reasons (censorship, DMCA, GDPR territorial blocks).

RFC 7725
460
AWS ELB

Client Closed Connection

AWS load balancer: client closed the connection before the idle timeout elapsed.

Unofficial
463
AWS ELB

Too Many Forwarded IPs

AWS load balancer: X-Forwarded-For header with more than 30 IP addresses.

Unofficial
494
nginx

Request Header Too Large

nginx: the request headers exceed the configured buffer size.

Unofficial
495
nginx

SSL Certificate Error

nginx: invalid client certificate presented.

Unofficial
496
nginx

SSL Certificate Required

nginx: a client certificate is required but was not provided.

Unofficial
497
nginx

HTTP Request Sent to HTTPS Port

nginx: plain HTTP request sent to a port listening for HTTPS.

Unofficial
499
nginx

Client Closed Request

nginx: the client closed the connection while the server was still processing the request.

Unofficial
500
5xx

Internal Server Error

The server encountered an unexpected condition that prevented it from fulfilling the request.

Use for: Unexpected server-side failure; the generic fallback.

RFC 9110 §15.6.1
501
5xx

Not Implemented

The server does not support the functionality required (unrecognized request method).

RFC 9110 §15.6.2cacheable
502
5xx

Bad Gateway

The server, acting as a gateway/proxy, received an invalid response from the upstream server.

Use for: Reverse proxy got an invalid response from upstream.

RFC 9110 §15.6.3
503
5xx

Service Unavailable

The server is temporarily unable to handle the request (overloaded or down for maintenance).

Use for: Overload or maintenance; include Retry-After.

RFC 9110 §15.6.4
504
5xx

Gateway Timeout

The gateway/proxy did not receive a timely response from the upstream server.

Use for: Upstream did not respond in time.

RFC 9110 §15.6.5
505
5xx

HTTP Version Not Supported

The server does not support the HTTP version used in the request.

RFC 9110 §15.6.6
506
5xx

Variant Also Negotiates

Transparent content negotiation results in a circular reference.

RFC 2295
507
5xx

Insufficient Storage

The server cannot store the representation needed to complete the request.

RFC 4918 (WebDAV)
508
5xx

Loop Detected

The server detected an infinite loop while processing the request (Depth: infinity).

RFC 5842 (WebDAV)
509
Apache/cPanel

Bandwidth Limit Exceeded

Apache bw/limited module & cPanel: the account's bandwidth quota has been exceeded.

Unofficial
510
5xx

Not Extended

Further extensions to the request are required. Obsoleted/Historic.

RFC 2774 (Historic)deprecated
511
5xx

Network Authentication Required

The client must authenticate to gain network access (captive portals).

RFC 6585
520
Cloudflare

Web Server Returned an Unknown Error

Cloudflare: the origin returned an empty, unknown, or unexpected response.

Unofficial
521
Cloudflare

Web Server Is Down

Cloudflare: the origin refused the connection.

Unofficial
522
Cloudflare

Connection Timed Out

Cloudflare: TCP handshake with the origin timed out.

Unofficial
523
Cloudflare

Origin Is Unreachable

Cloudflare: the origin is unreachable (DNS/routing problem).

Unofficial
524
Cloudflare

A Timeout Occurred

Cloudflare: the TCP connection succeeded but the origin did not reply in time.

Unofficial
525
Cloudflare

SSL Handshake Failed

Cloudflare: the TLS handshake with the origin failed.

Unofficial
526
Cloudflare

Invalid SSL Certificate

Cloudflare: could not validate the origin's TLS certificate.

Unofficial
529
Qualys

Site Is Overloaded

Qualys SSL Labs: the site cannot process the request right now (overload).

Unofficial
530
Cloudflare

Origin DNS Error

Cloudflare: could not resolve the origin hostname (paired with a 1xxx error code).

Unofficial
561
AWS ELB

Unauthorized

AWS ALB: authentication error from the identity provider during built-in authentication.

Unofficial
598
Proxies

Network Read Timeout Error

Some HTTP proxies: network read timeout behind the proxy.

Unofficial
999
LinkedIn

Request Denied

LinkedIn (and others): non-standard catch-all used to deny scrapers/bots.

Unofficial
Infinio Tools
© 2026 Infinio Labs