This playground answers with 28 different HTTP status codes — not as documentation, but as live endpoints you can call right now. Each page explains what the code means, why you would provoke it deliberately, and which endpoints produce it.
Success
200 OK — The request succeeded and the response carries the representation you asked for. For a GET this is the body; for a PUT or POST it is the result of the operation.
201 Created — A new resource exists as a result of this request. A well-behaved API also sends a Location header pointing at it, and usually the created representation as the body.
202 Accepted — The request was accepted but has not been carried out yet. The work happens asynchronously, and the response tells you where to look for the result.
204 No Content — The request succeeded and there is deliberately no body. Most commonly the answer to a successful DELETE.
206 Partial Content — The response carries only the byte range you asked for with a Range header, described by Content-Range. This is how resumable downloads and media seeking work.
207 Multi-Status — One response carrying several independent outcomes, for a request that operated on more than one resource. Each element has its own status.
Redirection
301 Moved Permanently — The resource has a new URL, given in the Location header, and clients should use it from now on.
302 Found — The resource is temporarily at a different URL. Unlike a 301, the original URL stays authoritative and should still be used for future requests.
304 Not Modified — The answer to a conditional GET whose If-None-Match matched the current ETag: your cached copy is still valid, so no body is sent.
Client error
400 Bad Request — The server could not understand the request — malformed JSON, a missing required field, or a parameter of the wrong type.
401 Unauthorized — Authentication is missing or invalid. Despite the name, this is about identity, not permission — the server does not know who you are.
402 Payment Required — Reserved in the original spec and now used in practice for quota, billing and insufficient-funds conditions.
403 Forbidden — The server knows who you are and is refusing anyway. Authentication succeeded; authorization did not.
404 Not Found — There is no resource at this URL. The server will not say whether there ever was one.
405 Method Not Allowed — The URL exists but not with this method. The response must include an Allow header listing what is permitted.
406 Not Acceptable — The server cannot produce a representation matching your Accept header.
409 Conflict — The request is valid but clashes with the current state — a duplicate, a seat already taken, a state transition that is not allowed from here.
410 Gone — The resource existed and has been permanently removed. Unlike a 404, the server is stating that it will not come back.
412 Precondition Failed — A condition in the request headers was not met — almost always an If-Match ETag that no longer reflects the current state of the resource.
413 Content Too Large — The request body exceeds what the server will accept. Still widely known by its old reason phrase, Payload Too Large.
415 Unsupported Media Type — The body is in a format the endpoint does not accept — usually a Content-Type mismatch.
416 Range Not Satisfiable — The Range header asks for bytes that do not exist — typically an offset past the end of the resource.
418 I'm a Teapot — From the 1998 April Fools' hypertext coffee-pot spec. It is a real, registered code, and a teapot cannot brew coffee.
422 Unprocessable Content — The syntax is fine and the server understood the request, but the content is semantically wrong — a valid date in the past where a future one is required, a transfer that would overdraw an account.
429 Too Many Requests — You are being rate limited. The response should carry Retry-After, and usually X-RateLimit-Limit, -Remaining and -Reset.
Server error
500 Internal Server Error — The server failed and cannot say anything more useful. Nothing about the request needs to be wrong.
503 Service Unavailable — The server is temporarily unable to handle the request — overloaded, or down for maintenance. Often accompanied by Retry-After.
504 Gateway Timeout — An upstream server did not respond in time. The failure is in the chain behind the endpoint, not at the endpoint itself.