Errors and Limits
Error responses
Failed requests return JSON with a structure similar to:
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable message",
"statusCode": 400,
"timestamp": "2026-02-19T00:00:00.000Z",
"path": "/api/v1/...",
"method": "GET"
}
}Use statusCode and message to handle errors in your client.
Common status codes
| Code | Meaning |
|---|---|
| 400 | Bad request — check your payload or parameters. |
| 401 | Unauthorized — missing or invalid auth (JWT or API key). |
| 403 | Forbidden — you don’t have permission for this action. |
| 404 | Not found — resource doesn’t exist or you can’t access it. |
| 409 | Conflict — e.g. duplicate or invalid state. |
| 429 | Too many requests — you’re over the rate limit. |
| 500 | Server error — retry later or contact support. |
Rate limits
The API may apply rate limits to protect the service. If you exceed them, you’ll receive 429 responses. Slow down and retry after the suggested time. For API-key traffic, response headers may indicate your plan and usage so you can stay within limits.
Validation errors
For 400 validation errors, the response may include details about which fields failed. Check the error object or any nested errors array for field-level messages.
Last updated on