Errors
The API uses standard HTTP status codes. Error bodies always look like { "detail": "<human-readable message>" }.
| Status | Meaning | When |
|---|---|---|
| 200 | OK | Success |
| 400 | Bad Request | Invalid query parameters (e.g. bad state code, bad window size) |
| 401 | Unauthorized | Missing, invalid, or revoked API key |
| 404 | Not Found | Company, industry, or state not in the dataset |
| 429 | Too Many Requests | Per-hour rate limit OR monthly quota exceeded. Check Retry-After. |
| 500 | Internal Server Error | Our problem. Retry with exponential backoff; contact support if persistent. |
| 503 | Service Unavailable | Rate-limit service unreachable. Retry after a few seconds. |
Retry policy
For 429 and 503, retry with exponential backoff (e.g. 1s, 2s, 4s) up to 4 attempts. For 401, do NOT retry — fix the key.