Skip to main content
HTTP 403 · type permission. The key carries a monthly_cap_usd, and settled spend this calendar month (UTC) has reached it — or this request’s reservation would push past it. Caps are permissions, not rates: the refusal happens at reservation time, before anything runs. Nothing was charged.

The shape

How to fix

  • Raise the key’s monthly cap in the dashboard, if you own that decision — or wait: the window is the calendar month in UTC, so it resets at 00:00 UTC on the 1st.
  • If this key belongs to one workload among several, mint separate keys with separate caps — the cap is per key, which is what makes it a budget boundary you can hand out.
  • Audit where the month went: GET /v1/usage?key=key_… pages the ledger, every settle citing the run whose signed receipts justify it.

Reproduce it

Set a throwaway key’s monthly cap to less than you’ve already spent with it this month (dashboard → Keys), then make any spending POST: