# Spending controls

How spending caps and automatic top-ups behave.

ByteKit has two distinct spending controls: a credit-overage cap and automatic top-ups of your USD balance.

## Credit-overage spending cap

No standard plan is overage-enabled: Starter, Growth and Scale stop at the included credit allowance with 402 `quota_exceeded`, so this cap never applies to them. It applies only to a custom plan arranged with ByteKit that carries an overage agreement.

For a credit-metered request on such a plan, ByteKit compares the calculated overage cost with the account's `max_overage_spend_cents`. When the request would cross that limit, the API returns **HTTP 402** with `spending_cap_reached`.

The current billing page does not expose a self-service control for this account-level overage cap. Contact support if it must be changed.

## Automatic top-ups

The billing page lets an account administrator enable or disable auto-top-up and configure:

- the remaining value, in dollars, below which a top-up is triggered (at least $1);
- the dollar amount each top-up adds to your USD balance ($5 to $1,000); and
- a monthly cap on automatic top-up spending, from $1 to $1,000.

All three are required when auto-top-up is enabled, and the account must have a Stripe customer. Remaining value is your plan's remaining allowance plus your USD balance, priced at your plan's current top-up rate for the resource the request uses (bandwidth or search credits). When it falls below the configured threshold, ByteKit queues a top-up — unless that purchase would take this month's automatic top-up spending past the cap, in which case it is skipped until the next month. An account that has never stored a cap is uncapped, and the API reports its cap as `null`.

Your USD balance never expires, so there is no expiry to configure. See [Top-ups](https://bytekit.com/docs/billing/top-ups) for how the balance is spent and for the rollover rules that apply to plan allowance.