Create a schedule
Schedules are created in the Agents dashboard. The Developer API has no create or update endpoint, so this flow is the only way to author one.
1. Open Scheduled
Go to https://www.sume.com/agents/scheduled and use the Create control in the
header.
2. Write instructions and pick a model
Instructions are what the Agent carries out on every run. Treat them as the prompt: they persist across runs, and caller-supplied data arrives separately (see Advanced: run a schedule via API).
Empty instructions cannot run — the run request fails with 400.
3. Set the cadence
Cadence is the default and needs no extra choice: pick how often it should run. Scheduled takes a 5-field cron expression and an IANA timezone. Hourly, daily, and weekly presets write the expression for you; custom accepts the raw expression.
Under Advanced you can switch the trigger to API call, which persists
trigger_type: "api" and drops the cadence entirely — the schedule then runs
only when your service calls Sume. Reach for it when an external system, not a
clock, decides when work happens.
trigger_type is fixed once created. An API-only one can never gain a cadence,
and a cron one can never drop to API-only. A cron schedule can, however, also
enable the API trigger and accept both.
4. Set the spend cap
The generation spend cap bounds what one run may spend on generation. When unset, the effective default is $1.00 per run.
A caller can lower the cap for a single run with generation_spend_cap_usd, but
never raise it above the schedule's cap.
5. Bind an output schema (optional)
By default a run's output is projected onto sume/action-run-output/v1 —
{ text, images[], videos[], audio[], files[] }. The Output schema section
binds your own shape instead: paste a JSON Schema, name it, and name the
primary_output_key.
Custom schemas must follow the strict subset (the same rules OpenAI Structured Outputs enforces):
- the root is an object;
- every object sets
"additionalProperties": false; - every property appears in
required— optionality is a nullable union such as"type": ["string", "null"]; - at most 10 nesting levels, 5000 properties, and 1000 enum values;
$refmay only point at#/$defs/<name>or the registeredSumeMediaFile#.
A schema outside the subset is rejected when you save, with the offending rules listed. Load image example fills a working image schema:
Name it sume/action-image-v1 and set the primary output key to image. Runs
then return output.image.url as a durable media.sume.com URL. Clear both
fields to go back to the default schema.
Schema names accept A-Z a-z 0-9 . _ / -, up to 64 characters. Sume rewrites
anything outside A-Z a-z 0-9 _ - when it calls the structuring model, because
that provider only accepts the narrower set. The name you typed is what is
stored and what the receipt reports — sume/action-image-v1 stays
sume/action-image-v1 in output_schema.name.
strict: false is accepted and echoed on the receipt, but it does not relax the
subset — Sume only fills schemas it can mechanically satisfy.
6. Activate
Set the schedule to Active. While it is Inactive, API runs are rejected with
409 action_inactive.
7. Copy the invoke endpoint
With the API trigger enabled, the trigger card shows the invoke endpoint, the required scopes, and a copy-pasteable request:
The endpoint host follows the dashboard you copied it from. A dashboard served
from a *.dev.sume.com host yields https://api.dev.sume.com; everything else
yields https://api.sume.com. Check the host before pasting a copied command
into production code.
8. Check run history
Each run is listed with its trigger source. Runs started through the API are
labeled API; scheduled runs are labeled Cron.