List scheduled agent runs over the Sume API: audit your schedules
List Sume schedules with GET /v1/actions (limit, status, trigger_type), page each run history with a cursor, and read trigger.source to tell cron from API runs.

To list scheduled agent runs with the Sume API, call GET /v1/actions to inventory your schedules, filtered by status or trigger_type, then page each schedule's history with GET /v1/actions/{action_id}/runs, passing next_cursor back as cursor until has_more is false.
The details come from Sume's Scheduled, Runs and results, and API reference docs pages and the OpenAPI reference, read on 2026-09-26. Scheduled is the product name; the wire namespace is /v1/actions. Creating and triggering a schedule is covered in Scheduled AI video agent runs.
How do I list my schedules?
GET /v1/actions needs a key with actions:read. It takes limit (1–100, default 50), status (active or inactive), and trigger_type (cron or api), and it pages with the same cursor rules as run lists. GET /v1/actions/{action_id} reads one schedule.
curl -sS "https://api.sume.com/v1/actions?status=active&trigger_type=cron&limit=100" \
-H "Authorization: Bearer $SUME_API_KEY" \
| jq '.data[] | {id, title, next: .cron.next_run_at, last_run_at, has_api: .api_trigger_enabled}'Which schedule fields matter for an audit?
The public shape deliberately leaves out the instructions text; read and edit instructions in the dashboard. Everything else an audit needs is on the object:
| Field | What it tells you |
|---|---|
status | active or inactive. An inactive schedule rejects API runs. |
trigger_type | cron or api. Fixed at create time. |
api_trigger_enabled | Whether POST /v1/actions/{action_id}/runs is allowed. A cron schedule can also enable it. |
cron | { expr, timezone, next_run_at }, or null for an API-only schedule. |
last_run_at | A date-time, or null. Present on every schedule. |
generation_spend_cap_usd_micros | The per-run generation cap. null means the $1.00 default applies. |
invoke_url, vanity_invoke_url | The permanent opaque path, and the {handle}/{slug} path or null. |
How do I page through a schedule's run history?
GET /v1/actions/{action_id}/runs takes limit from 1 to 100, default 50, and returns { data, has_more, next_cursor }. Pass next_cursor back as cursor until has_more is false. The cursor is opaque: a cursor Sume did not mint is 400 invalid_request. A single run is readable under its schedule at GET /v1/actions/{action_id}/runs/{run_id}, or at GET /v1/action-runs/{run_id}.
curl -sS "https://api.sume.com/v1/actions/$ACTION_ID/runs?limit=100" \
-H "Authorization: Bearer $SUME_API_KEY" \
| jq '{has_more, next_cursor, runs: [.data[] | {id, status, source: .trigger.source, created_at}]}'How do I tell cron runs from API runs?
Every fire, whether cron, manual, or API, produces a run with a receipt. Read these receipt fields:
trigger.source:cron,manual, orapi, next toidempotency_key. In the dashboard's run history, API runs are labeledAPIand scheduled runsCron.status:queued,processing,completed,failed,canceled(onel), orskipped. Do not assume job-side status strings transfer.skip_reason:previous_run_activeon a skipped run.idempotency_hitistrueon an idempotency replay.output_schema.source:default,action_default, orrequest_override.request_id: log it for support.
Can I read a schedule by handle and slug?
Yes. GET /v1/actions/{handle}/{slug} and GET /v1/actions/{handle}/{slug}/runs work the same way as the opaque paths, for example /v1/actions/acme/weekly-teaser/runs. Store the opaque aut_… id anyway: renaming a handle or slug changes the vanity path, and a renamed handle keeps resolving for 90 days, which the docs call a migration window, not a guarantee.
Slugs are lowercase alphanumerics with single hyphens, 2–64 characters, unique within your account, and runs is reserved. slug is null on schedules created before slugs existed, and vanity_invoke_url is null when either half is unknown. An unknown handle, an unknown slug, and a handle you do not own all return the same 404 action_not_found.
What can't I monitor over the API?
The Scheduled gaps listed in Scheduled AI video agent runs also bound monitoring: no run events endpoint, no create or edit endpoints, no MCP or CLI access, and no API access to schedules owned by a team workspace. Three more matter for an audit:
- Runs are listed per schedule. The API reference has no route that lists runs across schedules, so loop over
GET /v1/actionsfirst. - The run list takes only
limitandcursor. Filter onstatusortrigger.sourcein your own code. usage.billable_amount_usd_microson a receipt is the generation spend attributed to that run. It excludes the agent's own LLM turn, so it is not the run's total cost;GET /v1/usageremains the authoritative billing record.
Sources
Related posts
Written by Sume