Create a Sume schedule by API? Dashboard first, then trigger by API
The Sume API cannot create or edit schedules. Create it in the dashboard with a cron or an api trigger, then call it from code. What each trigger type means.

No, you cannot create a schedule through the Sume API. Schedules are created and edited in the dashboard only. The API can trigger and read an existing one, so the working pattern is to create the schedule once by hand, choose its trigger type, and then call it from your own code if it is an api-trigger schedule or a cron schedule with the API trigger enabled (Sume docs: Scheduled runs, read 2026-10-06).
There is also no MCP tool or CLI command for schedules, and the Developer API has no write endpoints for them. The docs say you can ask the Agent in chat to make one, so creation is a person or the in-product Agent, and your automation runs it from there.
Pick the trigger type carefully
The trigger type is fixed when you create the schedule. A cron trigger takes a five-field cron expression and an IANA time zone, and Sume starts the run on that clock. An api trigger has no clock of its own; it runs when your code calls it. You cannot change one into the other later, so if you are unsure, think about who should own the timing.
Choose cron when the timing is simple and fixed, like every Monday at nine in a given time zone. Choose api when the timing depends on something outside Sume, such as a content calendar, a deploy or an upstream data refresh.
| Question | Cron trigger | Api trigger |
|---|---|---|
| Who starts the run | Sume, on the clock | Your code, by POST |
| Time input | 5-field cron plus IANA time zone | None |
| Changeable later | No, fixed at create | No, fixed at create |
| Failure if wrong type | action_api_trigger_disabled unless the cron schedule also enables the API trigger | Not applicable |
Triggering from code
A trigger is a POST to /v1/actions/{handle}/{slug}/runs with a key that carries the actions:write scope. Older keys may not carry it, and scopes cannot be added to an existing key, so create a new one. Send an Idempotency-Key between 1 and 255 characters so retries replay.
Errors worth handling are action_inactive, when the schedule is switched off, and action_api_trigger_disabled, when you call the API on a schedule that has api_trigger_enabled set to false. Both mean fix the schedule, not retry.
import os, requests
H = {"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Idempotency-Key": "launch-recap-2026-10-06"}
r = requests.post(
"https://api.sume.com/v1/actions/acme/launch-recap/runs",
json={"input": {"launch": "october"}}, headers=H, timeout=30)
body = r.json()
err = (body.get("error") or {}).get("code")
if err in ("action_inactive", "action_api_trigger_disabled"):
print("fix the schedule in the dashboard:", err)
else:
print(r.status_code, body.get("data", {}).get("status"))Where to read results
A scheduled run is read at /v1/action-runs/{id}. These runs do not appear in /v1/jobs, and events_url is null, so do not build monitoring on those. The public shape also omits the instruction text, which means the receipt shows what happened and what it cost, not the prompt you configured.
The default spend cap on a schedule is $1.00 and a per-run override can only lower it. If your work needs more, raise the cap in the dashboard where you set up the schedule.
Documenting the setup
Because creation happens in the dashboard, the configuration lives outside your repository. Write down the schedule's handle, slug, trigger type, cron and time zone, and cap in your runbook, so a rebuild or a hand-over does not depend on someone remembering which boxes were ticked.
When a Format and your own cron is simpler
If the only reason to want a schedule is to run a Format at a set time, your own scheduler calling the Format API is just as good and can be created and changed from code. A Sume schedule earns its place when you want the clock and the saved instructions on Sume's side.
Whichever you pick, keep an idempotency key per intended run, such as the date, so a duplicated tick from your scheduler does not produce two paid runs.
Sources
Related posts
More in Agents
- Cut a video to 15 seconds for Reddit Engaged Video Views
Reddit began a 15-second Engaged Video Views beta in September. Cut any hosted clip to 15 seconds with Sume video-trim for a flat $0.02, exact or keyframe.
- Keyframe or exact video trim for pause cuts: read actual_start_seconds
Exact trim cuts where you say; keyframe trim is faster but snaps to a keyframe. For pause cuts that decides whether words get clipped. How to choose and check.
- Lower the spend cap for one scheduled Sume run: overrides only go down
A per-run generation_spend_cap_usd on a scheduled run is clamped to the schedule's own cap. You can lower it for one run but never raise it. How it works.
- Guardrails for an agent calling paid APIs: key, cap, and what to log
An agent calling a paid media API needs three habits: an idempotency key on each write, a spend cap per run, and logs that hold ids, never signed URLs or keys.
Written by Sume