HTTP Status Codes

A searchable reference for HTTP status codes from 100 to 511 — search by code number, name, or a keyword like "redirect" or "rate limit" to jump straight to the relevant code.

1xx — Informational

100
ContinueThe server received the request headers and the client should proceed to send the request body.
101
Switching ProtocolsThe server is switching protocols as requested by the client (e.g. to WebSocket).
102
ProcessingThe server has received and is processing the request, but no response is available yet (WebDAV).
103
Early HintsUsed to return some response headers before the final HTTP message, e.g. for preloading resources.

2xx — Success

200
OKThe request succeeded. The meaning depends on the HTTP method used.
201
CreatedThe request succeeded and a new resource was created as a result.
202
AcceptedThe request has been received but not yet acted upon; processing may or may not eventually complete.
203
Non-Authoritative InformationThe returned metadata is from a local or third-party copy, not the origin server.
204
No ContentThe request succeeded but there is no content to send in the response body.
205
Reset ContentTells the client to reset the document that sent this request, e.g. clear a form.
206
Partial ContentUsed with range requests to deliver only part of a resource.
207
Multi-StatusConveys information about multiple resources in situations where multiple status codes are appropriate (WebDAV).
208
Already ReportedMembers of a DAV binding have already been enumerated in a previous reply and are not repeated (WebDAV).
226
IM UsedThe server has fulfilled a GET request and the response is a representation of the result of instance-manipulations.

3xx — Redirection

300
Multiple ChoicesThe request has more than one possible response; the user or agent should choose one.
301
Moved PermanentlyThe URL of the requested resource has been changed permanently — use the new URL going forward.
302
FoundThe resource temporarily resides at a different URL; the client should keep using the original URL for future requests.
303
See OtherThe response can be found at another URL using a GET request, regardless of the original method.
304
Not ModifiedUsed for caching — tells the client the response has not changed since the last request.
305
Use ProxyThe requested resource must be accessed through a proxy (deprecated in most specs).
307
Temporary RedirectLike 302 but guarantees the request method and body will not change on the redirected request.
308
Permanent RedirectLike 301 but guarantees the request method and body will not change on the redirected request.

4xx — Client Error

400
Bad RequestThe server cannot process the request due to a client error, e.g. malformed syntax.
401
UnauthorizedAuthentication is required and has failed or has not yet been provided.
402
Payment RequiredReserved for future use — originally intended for digital payment systems.
403
ForbiddenThe client does not have access rights to the content — unlike 401, re-authenticating will not help.
404
Not FoundThe server cannot find the requested resource.
405
Method Not AllowedThe request method is known but not supported by the target resource.
406
Not AcceptableNo content matching the criteria given in the request's Accept headers is available.
407
Proxy Authentication RequiredLike 401 but authentication needs to be done via a proxy first.
408
Request TimeoutThe server timed out waiting for the request.
409
ConflictThe request conflicts with the current state of the target resource.
410
GoneThe requested content has been permanently deleted from the server, with no forwarding address.
411
Length RequiredThe server refuses the request because the Content-Length header was not defined.
412
Precondition FailedOne or more conditions in the request headers is false.
413
Payload Too LargeThe request body is larger than limits defined by the server.
414
URI Too LongThe URI requested by the client is longer than the server is willing to interpret.
415
Unsupported Media TypeThe media format of the requested data is not supported by the server.
416
Range Not SatisfiableThe range specified by the Range header cannot be fulfilled.
417
Expectation FailedThe expectation in the request's Expect header cannot be met by the server.
418
I'm a teapotA humorous April Fools' RFC — some servers still use it deliberately, e.g. to refuse brewing coffee.
421
Misdirected RequestThe request was directed at a server that is not able to produce a response.
422
Unprocessable ContentThe request was well-formed but semantically incorrect, e.g. failed validation (WebDAV).
423
LockedThe resource being accessed is locked (WebDAV).
424
Failed DependencyThe request failed because it depended on another request that failed (WebDAV).
425
Too EarlyThe server is unwilling to process a request that might be replayed.
426
Upgrade RequiredThe server refuses the request using the current protocol but might accept it after an upgrade.
428
Precondition RequiredThe origin server requires the request to be conditional, to prevent lost-update conflicts.
429
Too Many RequestsThe client has sent too many requests in a given time — rate limiting.
431
Request Header Fields Too LargeThe server is unwilling to process the request because its header fields are too large.
451
Unavailable For Legal ReasonsThe requested resource is unavailable due to a legal demand, e.g. a censorship order.

5xx — Server Error

500
Internal Server ErrorThe server encountered a situation it doesn't know how to handle.
501
Not ImplementedThe request method is not supported by the server and cannot be handled.
502
Bad GatewayThe server, acting as a gateway, got an invalid response from an upstream server.
503
Service UnavailableThe server is not ready to handle the request, often due to maintenance or overload.
504
Gateway TimeoutThe server, acting as a gateway, did not get a response in time from an upstream server.
505
HTTP Version Not SupportedThe HTTP version used in the request is not supported by the server.
506
Variant Also NegotiatesThe server has an internal configuration error in transparent content negotiation.
507
Insufficient StorageThe server is unable to store the representation needed to complete the request (WebDAV).
508
Loop DetectedThe server detected an infinite loop while processing the request (WebDAV).
510
Not ExtendedFurther extensions to the request are required for the server to fulfill it.
511
Network Authentication RequiredThe client needs to authenticate to gain network access, e.g. a captive portal.

How to use

  1. Type a status code, its name, or a keyword to filter the list.
  2. Codes are grouped by category: informational, success, redirection, client error, server error.

FAQ

Is this the complete list of HTTP status codes?

It covers every status code registered with IANA that's in common real-world use, including the WebDAV-specific and less common ones — a handful of extremely obscure or deprecated codes are omitted for clarity.

What's the difference between 401 and 403?

401 Unauthorized means authentication is missing or invalid — logging in again could help. 403 Forbidden means the server understood who you are but you don't have permission — re-authenticating won't change the outcome.