π API Rate Limits & Overage Policy
Aptly enforces API usage limits to ensure reliability and fairness across all tenants. These limits vary by subscription tier and are monitored on a per-tenant basis.π¦ Plan Tiers & API Limits
| Plan | Monthly API Call Limit | Rate Limit (per Minute) | Description |
|---|---|---|---|
| Essential | 25,000 | 60 calls/minute | Intended for basic integrations. |
| Premium | 100,000 | 300 calls/minute | Ideal for mid-sized organizations. |
| Enterprise | 250,000 | 600 calls/minute | Scalable for enterprise integrations. |
π° API Overage Pricing
| Plan | Overage Fee (per API Call) | Notes |
|---|---|---|
| Essential | $0.005 | Hard cap at 50,000 calls/month. Upgrade required to exceed this. |
| Premium | $0.005 | Billed in 1,000-call blocks once 100k calls/month is exceeded. |
| Enterprise | $0.003 | Billed in 1,000-call blocks after 250k calls/month. |
Example: If a tenant on an Enterprise plan makes 300,000 calls in a month:
- Included: 250,000 calls
- Overage: 50,000 Γ 150/month** β $1,800/year
π¨ Enforcement & Fair Use
- Burst Handling: Short bursts up to 2Γ the per-minute rate are allowed to support sync operations and multi-threaded workflows.
- Rate Limit Breaches: Requests beyond monthly or per-minute limits return a
429 Too Many Requestsresponse, with aRetry-Afterheader indicating when to retry. - Per-Tenant Enforcement: Limits apply per tenant, regardless of how many API keys are issued. Issuing multiple tokens does not increase capacity.
- Real-Time Monitoring: API usage can be monitored from the βAdmin Portal > Integrations > API Usageβ section.
π‘οΈ Authentication & Token Management
- You can issue multiple API keys per tenant to support different integrations.
- All keys share the same cumulative limit based on the subscription tier.
- For authentication details, see API Authentication.
π Retry Strategy
When receiving a429 Too Many Requests response:
- Respect the
Retry-Afterheader (in seconds). - Implement exponential backoff with jitter to prevent synchronized retry loops.
- Example
429response body: