400 |
Bad request — missing fields, invalid data, or malformed JSON |
401 |
Unauthorized — no token, invalid token, expired token, or wrong credentials |
403 |
Forbidden — insufficient role or access denied to resource |
404 |
Not found — resource does not exist |
409 |
Conflict — duplicate key or constraint violation (e.g., duplicate name) |
413 |
Payload too large — request exceeds the limit for this endpoint or reverse proxy |
429 |
Too many requests — rate limit exceeded (includes Retry-After: 60 header) |
500 |
Internal server error — unexpected database or server error |