Cron or API call: the trigger type of a Sume schedule is fixed
A Sume schedule's trigger_type is set at creation. An API-only schedule can never gain a cadence, and a cron one can never become API-only. What to pick first.

Choose the trigger type of a Sume schedule carefully, because it cannot be changed later: trigger_type is cron or api, and it is fixed once the schedule is created. An API-only schedule can never gain a cadence, and a cron schedule can never drop to API-only.
This comes from Create a schedule and the Scheduled overview. The product is called Scheduled; the HTTP namespace stays /v1/actions.
What are the two trigger types?
cron is the default. You give it a 5-field cron expression and an IANA timezone, or use the hourly, daily and weekly presets. api is an advanced option under Advanced: it drops the cadence entirely, so the schedule only runs when your service calls POST /v1/actions/{action_id}/runs.
For cron schedules, the cadence is a 5-field expression plus an IANA timezone, so a weekly 09:00 Seoul run and a weekly 09:00 New York run are two different schedules, not one with an offset. The hourly, daily and weekly presets write the expression for you, and the custom option accepts the raw expression. The cron object on the public shape carries the expression, the timezone and next_run_at, which is a handy value to alert on if it ever stops moving.
If you are unsure whether a field is five or six, see cron expressions: 5 vs 6 fields; Sume documents the 5-field form.
| Setting | cron | api |
|---|---|---|
| Runs on a clock | Yes | No |
| Accepts API runs | Only if api_trigger_enabled is true | Yes, it is the only way |
| cron field in the API | expr, timezone, next_run_at | null |
| Can change type later | No | No |
Can a cron schedule also accept API calls?
Yes. A cron schedule can set api_trigger_enabled to also accept API runs on top of its cadence. That is the safe default when you are unsure: you keep the clock and gain the option to fire a run on demand. The reverse is not possible, because an API-only schedule has no cadence to add.
Whichever you pick, three things must hold for an API run to start: the schedule's status is active, api_trigger_enabled is true, and the key carries actions:read and actions:write.
How should you decide?
Ask who decides when the work happens. If the answer is a clock (a Monday roundup, a nightly refresh), use cron. If it is an event in your own system (an order shipped, a post approved), use api. If it is both, use cron with the API trigger enabled.
Remember what each fire does: the run executes as an agent in a fresh thread with a structured receipt. If you only want your backend to call Sume per user action with your inputs and no saved schedule at all, the docs point you to the Format API or Agent Completions instead of a schedule.
Overlap is the other design decision that follows from the trigger. Only one run of an Action is active at a time. With the default on_active_run: "skip", a second trigger returns 200 with a receipt whose status is skipped and skip_reason is previous_run_active, and a run row is recorded. With reject you get 409 action_run_in_progress and nothing is recorded. A cron plus API schedule is exactly where both can meet: the clock fires while your service also called, so decide which behavior you want before you enable both.
What if you picked wrong?
There is no edit that flips the type. Create a new schedule with the right trigger, copy the instructions, spend cap and output schema across in the dashboard, and set the old one to Inactive so it stops running. Point your config at the new schedule's aut_... id.
Also note the gaps: the Developer API can list and read schedules and start runs, but it cannot create or edit them, so this migration is a dashboard task.
Sources
Related posts
More in Agents
- Passing data to a scheduled agent run: input is data, not instructions
What the input field on a Sume Scheduled run does, its 64-property and 2 MiB limits, and why caller text cannot rewrite the saved instructions.
- Why a Scheduled Action run says skipped: previous_run_active
A Sume Scheduled Action recorded status skipped with skip_reason previous_run_active. It means the last run was still going. Here is how to react.
- Storyboard to finished video over Sume MCP: the tool order
The order a Sume MCP client should follow: stills, inspect, wordless clips, probe, then a timeline dry run and render. Where each step bills and what to skip.
- Sume Action run 403 insufficient_scope: old keys and service accounts
A 403 on POST /v1/actions/{id}/runs means the key lacks actions:write, predates the scope, or is a service-account key. Why scopes cannot be added and the fix.
Written by Sume