API Rate Limits

  • Updated

Our API uses rate limits to ensure system stability, fair usage across all tenants, and predictable performance for integrations.

This article explains how rate limits work under the Default Tier, what Impact Levels mean, how bursting behaves, and what to expect when limits are exceeded.

All customers begin at the Default Tier unless they upgrade to Advanced or Premium.

Overview

All new customers begin in the Default Tier. In this tier, rate limits are enforced in two ways:

  1. Impact-Based Limits (per endpoint) —Every API method has an assigned Impact Level (1, 2, or 3), which defines how quickly credits regenerate and how many calls can be made at once.
     
  2. Tenant-Level Limits (all endpoints combined) — All API activity from a tenant counts toward a shared pool: 3,000 calls per minute across all endpoints.

If this limit is reached, no further calls will be processed until the next minute window.

Rate limits apply to all endpoints that partners use to integrate with us. Their purpose is to ensure the application behaves correctly within reasonable and industry-standard limits. As long as partners stay below the defined thresholds, all endpoints will operate normally without throttling.

Impact Levels

Each endpoint is assigned an Impact Level based on how resource-intensive the operation is.

Impact LevelDescription
Impact Level 1Light
Impact Level 2Medium
Impact Level 3Heavy

Each Impact Level defines two values:

  • Credits per second — how quickly your burst bucket refills.
  • Burst capacity — the maximum number of calls you can make at once.

Impact-Based Rate Limits

The table below summarizes the limits for each impact level:

Impact LevelCredits per SecondBurst CapacityWhat This Means
Impact 1 (Light)2/sec30Fastest refill; supports up to 30 immediate calls after idle time
Impact 2 (Medium)1/sec15Steady refill; supports up to 15 calls instantly after idle time
Impact 3 (Heavy)0.10/sec (1 every 10 sec)10Slowest refill; supports up to 10 heavy calls after ~100 seconds idle
Idle time refers to a period where no API calls are made, allowing credits to fully regenerate.

How to interpret these limits

For example, Impact Level 1 refills at 2 credits per second. After 15 seconds of inactivity, you’ve accumulated the full 30 credits and can burst all 30 calls immediately.

Impact Level 3 refills slowly — only 1 credit every 10 seconds — so it takes ~100 seconds to reach the maximum burst of 10 credits.

Tenant-Level Limit (All Endpoints)

In addition to impact-based rules, each tenant has a shared API limit:

3,000 calls per minute (across all endpoints, all impact levels).

This limit applies even if:

  • you still have burst credits, or
  • the endpoint itself allows more calls.

Once the tenant hits the 3,000-call threshold, calls are temporarily throttled until the window resets.

Bursting

Burst limits define the maximum number of calls allowed in a short burst before rate rules apply.

How bursting works:

  • Each second, you gain credits based on the endpoint’s impact level.
  • Credits accumulate in a “bucket” (up to the burst capacity).
  • Calls consume credits (1 call = 1 credit).
  • When the bucket is empty, further calls are throttled until credits regenerate.

For example, if your integration makes no API calls for ~20 seconds:

  • Impact Level 1 → bucket fills to 30 (maximum).
  • Impact Level 3 → bucket fills to 10 after ~100 seconds.

You can then execute that full number of calls instantly.

Respond to Rate Limit Conditions

If your integration exceeds a limit, the API returns a 429 Too Many Requests response. When this happens, your system must read the Retry-After header and wait exactly the amount of time specified before sending another request.

Each API response also includes rate-limit headers to help you manage usage in real time:

  • X-RateLimit-Limit — the total number of calls allowed in the current window : 100.
  • X-RateLimit-Remaining — how many calls you can still make before hitting the limit: 99

Your integration should monitor these headers and adjust request frequency to avoid throttling.

Practical Examples

Example 1: Running Out of Credits

You send 10 Impact Level 3 calls instantly.

  • Burst capacity = 10.
  • All 10 calls succeed.
  • Your credit bucket is now empty.
  • You must wait 10 seconds per credit.
  • After 30 seconds, you have only 3 credits available.

Example 2: Hitting the Tenant Limit

Your system sends 3,000 calls within one minute. Even if:

  • credits remain.
  • or endpoints have room for more calls.
    No additional API calls will be accepted until the next minute begins.

When to Consider an Upgrade

If your integration regularly needs:

  • More than 3,000 calls per minute.
  • Frequent Impact Level 3 operations.
  • Higher bursts.
  • Faster refill rates.

You may need to upgrade to Advanced or Premium tiers.

Summary Table

The table below summarizes the rate-limit behavior for each Impact Level, including how quickly credits refill, how many calls can be made in a burst, and what to expect for both endpoint-level and tenant-level limits.

Impact LevelCredits / SecondBurst CapacityTime to Full BurstNotes
Impact Level 12/sec30~15 secondsLight endpoints; fastest recovery
Impact Level 21/sec15~15 secondsStandard endpoints
Impact Level 30.10/sec10~100 secondsHeavy endpoints; slowest recovery
Tenant Limit3,000/minGlobalShared across all calls