The Zerion API uses standard HTTP status codes and returns structured error responses. This page covers what to expect and how to handle errors gracefully.Documentation Index
Fetch the complete documentation index at: https://developers.zerion.io/llms.txt
Use this file to discover all available pages before exploring further.
Error response format
All errors return a JSON object with anerrors array:
HTTP status codes
| Status | Meaning | When it happens |
|---|---|---|
200 | Success | Request completed successfully |
400 | Bad Request | Malformed parameters — check filter values, missing required fields, or invalid formats |
401 | Unauthorized | Missing or invalid API key |
404 | Not Found | The requested resource doesn’t exist (single-resource endpoints only) |
429 | Too Many Requests | Rate limit exceeded |
500 | Server Error | Unexpected error on Zerion’s side — safe to retry with backoff |
400 — Bad Request
Returned when query parameters are malformed or invalid. Check thedetail field for specifics.
- Invalid
filter[chain_ids]value (e.g., a chain ID that doesn’t exist) page[size]outside the allowed range (the maximum varies by endpoint)- Missing required parameters (e.g.,
filter[references]on the NFTs endpoint) - Malformed
filter[min_mined_at]timestamp (must be exactly 13 digits, in milliseconds)
401 — Unauthorized
Returned when the API key is missing, invalid, or incorrectly encoded.- Missing
Authorizationheader - API key not Base64-encoded correctly — remember to append a colon:
base64("your_key:") - Expired or revoked API key
404 — Not Found
Returned on single-resource endpoints when the ID doesn’t match any record./v1/fungibles/{fungible_id} or /v1/nfts/{nft_id}. List endpoints return an empty data array instead of a 404.
429 — Too Many Requests
Returned when you exceed your plan’s rate limit.500 — Server Error
Returned when something unexpected goes wrong on Zerion’s side.Best practices
- Retry on
429and500only. Do not retry400or401— these require fixing the request itself. - Use exponential backoff. When retrying, increase the delay between attempts exponentially (e.g., 1s, 2s, 4s) to avoid overwhelming the API.
- Validate parameters before sending. Check that
page[size]is within the endpoint’s allowed range, timestamps are 13-digit milliseconds, and chain IDs match the supported chains. This avoids unnecessary400errors. - Use webhooks instead of polling. If you need to monitor wallet activity, use transaction subscriptions instead of polling. This reduces API usage and gives you faster notifications.