Tiers and limits
Every Quantis v3 account has a tier. A tier sets two limits: a monthly quota (how many requests you can make in a calendar month) and a rate limit (how many requests you can make per second). See center.quantis.vzla.io for the current tiers and to change yours.
Monthly quota
- The quota belongs to your account, not to a key. All the keys on your account share the same counter.
- Every call counts 1 request, except My Quota, which is free.
- The counter resets on the 1st of each calendar month at 00:00, Caracas time (America/Caracas).
- Some tiers have no monthly quota. On those, My Quota returns
nullformonthly_quota,remainingandusage_percentage.
Check where you stand at any time with My Quota. Its status_level moves from normal to warning at 70%, critical at 90% and exceeded at 100%.
Rate limit
Every tier has a rate limit, shown in the rate_limit field of My Quota as <requests>/<period>, e.g. "60/m". It applies to every call, including My Quota. A request blocked by the rate limit does not use your monthly quota.
Handling 429
Both limits answer with 429 Too Many Requests. Read error.code to tell them apart:
| Error code | What happened | What to do |
|---|---|---|
quota_exceeded | Your account spent its monthly quota | Stop calling until the 1st of next month, or move to a tier with more requests |
throttled | You sent requests faster than your rate limit | Wait the number of seconds in the Retry-After header, then retry |
quota_exceeded
{ "error": { "code": "quota_exceeded", "message": "Monthly quota exceeded. It resets on the 1st of next month." }}Retrying will not help: every call returns the same error until the counter resets. Use reset_at from My Quota to know when.
throttled
HTTP/1.1 429 Too Many RequestsRetry-After: 1{ "error": { "code": "throttled", "message": "Rate limit exceeded", "details": { "retry_after": 1 } }}The wait in seconds is in the Retry-After header and in details.retry_after. Back off like this:
- Wait
Retry-Afterseconds before the next call. - If you get
throttledagain, double the wait each time and cap it at a few seconds. - Space your calls so you stay under your
rate_limitinstead of relying on retries.
Poll smart
The data behind the API does not change every second. USDT rates refresh at most every 60 seconds, BCV rates once a day and bank rates hourly. Polling any endpoint more than once per minute returns the same data and uses your quota for nothing.