API spend limit: can you set a monthly budget on Sume?

Sume's docs describe no monthly spend limit. The controls they do describe are the wallet balance, a per-run spend cap, and plan concurrency.

5 min readSume
All posts

No: the Sume docs describe no monthly or account-wide spend limit setting. The limits they describe work at other levels: the workspace's spendable balance, a spend cap on each run, and plan-based concurrency. A monthly budget is something you enforce in your own code by reading usage and balance.

This comes from Format API errors, Create a Format run, Agent Completions and Generation admission, read 2026-09-29.

Which spend controls does Sume document?

Four, and they bound different things. None of them is a calendar-month ceiling.

From Format API errors, Generation admission and Agent Completions, read 2026-09-29.
ControlWhat it boundsWhen it bites
Wallet balanceSpendable USD balance of the key's workspaceA submit fails with 402 insufficient_credits before provider work starts
Per-run spend capOne Format, Action or Agent runDuring the run; a Format run that hits it ends failed
Generation concurrencyPaid jobs in processing at onceExtra valid jobs wait as queued
Queue capacityAccepted jobs not yet processingNew paid submits fail with 429 queue_full

How does a per-run spend cap work?

On a Format run, generation_spend_cap_usd names that run's ceiling, up to the $500 platform maximum. Send nothing and the run inherits the Format's cap; send null and it takes the $500 maximum. 0 or a value above 500 is a 400.

On an Agent Completion the cap is required. It has no default, and omitting it returns 400 invalid_request. The docs call the cap the substitute for the interactive spend-approval prompt that a backend caller does not get. The best-practices page says to treat a missing cap as a client bug. For the cap mechanics, see the spend-cap post.

How do I enforce a monthly budget myself?

Read GET /v1/balance before you submit a batch, and stop when the balance is under your floor. The response is USD-denominated, and available_amount_usd_cents is the spendable amount. For actual spend, add up the debited_usd of the runs you started, or read the usage ledger as in the per-run cost post.

BAL=$(curl -sS https://api.sume.com/v1/balance \
  -H "Authorization: Bearer $SUME_API_KEY" \
  | jq -r '.data.balance.available_amount_usd_cents')

if [ "$BAL" -lt 5000 ]; then
  echo "balance low: $BAL cents" >&2
  exit 1
fi

Does topping up the wallet raise other limits?

No. Generation concurrency is plan-only, and prepaid top-ups do not raise it. Top-ups are dashboard operations: the public API has balance and usage reads, not a top-up call. A manual top-up is Stripe-backed, and the usage ledger can show it afterwards.

What does the wallet alone not do?

It stops a submit only when the estimated cost cannot be reserved. It does not stop a single run from using a large share of a balance, which is why the per-run cap exists. It also does not warn you as it drains; the pages checked describe no low-balance alert, so poll the balance yourself.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume