HTTP Status Codes
Guide: HTTP Status Codes Explained: The Ones You Actually Need
62 status codes
- 100
Continue
The server has received the request headers, and the client should go ahead and send the body.
- 101
Switching Protocols
The server agrees to switch protocols as the client asked, for example to WebSocket.
- 102
Processing
The server has accepted the request and is still working on it (WebDAV).
- 103
Early Hints
Sends headers early so the browser can start preloading resources before the final response.
- 200
OK
The request succeeded. The response body depends on the method used.
- 201
Created
The request succeeded and a new resource was created, usually after a POST or PUT.
- 202
Accepted
The request was accepted for processing, but the work is not finished yet.
- 203
Non-Authoritative Information
The response comes from a proxy or copy, not directly from the origin server.
- 204
No Content
The request succeeded and there is nothing to send back. Common for DELETE and PUT.
- 205
Reset Content
The request succeeded and the client should reset the form or view that sent it.
- 206
Partial Content
The server is sending only part of the resource, as requested with a Range header.
- 207
Multi-Status
Contains several separate results for a batch operation (WebDAV).
- 208
Already Reported
The members of a WebDAV binding were already listed earlier in the response.
- 226
IM Used
The server applied one or more instance manipulations, such as a delta, to the resource.
- 300
Multiple Choices
There are several possible responses and the client has to choose one.
- 301
Moved Permanently
The resource has a new permanent URL. Search engines transfer ranking to the new address.
- 302
Found
The resource is temporarily at a different URL. Keep using the original address in future.
- 303
See Other
Fetch the result from another URL with a GET request, often after a form POST.
- 304
Not Modified
The cached copy is still valid, so no body is sent. Used with conditional requests.
- 305
Use Proxy
The resource must be accessed through a proxy. Deprecated and no longer used.
- 307
Temporary Redirect
Like 302, but the client must repeat the request with the same method and body.
- 308
Permanent Redirect
Like 301, but the client must repeat the request with the same method and body.
- 400
Bad Request
The server could not understand the request because of invalid syntax or parameters.
- 401
Unauthorized
Authentication is required or has failed. The client has not proven who it is.
- 402
Payment Required
Reserved for digital payment systems. Some APIs use it for billing or quota problems.
- 403
Forbidden
The server understood the request but refuses it. Logging in again will not help.
- 404
Not Found
The server cannot find the requested resource. The URL may be wrong or the page removed.
- 405
Method Not Allowed
The HTTP method is not supported for this resource, such as POST to a read-only endpoint.
- 406
Not Acceptable
The server cannot produce a response matching the Accept headers sent by the client.
- 407
Proxy Authentication Required
The client must authenticate with the proxy first.
- 408
Request Timeout
The server gave up waiting for the client to finish sending the request.
- 409
Conflict
The request conflicts with the current state of the resource, such as an edit collision.
- 410
Gone
The resource used to exist and was removed on purpose, with no forwarding address.
- 411
Length Required
The server requires a Content-Length header and the request did not include one.
- 412
Precondition Failed
A condition in the request headers, such as If-Match, was not met.
- 413
Content Too Large
The request body is bigger than the server is willing to accept.
- 414
URI Too Long
The URL is longer than the server will process.
- 415
Unsupported Media Type
The server does not accept the content type of the request body.
- 416
Range Not Satisfiable
The Range header asks for a part of the resource that does not exist.
- 417
Expectation Failed
The server cannot meet the requirements of the Expect request header.
- 418
I’m a teapot
A joke status from an April Fools’ RFC. A teapot refuses to brew coffee.
- 421
Misdirected Request
The request was sent to a server that cannot produce a response for it.
- 422
Unprocessable Content
The request is well formed, but its data fails validation. Common in APIs.
- 423
Locked
The resource being accessed is locked (WebDAV).
- 424
Failed Dependency
The request failed because an earlier request it depended on failed (WebDAV).
- 425
Too Early
The server will not risk processing a request that could be replayed.
- 426
Upgrade Required
The client must switch to a different protocol, named in the Upgrade header.
- 428
Precondition Required
The server requires the request to be conditional, to avoid edit conflicts.
- 429
Too Many Requests
The client has sent too many requests in a given time. Slow down and retry later.
- 431
Request Header Fields Too Large
The request headers are too big, in total or one header on its own.
- 451
Unavailable For Legal Reasons
Access is denied for legal reasons, such as a court order or censorship.
- 500
Internal Server Error
The server hit an unexpected problem and cannot complete the request. A generic catch-all error.
- 501
Not Implemented
The server does not support the functionality needed to fulfil the request.
- 502
Bad Gateway
A gateway or proxy got an invalid response from the server behind it.
- 503
Service Unavailable
The server is down, overloaded or under maintenance. Often temporary.
- 504
Gateway Timeout
A gateway or proxy did not get a response from the upstream server in time.
- 505
HTTP Version Not Supported
The server does not support the HTTP version used in the request.
- 506
Variant Also Negotiates
A server configuration error caused circular content negotiation.
- 507
Insufficient Storage
The server cannot store what is needed to complete the request (WebDAV).
- 508
Loop Detected
The server found an infinite loop while processing the request (WebDAV).
- 510
Not Extended
The server needs further extensions to the request before it can fulfil it.
- 511
Network Authentication Required
The client must log in to the network first, as with a captive Wi-Fi portal.
Nothing you enter or choose here leaves your device. This tool runs in your browser.
How to use
- 1Type a code or a word, such as 404 or redirect, into the search box.
- 2Use the category buttons to see only 2xx, 3xx, 4xx or 5xx codes.
- 3Read the meaning of each status.
- 4Use the codes in your API responses and error handling.
Frequently asked questions
What do the first digits mean?
1xx means informational, 2xx success, 3xx redirection, 4xx a client error and 5xx a server error.
What is the difference between 301 and 302?
301 is a permanent redirect, so browsers and search engines treat the new URL as the real one. 302 is temporary, so the original URL stays the main address.
What is the difference between 401 and 403?
401 means you aren't authenticated: log in or send valid credentials. 403 means the server knows who you are but you aren't allowed to do this.
When should I use 400, 422 or 409?
Use 400 when the request is malformed, 422 when it is well formed but fails validation, and 409 when it conflicts with the current state of the resource, such as a duplicate.
Read the guide
Learn how this works and how to get the most from it.
Developer
HTTP Status Codes Explained: The Ones You Actually Need
What 200, 301, 404, 500 and other HTTP status codes mean, how 401 differs from 403, and which code to return from your API.
2 min read
Related tools
JWT Decoder
Decode a JSON Web Token and check its expiry and signature.
URL Parser & Query Builder
Split a URL into its parts and edit its query parameters.
JSON Formatter & Validator
Prettify, minify and validate JSON, with error line numbers.
IP Subnet Calculator
Calculate network, host range and masks for an IPv4 or IPv6 CIDR.