Error Handling
HTTP Status Codes
The API uses standard HTTP status codes to indicate success or failure:
| Code | Name | Description |
|---|---|---|
| 200 | OK | Request successful |
| 201 | Created | Resource created successfully |
| 400 | Bad Request | Invalid request data or validation error |
| 401 | Unauthorized | Authentication required or token invalid |
| 403 | Forbidden | Access denied - insufficient permissions |
| 404 | Not Found | Resource not found |
| 409 | Conflict | Conflict - resource already exists |
| 500 | Internal Server Error | Internal server error |
Error Response Format
Error responses include an error message and optional details array:
{
"error": "Validation failed",
"details": [
"email: This value is not a valid email address.",
"password: Password must be at least 8 characters."
]
}
Authentication Errors
Invalid Credentials
HTTP/1.1 401 Unauthorized
{
"code": 401,
"message": "Invalid credentials."
}
Expired Token
HTTP/1.1 401 Unauthorized
{
"code": 401,
"message": "Expired JWT Token"
}
Missing Token
HTTP/1.1 401 Unauthorized
{
"code": 401,
"message": "JWT Token not found"
}
Validation Errors
When validation fails, the response includes detailed error messages for each field:
Example validation error
HTTP/1.1 400 Bad Request
{
"error": "Validation failed",
"details": [
"name: This value should not be blank.",
"email: This value is not a valid email address.",
"password: Password must contain at least one uppercase letter."
]
}