x402 upto vs exact: how each maps to a Sume spend cap
Apify's x402 upto charges actual usage up to an allowance; exact takes a fixed $1.00 deposit and refunds the rest. Sume's analogue is a per-call spend cap.

In Apify's x402 setup, upto sets an allowance and charges what the run actually used, while exact takes a fixed $1.00 deposit and refunds the unused balance. Sume has no on-chain payment step; the closest controls are max_spend_usd on a paid MCP call and the required generation_spend_cap_usd on an Agent Completion.
The details come from Apify's launch post, published June 30, 2026, which describes more than 20,000 Actors settling in USDC on Base. Its own warning is worth repeating: treat an agent wallet like a low-balance hot wallet.
Side by side
| Model | How the limit works | Source |
|---|---|---|
x402 upto | Allowance, then charge for actual usage | Apify blog |
x402 exact | Fixed $1.00 deposit, unused balance refunded | Apify blog |
| Sume paid MCP call | Optional max_spend_usd, enforced only when sent; dry_run previews | Sume tools and gates |
| Sume Agent Completion | Required generation_spend_cap_usd; 400 if missing | Sume Agent Completions |
What carries over and what does not
The shared idea is a ceiling set before work starts. The difference is who holds the money. With x402 the agent's wallet signs a payment. With Sume, your account balance pays, and the ceiling is a field in the request, so a leaked key can spend only up to what each call allows plus whatever calls the key may make.
Sume enforces max_spend_usd only when you provide it, which is the opposite of the Agent Completion rule. Make your client library add it by default.
Rules of thumb
- Prefer a cap per call over a large shared allowance.
- Use
dry_runto see the estimate before the real call. - Keep API keys scoped and rotate them; docs list the scopes for Agent Completions.
- Do not mix the models: a 402 from Sume means add credits, not send a payment header.
Sources
Related posts
More in Agents
- Agent Completion or three API calls for a render-trim-caption chain
If the steps are fixed, call the endpoints. If the task changes on every call, an Agent Completion with a required spend cap fits. How the two compare.
- Agent Completions input: JSON data the agent reads from a file
Send caller data in input, not in instruction. Sume writes it to /workspace/inputs/sume-action-input.json and tells the agent to read it as data. curl sample.
- Agent Completions request limits: 100,000 characters, 50 messages
The Sume Agent Completions schema caps instruction at 100,000 characters, messages at 50, and images at 30. Know where each limit is enforced before you send.
- Preflight a paid Sume MCP call: balance_get, then dry_run
Before a paid Sume tool call, an agent should read the balance and run the tool with dry_run=true. Then submit with a fresh idempotency_key and an optional cap.
Written by Sume