TOOLTIKI Lovable tool, really free
Developer Reference

HTTP status codes

52 results

1xx — Informational

CodeNameWhat it meansCopy
100ContinueThe client should carry on with the request body. Sent when the client asked with Expect: 100-continue.
101Switching ProtocolsThe server is changing protocol as asked — this is how a WebSocket handshake completes.
102ProcessingWebDAV: the request is in progress and has not timed out.
103Early HintsPreload hints sent before the real response, so the browser can start fetching assets.

2xx — Success

CodeNameWhat it meansCopy
200OKThe request succeeded. For GET the body is the resource; for POST it is the result.
201CreatedA new resource exists. The Location header should say where.
202AcceptedTaken for processing, not finished. Nothing here promises it will succeed.
203Non-Authoritative InformationA proxy modified the response it got from the origin.
204No ContentSuccess, and deliberately no body. The usual answer to a DELETE.
205Reset ContentSuccess — and the client should clear the form it submitted.
206Partial ContentA range request succeeded. This is what makes resumable downloads and video seeking work.
207Multi-StatusWebDAV: several results in one XML body.

3xx — Redirection

CodeNameWhat it meansCopy
300Multiple ChoicesMore than one representation exists and the client should pick. Almost never used.
301Moved PermanentlyThe resource has a new URL and always will. Search engines transfer ranking to it.
302FoundA temporary redirect. Search engines keep the old URL indexed.
303See OtherGo and GET this other URL — the pattern that stops a refresh resubmitting a form.
304Not ModifiedYour cached copy is current. Sent in reply to If-None-Match or If-Modified-Since.
307Temporary RedirectLike 302, but the method must not change. A POST stays a POST.
308Permanent RedirectLike 301, but the method must not change.

4xx — Client error

CodeNameWhat it meansCopy
400Bad RequestThe server could not parse it. Malformed JSON and bad syntax land here.
401UnauthorizedYou are not authenticated. Despite the name it means unauthenticated, not unauthorised.
402Payment RequiredReserved. Some APIs use it for a quota or billing problem.
403ForbiddenYou are authenticated and still not allowed. Re-authenticating will not help.
404Not FoundNothing at this URL. The server is not saying whether it ever existed.
405Method Not AllowedThe URL exists but not for this verb. The Allow header should list what works.
406Not AcceptableNothing the server can produce matches the Accept header.
407Proxy Authentication RequiredLike 401, but it is the proxy asking.
408Request TimeoutThe client took too long to send the request.
409ConflictThe request clashes with the current state — an edit against a stale version, a duplicate key.
410GoneDeliberately removed and not coming back. Stronger than 404, and search engines drop it faster.
411Length RequiredThe server wants a Content-Length header.
412Precondition FailedAn If-Match or If-Unmodified-Since condition did not hold.
413Content Too LargeThe body is bigger than the server accepts. Often a proxy limit rather than the app.
414URI Too LongThe URL exceeds what the server will parse. Usually a GET that should be a POST.
415Unsupported Media TypeThe Content-Type is not one the endpoint handles.
418I'm a teapotAn April Fools joke from 1998 that browsers and servers still implement.
422Unprocessable ContentThe syntax is fine but the content fails validation. The usual choice for form errors in an API.
425Too EarlyThe server will not risk replaying an early-data request.
426Upgrade RequiredThe client must switch protocol, typically to TLS.
428Precondition RequiredThe server requires a conditional request, to stop lost updates.
429Too Many RequestsRate limited. Retry-After says how long to wait.
431Request Header Fields Too LargeThe headers, often a cookie, are too big.
451Unavailable For Legal ReasonsBlocked by a legal demand. The number is a nod to Fahrenheit 451.

5xx — Server error

CodeNameWhat it meansCopy
500Internal Server ErrorThe server broke and has nothing more specific to say. Check the logs.
501Not ImplementedThe server does not support the method at all.
502Bad GatewayA proxy got an invalid response from upstream. Usually the app behind it is down.
503Service UnavailableTemporarily unable to handle the request — overloaded, or in maintenance.
504Gateway TimeoutA proxy waited for upstream and gave up.
505HTTP Version Not SupportedThe server refuses that HTTP version.
507Insufficient StorageWebDAV: no room to store the representation.
508Loop DetectedWebDAV: an infinite loop while processing.
511Network Authentication RequiredA captive portal — sign in to the wifi before continuing.

A static table · nothing is uploaded

Static reference · grouped by class
Advertisement
320 × 100

Every HTTP status code with a sentence on what it actually tells you, grouped by class: 1xx informational, 2xx success, 3xx redirection, 4xx client error, 5xx server error. Search by number or by name.

How to look up a status code

1 Type the number, or a word from the name.
2 Read what it means in practice, not just what it is called.
3 Check the class — the first digit tells you whose problem it is.

The first digit is the part that matters most: 4xx means the request was wrong and repeating it unchanged will not help, 5xx means the server failed and the same request might work later. That distinction decides whether a client should retry, and getting it wrong in an API is how you end up with clients hammering an endpoint that will never succeed. Three pairs are worth knowing properly. **401 versus 403**: 401 means you have not authenticated and a credential would help; 403 means you have and it does not — despite the name being "Unauthorized", 401 is the unauthenticated one. **301 versus 302**: 301 is permanent and search engines move ranking to the new URL, 302 is temporary and they keep the old one indexed, so choosing 302 for a site migration quietly costs you the migration. **307/308 versus 302/301**: the newer pair guarantee the method does not change, which matters because browsers historically turned a redirected POST into a GET. 422 deserves a mention because it is the one people reach for and then doubt. If the request parsed fine as JSON but a field failed validation, 400 is technically defensible and 422 is more precise — the syntax was right and the content was not. Either is fine; being consistent across your API matters more than which you pick.

Questions

401 means not authenticated — a credential would help. 403 means authenticated and still not allowed, so re-authenticating will not help.

RFC 9110 — HTTP semantics, status codesMDN — HTTP response status codes
Advertisement
300 × 250
Was this tool any good?
INTERNAL SIGNAL ONLY · WE USE IT TO FIND TOOLS WORTH REBUILDING