Example
A customer is on a plan with 1,000 API calls included per month and $1 per 1,000 additional calls. You set a spend limit of 5,000 on theapi_callsfeature. The customer can use up to 6,000 total API calls (1,000 included + 5,000 overage), and is blocked after that.
Prerequisites
Spend limits apply to usage-based features — features with overage pricing that allow usage beyond the included amount. If a feature doesn’t allow overage, spend limits have no effect. You’ll need a plan with a usage-based price on the feature you want to cap:- CLI
- Dashboard
autumn.config.ts
atmn push. Then configure spend limits per customer via the API (see below).Configuring spend limits
Spend limits are set per-customer (or per-entity) via the API, not at the plan level. Update a customer’sbillingControls to add spend limits:
Spend limit fields
| Field | Type | Description |
|---|---|---|
feature_id | string | The feature to apply the spend limit to |
enabled | boolean | Whether the spend limit is active |
overage_limit | number | Maximum overage units allowed beyond the included amount |
The
overage_limit is measured in the same units as the feature’s balance — not in dollars. For example, if your feature is “API calls”, an overage_limit of 5,000 means 5,000 additional API calls beyond the included amount.How it works
- The customer uses a usage-based feature and begins accumulating overage beyond their included amount
- On each
checkortrackcall, Autumn computes total overage across all of the customer’s usage-based entitlements for that feature - If the total overage would exceed the
overage_limit, Autumn blocks the usage —checkreturnsallowed: false, andtrackwill not deduct beyond the limit
Spend limits aggregate overage across all of the customer’s entitlements for a given feature. If a customer has the same feature on multiple plans (e.g., a base plan and an add-on), the total overage across both is compared against the spend limit.
Checking access with spend limits
When a spend limit is configured, thecheck endpoint accounts for it in the allowed response:
Entity-level spend limits
You can also set spend limits on individual entities (users, workspaces, etc.) under a customer. Entity-level spend limits override customer-level limits for that entity.workspace_a to 2,000 overage API calls, regardless of the customer-level spend limit.
Disabling a spend limit
To remove a spend limit, setenabled to false or omit the overageLimit:
Interaction with max purchase (usage limits)
Plans can also have a max purchase limit (also called “usage limit”) set on a plan item. This is a per-entitlement cap configured in the plan editor or CLI, and applies globally to all customers on that plan. When both a spend limit and a max purchase are configured for the same feature, the spend limit takes precedence. The per-entitlement max purchase is not enforced while a spend limit is active.ExampleThis lets you use max purchase as a sensible default for all customers, then selectively raise (or lower) the cap for specific customers using spend limits.
A plan item has a max purchase of 1,000 (so customers can use up to 1,000 overage units). But you set a customer-level spend limit of 5,000 on that feature. The customer can use up to 5,000 overage units — the spend limit overrides the plan-level max purchase for that customer.
Spend limits vs max purchase
| Spend Limits | Max Purchase | |
|---|---|---|
| Configured on | Customer or entity | Plan item (in the plan editor) |
| Scope | Aggregated across all entitlements for a feature | Per-entitlement |
| Set via | Update Customer / Update Entity API | Dashboard or CLI when creating a plan |
| Dynamic | Yes — can be changed at any time per-customer | No — applies to all customers on the plan |
| Precedence | Overrides max purchase when set | Used as default when no spend limit is set |
| Use case | Per-customer overage caps (e.g., enterprise spending controls) | Global safety limits for a plan tier |

