HTTP Status Codes Cheat Sheet
Status codes are grouped by their first digit. Knowing the family is usually enough to figure out what went wrong.
2xx. Success
200 OK | Standard success. |
201 Created | Resource created, return the new URL in Location. |
202 Accepted | Request accepted, processing async. |
204 No Content | Success, no body, common for DELETE. |
206 Partial Content | Range request answered, used for video streaming. |
3xx. Redirects
301 Moved Permanently | Update bookmarks, search engines transfer authority. |
302 Found | Temporary redirect. |
304 Not Modified | Cached version is still good. |
307 Temporary Redirect | Like 302 but keeps the HTTP method. |
308 Permanent Redirect | Like 301 but keeps the HTTP method. |
4xx. Client errors
400 Bad Request | Malformed request, usually validation. |
401 Unauthorized | Missing or invalid auth, log in. |
403 Forbidden | Logged in, but not allowed. |
404 Not Found | Resource doesn't exist. |
405 Method Not Allowed | Endpoint exists, but not for that method. |
409 Conflict | State conflict, e.g. version mismatch. |
410 Gone | Like 404 but permanent, tell crawlers to forget. |
422 Unprocessable Entity | Syntactically valid but semantically wrong. |
429 Too Many Requests | Rate limited, check Retry-After. |
5xx. Server errors
500 Internal Server Error | Generic server crash. |
502 Bad Gateway | Upstream server returned junk. |
503 Service Unavailable | Server overloaded or down for maintenance. |
504 Gateway Timeout | Upstream server didn't respond in time. |