Scheduled run cap null: no ceiling, but wallet and limits still bind
Sending generation_spend_cap_usd null drops the automation ceiling for one run. Wallet balance, admission and org limits still apply, and 0 is a 400.

For a scheduled agent run, generation_spend_cap_usd: null means the run has no automation ceiling, which is not the same as no limit at all. Wallet balance, generation admission and organization limits all still apply, and a value of 0 is rejected with a 400.
That is the opposite default from a Format run, where a null cap is documented as a $500 ceiling. Do not carry one rule across to the other.
The four values you can send
The Action API trigger accepts the cap field in the body. A positive number is clamped to the smaller of the request and the Action's own cap, so a request can only lower the ceiling for one run, never raise it.
If the field is left out, the Action's cap applies, and an Action with none set uses $1.00.
| You send | Result |
|---|---|
| A number above 0 | Clamped to min(request, Action cap). Cannot raise the cap. |
| null | No automation ceiling for this run. |
| 0 | 400 invalid_request. |
| A non-number or negative | 400 invalid_request (must be a finite number above 0, or null). |
| Field omitted | The Action's cap applies; the default is $1.00. |
What still stops a null run
With no ceiling, three other limits remain. The workspace wallet must be able to reserve each job, so an empty wallet still fails with an insufficient-balance error. Generation admission still applies: a full queue answers queue_full. And any limit set on the organization or service account still binds.
So null is a statement that the schedule should not self-limit, not a promise that anything goes through. It also removes the early warning: the 402 automation_generation_spend_cap_exceeded can no longer fire for that run, so a runaway plan is stopped only by the wallet.
When to use it
Use null for a run you trust and have sized by hand, for instance a monthly render of a known set of clips. Do not use it on a schedule that takes free-text input, because the input could change what the agent decides to generate.
A cheaper middle path is a high but finite number. It keeps the safety gate and still leaves room for the plan.
curl -sS -X POST "https://api.sume.com/v1/actions/aut_REPLACE/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input":{"batch":"october"},"generation_spend_cap_usd":null}'Limits
The cap measures generation spend only. The agent's own turns bill a separate wallet, so the figure is not the total cost of a run. The usage block on the run is a receipt figure; GET /v1/usage remains the billing record.
Sources
Related posts
More in Agents
- Scheduled Sume agent runs: the $1.00 default cap and min(request, cap)
A Sume schedule saves a spend cap, defaulting to $1.00 when unset. An API trigger can lower a run's cap but never raise it past the saved one.
- script_run budget stop: split the batch and wait outside the script
A Sume script_run budget stop (timeout, call or paid budget) means the script asked for more than allowed. Split it, or return job ids and wait outside.
- script_run on Sume MCP: what the sandbox cannot call, and its budgets
Sume's script_run tool runs JavaScript that calls other tools with await sume.call. It has 5 to 55 second timeouts, call budgets, and no discovery tools.
- Seedance video agent in ChatGPT and Claude: Sume MCP compared
InfoseekAI put a Seedance video agent into ChatGPT and Claude over MCP on Oct 1, 2026. What a hosted MCP server like Sume's gives you instead, and when.
Written by Sume