How to Handle Vortex API Errors
Key takeaways
- Always check error_code before consuming data, even on HTTP 200. A 200 with a non-zero error_code means the response contains no valid data.
- Error code 1007 is a per-minute rate limit (resets in ~60 s). Code 1008 is a monthly credit cap. Treat them differently.
- Never retry a 429 immediately. Use exponential backoff so the rate limit has time to reset.
- 401 errors mean a missing or invalid API key. Pass it as the X-CMC_PRO_API_KEY header on every request.
- 403 errors mean your plan does not include this endpoint. Check the pricing page for a plan-to-endpoint map.
The status object
The API uses standard HTTP status codes alongside a status object in every JSON response. When something goes wrong, the status object identifies it precisely.
Always check error_code before consuming data. An HTTP 200 with a non-zero error_code indicates a partial or failed response.
HTTP status codes
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad Request: invalid argument in the request |
| 401 | Unauthorized: missing or invalid API key |
| 402 | Payment Required: overdue balance or unactivated plan |
| 403 | Forbidden: valid key but plan does not include this endpoint |
| 429 | Too Many Requests: rate limit or monthly credit cap exceeded |
| 500 | Internal Server Error: unexpected server-side issue |
Error codes by category
401: Authentication errors
| Error code | Message | Fix |
|---|---|---|
| 1001 | This API Key is invalid | Check the key in your Developer Portal. It may have been regenerated. |
| 1002 | API key missing | Add the X-CMC_PRO_API_KEY header to every request. |
The key must be passed as a header (X-CMC_PRO_API_KEY) or query parameter (CMC_PRO_API_KEY) on every request.
402: Plan errors
| Error code | Message | Fix |
|---|---|---|
| 1003 | Your API Key must be activated | Activate your plan in the Developer Portal billing tab. |
| 1004 | Your API Key's subscription plan has expired | Renew your plan at pro.vortex.com/account/plan. |
403: Permission errors
| Error code | Message | Fix |
|---|---|---|
| 1005 | An API Key is required for this call | This endpoint requires authentication. Add your key. |
| 1006 | Your API Key subscription plan doesn't support this endpoint | Upgrade your plan or use an endpoint on your current tier. |
If you get 403 errors, check the pricing page for a map of which endpoints each plan includes.
429: Rate limit errors
| Error code | Message | Fix |
|---|---|---|
| 1007 | You've exceeded your API Key's HTTP request rate limit | Slow down request frequency and implement backoff. |
| 1008 | You've exceeded your API Key's monthly call credit limit | Upgrade your plan or wait for the monthly reset. |
Rate limits reset every 60 seconds. Monthly credit caps reset at the start of each billing cycle. Both return 429, so use error_code to distinguish them.
400: Request errors
A 400 usually means a typo in a parameter name, an out-of-range value, or a missing required parameter. Read the error_message: it typically identifies the specific field.
Handling 429 with exponential backoff
When you hit a rate limit, do not retry immediately. The limit will still be active. Use exponential backoff to recover automatically.
Each retry waits longer than the last, giving the limit time to reset. This pattern works for both 429 rate-limit errors and 5xx server errors.
Always check the status object
Even when the HTTP status is 200, check the status object before using the data.
Handling 500 errors
Internal server errors are rare but can happen. Treat them like 429s: wait briefly and retry with backoff. If they persist, check the API status dashboard before assuming the problem is on your side.
Common mistakes
- Retrying a 429 immediately. The limit is still active. Wait, then retry with increasing delays.
- Treating all 429s the same. Code 1007 is a per-minute rate limit that resets in seconds. Code 1008 is a monthly cap that will not clear until the billing cycle resets. Check the error_code.
- Ignoring error_code on 200 responses. A 200 with a non-zero error_code means the response is not valid data. Always check first.
Start building with the Vortex API
Sign up for a free API key and get 10,000 credits per month. No credit card required.



