Skip to main content
HTTP status: 409 · Title: “Spending limit exceeded”

When it fires

The trade would exceed one of the API key’s spending caps:
  • per_trade_limit_usdc — single-trade maximum
  • daily_spend_limit_usdc — rolling 24-hour cumulative maximum across all trades
The detail field specifies which cap fired and by how much.

Why it happens

  • A bot iteration that computed a larger order than expected (e.g., signal scaling factor was off).
  • Cumulative drift over a busy day finally pushed a moderate trade over the daily cap.
  • The cap was lowered (by you or an admin) since you last designed your sizing logic.

How to fix

  • Inspect your key’s caps in Settings → API Keys → Edit.
  • For per-trade overruns: split the trade into smaller chunks under the cap.
  • For daily overruns: wait for the rolling window to clear, or upgrade your tier (see “How to raise the cap” below).
  • Programmatically: every key’s caps are returned in the issuance response — cache them so your client knows the headroom.

How to raise the cap

The cap is set by your API key’s tier. See Rate limits for the full tier matrix and rationale, then:
  • freedeveloper (10× headroom — 1k1k → 10k daily, 500500 → 2.5k per-trade): email support@kash.bot for early access. Self-serve upgrades are planned.
  • developerenterprise (100kdaily,100k daily, 25k per-trade, custom rate limit): contact sales — pricing is contractual.
  • MM-tier counterparty terms (1Mdaily,1M daily, 50k per-trade): contact partnerships — KYB and ToS attestation required; this is a relationship, not a price tier.
The caps are not punitive — they exist for blast-radius and AMM-stability reasons. When you outgrow your tier, the cap is the signal to upgrade, not a problem to work around.