Claude Code routines API trigger vs the Sume Scheduled run API
Claude Code routines' /fire endpoint and Sume's POST /v1/actions/{id}/runs both start a saved agent over HTTP. Compare payload, limits, receipts and webhooks.

Both products let an external system start a saved agent with one HTTP POST, but they return different things. Claude Code routines return a session URL you open in a browser; Sume's Scheduled API returns a run receipt you can poll, cancel, cap by spend and receive as a signed webhook.
This post compares the two on the facts each vendor publishes. The Claude side comes from Anthropic's routines page, read on 2026-10-02, which marks routines as a research preview whose limits and API surface may change. The Sume side comes from Advanced: run a schedule via API and Runs and results.
What does each trigger call look like?
A routine's API trigger is a per-routine /fire URL with a per-routine bearer token, sent with an anthropic-beta header. The body takes one optional freeform text field, and the response carries a session id and session URL.
Sume's trigger is POST /v1/actions/{action_id}/runs with your API key, which needs the actions:read and actions:write scopes. The body takes input (an object), output_schema, generation_spend_cap_usd, on_active_run and communication.webhook_url. A 202 returns a receipt with status_url, result_url and cancel_url.
A practical difference shows up in what you store. A routine's token is scoped to one routine and is shown once, so you keep it in your alerting tool's secret store and rotate it by regenerating. A Sume key is a workspace key with scopes, so one key can start many schedules, and you narrow what it can do through scopes and per-run spend caps rather than one credential per schedule.
Neither page promises a stable contract forever. Anthropic ships /fire under a dated beta header and says request shapes, rate limits and token semantics may change in the research preview. Sume's exact request and response schemas come from the live OpenAPI document at https://api.sume.com/reference/json, and the docs tables are described as a readable summary, not a second schema.
| Question | Claude Code routine | Sume Scheduled (Actions API) |
|---|---|---|
| Credential | Per-routine bearer token, shown once | Workspace API key with actions:read and actions:write |
| Run-specific data | One freeform text string, not parsed | input object, up to 64 properties and 2 MiB |
| What comes back | Session id and session URL | Run receipt with status, result and cancel URLs |
| Replay protection | Not described on the page | Idempotency-Key header, 1-255 characters |
| Overlap control | Not described on the page | on_active_run: skip or reject |
How is caller data kept from acting as instructions?
Both treat caller data as data. Anthropic says the text value arrives wrapped in a block that labels it untrusted and tells Claude not to follow instructions inside it unless the routine's own prompt says to, so the saved prompt has to reference the payload explicitly.
Sume does the same in spirit: input is serialized into a fenced JSON block and handed to the agent as data, and the behavior still comes from the schedule's saved instructions. The practical rule for both is to write the saved instructions so they name the data they expect, and never design a trigger that lets the payload redirect the task.
There is a cost to this design on both sides. Because the payload cannot instruct the agent, a trigger that is supposed to change the task, for example a different goal per call, needs a different saved routine or schedule, or a different surface. In Sume's case that is the point of Agent Completions: the instruction itself is supplied per request, with a required spend cap, and nothing is saved.
What limits and guardrails apply?
Anthropic lists hourly limits per way of starting a run, for example 30 per hour per routine shared by Run now and API fires, and 100 API fires per hour per account. Those are counts, not money; routines draw down subscription usage.
Sume's guardrails are about spend. A schedule has a generation spend cap that defaults to $1.00 per run when unset. A caller can lower it for one run with generation_spend_cap_usd but never raise it, and sending null removes the automation ceiling while wallet balance and org limits still apply. Both are real controls, aimed at different risks: runaway call volume versus runaway generation spend.
How do you know the run finished?
Anthropic's page warns that a green status in the run list only means the session started and exited without an infrastructure error, so you open the transcript to see whether the task succeeded. Sume gives you a status you can branch on (queued, processing, completed, failed, canceled, skipped) and one signed POST when a run completes or fails, if you set a webhook URL.
Two honest limits on the Sume side: a canceled or skipped run never delivers a webhook, so read the status instead; and the Developer API cannot create or edit a schedule, which you do in the dashboard. There is no MCP tool or CLI command for Scheduled runs either.
One more difference is who the run acts as. Anthropic notes that routines belong to an individual account and that commits, pull requests and connector actions appear as that user. Sume runs a schedule as an agent in a fresh thread in your workspace, and the public API reaches only your own schedules for now: team-workspace Actions are not reachable over the public API yet, by either the opaque or the vanity path.
curl -sS -X POST "https://api.sume.com/v1/actions/$ACTION_ID/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"input":{"alert":"checkout latency above threshold"},"generation_spend_cap_usd":0.5}'Which should you pick?
If the work is a coding task against a GitHub repository, a routine is built for it. If the work is media generation that must return a typed result, stay inside a spend cap and notify your backend, the Scheduled API is the closer fit. They are not exclusive: a routine can call out to your own service, which can in turn fire a Sume run. For the wider choice between Sume's three run surfaces, see Agent Completions vs Format vs Scheduled.
Sources
Related posts
More in Agents
- Which model runs a Sume scheduled agent, and how to choose it
A Sume schedule stores its own model beside its instructions and cap. Where to pick it, what Agent Completions accepts, and what the changelog says on defaults.
- hypit Understand order: one probe, then parallel batches
Sume's hypit Understand order: probe alone, then transcribe, boundaries and tiles in one batch, then notes. Which verbs wait on the transcript.
- How an agent picks a video model over hosted MCP
An agent reads video-router_models, picks an id, then calls generate_video with an idempotency_key and waits with jobs_wait. Omit the model for sume/auto.
- Get a typed podcast clip plan from an Agent Completion
Send a transcript and an output_schema to POST /v1/agent/completions, and get back start and end times for each clip, ready for video-trim.
Written by Sume