HTTP Status Codes
Every common HTTP status code from 1xx to 5xx, with its name and what it means — grouped by category.
HTTP status codes report the outcome of a request in three digits. This reference groups the ones you actually see — informational, success, redirects, client errors and server errors — each with a short, plain-English explanation.
2xx — Success
| Code | Name | Meaning |
|---|---|---|
200 | OK | Standard response for a successful request. |
201 | Created | The request succeeded and a new resource was created. |
202 | Accepted | The request was accepted but processing isn't complete. |
204 | No Content | Success, with no response body to return. |
206 | Partial Content | Part of the resource is returned (range request). |
3xx — Redirection
| Code | Name | Meaning |
|---|---|---|
301 | Moved Permanently | The resource has permanently moved to a new URL. |
302 | Found | The resource is temporarily at a different URL. |
303 | See Other | Fetch the resource with a GET at another URL. |
304 | Not Modified | The cached copy is still valid; no body is sent. |
307 | Temporary Redirect | Temporary redirect that preserves the HTTP method. |
308 | Permanent Redirect | Permanent redirect that preserves the HTTP method. |
4xx — Client error
| Code | Name | Meaning |
|---|---|---|
400 | Bad Request | The server can't process a malformed request. |
401 | Unauthorized | Authentication is required or has failed. |
403 | Forbidden | Authenticated, but not allowed to access this resource. |
404 | Not Found | The resource doesn't exist. |
405 | Method Not Allowed | The HTTP method isn't supported for this resource. |
406 | Not Acceptable | Can't produce a response matching the Accept headers. |
408 | Request Timeout | The client took too long to send the request. |
409 | Conflict | The request conflicts with the current state of the resource. |
410 | Gone | The resource has been permanently removed. |
415 | Unsupported Media Type | The request body format isn't supported. |
422 | Unprocessable Entity | Well-formed but semantically invalid (validation failed). |
429 | Too Many Requests | The client has sent too many requests (rate limited). |
5xx — Server error
| Code | Name | Meaning |
|---|---|---|
500 | Internal Server Error | A generic server-side failure. |
501 | Not Implemented | The server doesn't support the requested functionality. |
502 | Bad Gateway | An upstream server returned an invalid response. |
503 | Service Unavailable | The server is temporarily overloaded or down. |
504 | Gateway Timeout | An upstream server didn't respond in time. |
505 | HTTP Version Not Supported | The HTTP version isn't supported. |
Commonly confused, explained
Redirects: 301, 302, 303, 307 or 308?
Two questions decide it. Is the move permanent (301, 308) or temporary (302, 303, 307)? And must the request method stay the same? 307 and 308 keep the method and body, while 301 and 302 let some clients turn POST into GET. 303 explicitly asks for a GET, which suits the Post/Redirect/Get pattern.
401 or 403?
401 means the server does not know who you are: send valid credentials. 403 means it knows who you are and the answer is still no, so authenticating again will not help. Some APIs return 404 instead of 403 to avoid revealing that a resource exists.
Server errors: 500, 502, 503 or 504?
500 is an unexpected failure in the application. 502 means a gateway got an invalid response from the server behind it, 503 means the service says it cannot take requests right now (often with Retry-After), and 504 means the upstream did not answer in time. The code tells you which layer to investigate first.
Success codes for APIs: 200, 201, 202 or 204?
Use 200 when the response carries a result, 201 when a request created a new resource (with a Location header), 202 when work was accepted but is not finished, and 204 when it succeeded and there is nothing to return.
Bad request, validation or rate limit: 400, 422, 429?
400 means the request could not be understood. 422 means it was well-formed but failed validation. 429 means this client sent too many requests and should wait for Retry-After.
Put this to work
Go deeper
More developer references
Cheat sheets and lookups paired with 36+ free, private, browser-based tools.