Claude Code routines run hourly at most: use a Sume webhook
A routine's minimum schedule interval is one hour, so a polling loop wastes runs. Submit the Sume job once and let the terminal webhook trigger the next step.

Claude Code routines cannot be scheduled more often than once an hour: the page says the minimum interval is one hour. Polling Sume every few minutes from a routine is therefore not possible, and it would also spend your run budget. Submit the video once, give Sume a webhook, and let the terminal event decide what happens next.
Limits are from Anthropic's routines documentation, read on 2026-10-03; webhook behavior is in Sume's Run webhooks and Jobs and results.
What are the routine limits?
Scheduled runs count against a cap of 100 per hour per account. Run now, API fires and one-off re-runs share another count, 30 per hour per routine. Anthropic says none of these have overage, so a polling design hits a wall instead of a bill.
| Trigger | Limit |
|---|---|
| Schedule interval | 1 hour minimum |
| Scheduled runs | 100 per hour per account |
| Run now, API fires, one-off re-run | 30 per hour per routine |
| API fires | 100 per hour per account |
What replaces the poll?
Sume run webhooks send action.run.terminal, format.run.terminal or agent.run.terminal when a run reaches a final state. Delivery makes up to 10 attempts, and the signature is HMAC-SHA256 over the timestamp and the raw body. Your receiver can then call the routine's /fire endpoint with the result URL as text, so one fire is spent per finished video instead of one per poll.
If the receiver is the thing that is down, use jobs_wait from a single call: it holds for up to 55 seconds per slice and accepts 1 to 20 job ids.
What should the flow be?
- Routine submits the job with an
idempotency_keyand a webhook, then stops. - Sume verifies and delivers
…run.terminalto your small receiver. - The receiver checks the signature and
outcome, and fires the routine again with the result URL. - A canceled run delivers nothing, so keep one daily check that polls any run still open.
What should I watch for?
A fire carries text that reaches the routine as untrusted data, so the saved prompt must say to read it. Also keep each routine's fires below its hourly count, because the API shares that count with Run now.
For a worked budget: a routine that fires once per finished video and a daily check uses a small share of the 30 fires an hour a routine allows, while a poll every hour for a video that takes a few minutes burns a scheduled run per hour for no new information.
Sources
Related posts
More in Developers
- Claude Code routine skips approvals: cap Sume calls with script_run
A routine can use every tool without asking. Sume's script_run bounds a batch of calls with max_calls and max_paid_calls, so one run cannot fan out.
- Where to keep a Sume API key in a Claude Code routine
Environment variables are readable by anyone using the environment. On Pro and Max an API credential hides the key from Claude. What changes on Team plans.
- Claude Code mcp_server_errors: fail CI when Sume never loaded
In stream-json runs Claude Code reports a skipped MCP entry in mcp_server_errors. Check it with jq before a CI job spends on Sume, then verify with mcp_health.
- Claude Code token usage vs Sume spend: two meters, one session
Claude Code's token totals and Sume's generation spend are billed in different places. Log tokens with a mod, read Sume's wallet with usage_get, and compare.
Written by Sume