Error codes
All error responses follow the same JSON structure:
json
1{
2 "statusCode": 404,
3 "error": "Not Found",
4 "message": "Stock XXXX not found"
5}HTTP status codes
| Status | Error | When it occurs |
|---|---|---|
400 Bad Request | Bad Request | A required parameter is missing or invalid |
401 Unauthorized | Unauthorized | X-API-Key header is missing, invalid, or revoked |
404 Not Found | Not Found | The requested resource (e.g. stock symbol) does not exist |
429 Too Many Requests | Too Many Requests | Per-minute or per-day rate limit exceeded |
500 Internal Server Error | Internal Server Error | An unexpected error occurred on our side |
401 scenarios
| Situation | Message |
|---|---|
| No header sent | "Missing X-API-Key header" |
| Key doesn't exist | "Invalid or revoked API key" |
| Key has been revoked | "Invalid or revoked API key" |
429 payload
json
1{
2 "statusCode": 429,
3 "error": "Too Many Requests",
4 "message": "Per-minute rate limit exceeded (20 req/min for free tier)",
5 "retryAfter": 43
6}retryAfter is in seconds.
500 errors
If you consistently receive 500 errors, please check the status page or reach out via the Developer Portal.