HTTP Status Codes Reference

A reference table of HTTP status codes grouped by category, with a jump-to search for a specific code.

1xx — Informational

CodeNameMeaning
100ContinueInitial part of a request was received; the client should continue sending the rest.
101Switching ProtocolsServer is switching protocols as requested, e.g. upgrading to a WebSocket.

2xx — Success

CodeNameMeaning
200OKThe request succeeded; the response body carries the requested representation.
201CreatedThe request succeeded and a new resource was created as a result.
202AcceptedThe request was accepted for processing but hasn't completed yet.
204No ContentThe request succeeded but there's no body to return — common for a successful DELETE.
206Partial ContentReturning only part of a resource, in response to a Range request.

3xx — Redirection

CodeNameMeaning
301Moved PermanentlyThe resource now lives at a new URL permanently; clients and search engines should update their references.
302FoundA temporary redirect — the resource is temporarily at a different URL; the original URL should keep being used going forward.
304Not ModifiedThe cached version the client already has is still valid; no body is sent.
307Temporary RedirectLike 302, but explicitly guarantees the request method and body are preserved on the redirect.
308Permanent RedirectLike 301, but explicitly guarantees the request method and body are preserved on the redirect.

4xx — Client Error

CodeNameMeaning
400Bad RequestThe request is malformed — invalid syntax, bad JSON, missing required data.
401UnauthorizedNo valid authentication credentials were supplied. In a Laravel API using Sanctum, this is the typical response to a missing or expired token.
403ForbiddenThe credentials are valid, but the authenticated user isn't allowed to do this — also common from Sanctum/policy checks on an API once auth succeeds but authorization fails.
404Not FoundNo resource exists at this URL.
422Unprocessable EntityThe request is well-formed but fails validation — Laravel's default status code when validation rules reject the input.
429Too Many RequestsThe client has hit a rate limit and should back off before retrying.

Less common 4xx codes: 405 Method Not Allowed, 406 Not Acceptable, 408 Request Timeout, 409 Conflict, 410 Gone, 413 Payload Too Large, 415 Unsupported Media Type, 418 I'm a Teapot.

5xx — Server Error

CodeNameMeaning
500Internal Server ErrorAn unhandled error occurred on the server — the generic catch-all for "something broke."
502Bad GatewayA proxy (e.g. Nginx) got an invalid response from the upstream app server, such as PHP-FPM.
503Service UnavailableThe server is temporarily unable to handle the request — overloaded, or deliberately down for maintenance.
504Gateway TimeoutA proxy didn't get a response from the upstream server in time.

Less common 5xx codes: 501 Not Implemented, 505 HTTP Version Not Supported, 507 Insufficient Storage.