Skip to content

Workflows

List workspace schedules

List the schedules every deployed workflow in a workspace runs, including disabled ones, with their timing and failure counts. Requires workspace read access. These are the same schedules List workflow triggers reports for each workflow; a workflow that is not deployed has none. To change a schedule's timing, edit its schedule block in the draft and deploy; to pause or resume one, use Update workflow trigger. OAuth scope: `api:read`.

GET/api/v2/schedules

List the schedules every deployed workflow in a workspace runs, including disabled ones, with their timing and failure counts. Requires workspace read access. These are the same schedules List workflow triggers reports for each workflow; a workflow that is not deployed has none. To change a schedule's timing, edit its schedule block in the draft and deploy; to pause or resume one, use Update workflow trigger.

OAuth scope: api:read.

Authentication

Send a personal or workspace API key in X-API-Key. See key types and access; operations that reject workspace keys say so in their description.

Send X-API-Key in the request header.

Alternatively

Send a Sim OAuth access token in Authorization: Bearer. See OAuth authentication and scopes.

Authorization: Bearer YOUR_ACCESS_TOKEN

Required scopes: api:read

OAuth flows
json
{
  "authorizationCode": {
    "authorizationUrl": "https://www.sim.ai/api/auth/oauth2/authorize",
    "tokenUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "refreshUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "scopes": {
      "api:read": "Read your workspaces, workflows, files, tables, and logs",
      "api:write": "Read, create, change, run, and delete resources in your workspaces",
      "offline_access": "Stay signed in without asking again"
    }
  }
}

OAuth scope: api:read.

Query parameters

workspaceIdstringRequired

Workspace whose schedules should be listed.

minLength
1
maxLength
128
limitinteger

Maximum schedules to return per page. Must be a whole number from 1 to 100. Defaults to 50.

default
50
minimum
1
maximum
100
cursorstring

Opaque cursor from the previous page. Send it back with the same sort and filters; only limit may change. Change anything else and pagination must restart without a cursor.

minLength
1
sortBystring

Field used to sort the result. createdAt is when the schedule was created for the deployment version that runs it: each deploy creates new schedule rows, so a redeployed workflow's schedules move to the newest end.

default
createdAt
enum
["createdAt"]
sortOrderstring

Sort direction.

default
desc
enum
["asc","desc"]

Responses

200

A page of schedules.

object

A cursor-paginated page of the schedules deployed workflows run.

2 fields
dataarrayRequired

Items in the current page.

Schema details
Array itemobject

Health and timing of one schedule a deployed workflow in the workspace runs.

11 fields
blockIdstringRequired

Trigger block in the deployed workflow.

enabledbooleanRequired

Whether the trigger currently fires.

statusstringRequired

disabled after a manual disable or an automatic one following repeated failures. completed applies only to schedules that have no runs left.

enum
["active","disabled","completed"]
failedCountintegerRequired

Consecutive failures since the last success; the trigger disables itself at 100. Always 0 for webhook and event triggers.

minimum
0
maximum
9007199254740991
lastFailedAtvalueRequired

ISO 8601 timestamp of the most recent counted failure, or null.

format
date-time
Schema details

Any of

Option 1string
Option 2null
nextRunAtvalueRequired

ISO 8601 timestamp of the next scheduled run; null when disabled and for non-schedules.

format
date-time
Schema details

Any of

Option 1string
Option 2null
lastRanAtvalueRequired

ISO 8601 timestamp of the last scheduled run; null for non-schedules.

format
date-time
Schema details

Any of

Option 1string
Option 2null
cronExpressionvalueRequired

Cron expression the deployed schedule runs on; null for non-schedules. Read-only: it is computed at deploy from the schedule block, so change it by editing the block in the draft and deploying.

Schema details

Any of

Option 1string
Option 2null
workflowIdstringRequired

Workflow whose live deployment runs the schedule.

workflowNamestringRequired

Name of that workflow.

timezonestringRequired

IANA timezone the cron expression runs in. Read-only, like cronExpression.

Additional properties are not allowed.

nextCursorvalueRequired

Opaque cursor for the next page. Send it back as cursor; null means there are no more pages. Do not construct a cursor yourself.

Schema details

Any of

Option 1string
Option 2null

Additional properties are not allowed.

Response example 1

json
{
  "data": [
    {
      "workflowId": "3b1f7c92-8d4e-4a6b-9c0d-5e2f8a714b36",
      "workflowName": "Customer support triage",
      "blockId": "blk_01J8ZK3QW4M6X2R9T7B5C0V4",
      "enabled": true,
      "status": "active",
      "failedCount": 0,
      "lastFailedAt": null,
      "nextRunAt": "2026-08-10T09:00:00.000Z",
      "lastRanAt": "2026-08-10T08:00:00.000Z",
      "cronExpression": "0 * * * *",
      "timezone": "UTC"
    }
  ],
  "nextCursor": null
}

Response headers

X-RateLimit-Limitinteger

Maximum requests allowed in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Remaininginteger

Requests remaining in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Resetstring

ISO 8601 timestamp when the current rate-limit window resets.

format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Was this helpful?
Suggest an edit