Skip to main content

Schedule APIs

The schedule APIs allow you to manage and interact with schedules within your Omni organization.

List schedules

Retrieves scheduled tasks. This endpoint supports filtering, sorting, and cursor-based pagination.

GET /api/v1/schedules
curl -X GET 'https://myorg.omniapp.co/api/v1/schedules' \
--H 'Authorization: Bearer <TOKEN>' \
--H 'Content-Type: application/json'

Parameters

Loading parameters...

Response

200 OK

Successful requests will return a 200 OK status and a response body similar to the following:

{
"pageInfo": {
"hasNextPage": false,
"nextCursor": null,
"pageSize": 20,
"totalRecords": 6
},
"records": [
{
"id": "60d386ca-6f48-4143-9bfc-fd7a6f942c2c",
"schedule": "00 09 ? * 2,3,4,5,6 *",
"disabledAt": "2024-03-01T15:32:20.996Z",
"name": "Web Traffic Analysis",
"timezone": "America/Los_Angeles",
"identifier": "1169b547",
"dashboardName": "Web Traffic Analysis",
"ownerName": "Blob Ross",
"lastCompletedAt": "2024-02-29T17:00:56.107Z",
"lastStatus": "COMPLETE",
"destinationType": "email",
"recipientCount": 5,
"content": "dashboard",
"slackRecipientType": null,
"systemDisabledAt": null,
"systemDisabledReason": null,
"alert": null
},
{
"id": "f68aba72-b558-4012-a381-bb74954dd025",
"schedule": "00 09 ? * 2,3,4,5,6 *",
"disabledAt": null,
"name": "⚡️🍣 Query",
"timezone": "America/New_York",
"identifier": "eadde573",
"dashboardName": "Blob R Us Sales",
"ownerName": "Blobby Hill",
"lastCompletedAt": "2025-05-19T13:00:35.457Z",
"lastStatus": "ERROR_DELIVERED",
"destinationType": "email",
"recipientCount": 1,
"content": "single tile",
"slackRecipientType": null,
"systemDisabledAt": null,
"systemDisabledReason": null,
"alert": null
},
{
"id": "2af41989-1bed-4c65-a602-927f71205a32",
"schedule": "00 09 ? * 2,3,4,5,6 *",
"disabledAt": null,
"name": "Orders (2)",
"timezone": "America/New_York",
"identifier": "12db1a0a",
"dashboardName": "Orders",
"ownerName": "Blobby Hill",
"lastCompletedAt": "2025-05-19T13:00:27.517Z",
"lastStatus": "COMPLETE",
"destinationType": "webhook",
"recipientCount": -1,
"content": "dashboard",
"slackRecipientType": null,
"systemDisabledAt": null,
"systemDisabledReason": null,
"alert": null
},
{
"id": "61a8e93b-71f4-4cda-b1f9-a91aa0ad05bc",
"schedule": "00 09 ? * 2,3,4,5,6 *",
"disabledAt": null,
"name": "Orders",
"timezone": "America/New_York",
"identifier": "12db1a0a",
"dashboardName": "Orders",
"ownerName": "Blob Ross",
"lastCompletedAt": "2025-05-19T13:00:25.376Z",
"lastStatus": "COMPLETE",
"destinationType": "email",
"recipientCount": 1,
"content": "dashboard",
"slackRecipientType": null,
"systemDisabledAt": null,
"systemDisabledReason": null,
"alert": null
},
{
"id": "3db84f26-db0f-451d-846e-0f7148ae5a7d",
"schedule": "00 09 ? * 2,3,4,5,6 *",
"disabledAt": "2024-12-31T17:23:45.063Z",
"name": "External users",
"timezone": "America/New_York",
"identifier": "0958c2d8",
"dashboardName": "Sales Data by Quarter",
"ownerName": "Blobby Hill",
"lastCompletedAt": "2024-12-31T14:00:51.558Z",
"lastStatus": "COMPLETE",
"destinationType": "email",
"recipientCount": 1,
"content": "dashboard",
"slackRecipientType": null,
"systemDisabledAt": null,
"systemDisabledReason": null,
"alert": null
},
{
"id": "8cc895ec-a2af-493f-a4e4-08c3017fa42d",
"schedule": "00 09 ? * 2,3,4,5,6 *",
"disabledAt": "2024-11-21T21:52:16.059Z",
"name": "Daily Slack update",
"timezone": "America/New_York",
"identifier": "0958c2d8",
"dashboardName": "Sales Data by Quarter",
"ownerName": "Blobby Hill",
"lastCompletedAt": null,
"lastStatus": null,
"destinationType": "slack",
"recipientCount": 1,
"content": "dashboard",
"slackRecipientType": "users",
"systemDisabledAt": null,
"systemDisabledReason": null,
"alert": null
}
]
}
400 Bad Request
{
"detail": "<errorReason>",
"status": 400
}
ErrorError detail
Invalid parameter valueInvalid enum value
Invalid ownerId UUIDownerId: Invalid uuid
Invalid page sizePage size cannot exceed 100
Invalid page number for cursorInvalid page number. The last valid page is <number>.
404 Not Found
{
"detail": "<errorReason>",
"status": 404
}
ErrorError detail
User not foundUser with id <id> does not exist
429 Too Many Requests

Results from too many requests in a given time frame. Refer to the Rate limiting documentation for more information.

Trigger schedule

Triggers the execution of a schedule on demand, outside of its regular schedule.

POST /api/v1/schedules/:scheduleId/trigger
curl -X POST 'https://myorg.omniapp.co/api/v1/schedules/123e4567-e89b-12d3-a456-426614174000/trigger' \
--H 'Authorization: Bearer <TOKEN>'

Parameters

Note: The scheduleId must be provided as a path parameter.

Loading parameters...

Response

200 OK

Successful requests will return a 200 OK status and a response body similar to the following:

{
"success": true
}
400 Bad Request
{
"detail": "<errorReason>",
"status": 400
}
ErrorError detail
Invalid UUID formatBad Request: scheduleId: Invalid uuid
Invalid methodInvalid method
404 Not Found
{
"detail": "<errorReason>",
"status": 404
}
ErrorError detail
Schedule not foundScheduled task with id {scheduleId} does not exist
429 Too Many Requests

Results from too many requests in a given time frame. Refer to the Rate limiting documentation for more information.

500 Internal Server Error
{
"detail": "<errorReason>",
"status": 500
}
ErrorError detail
Dispatcher errorVarious error messages related to dispatch failures

Add recipients to schedule

Adds one or more recipients to an existing scheduled email task. Recipients can be specified by email address or user ID.

Limitations

This API only works with schedules with email destinations.

PUT /api/v1/schedules/:scheduleId/add-recipients
curl -X PUT 'https://myorg.omniapp.co/api/v1/schedules/123e4567-e89b-12d3-a456-426614174000/add-recipients' \
--H 'Authorization: Bearer <TOKEN>' \
--H 'Content-Type: application/json' \
--d '{
"emails": ["user@example.com"]
}'

Parameters

Loading parameters...

Response

200 OK

Successful requests will return a 200 OK status and a response body similar to the following:

{
"addedRecipientsCount": 2,
"success": true
}
400 Bad Request
{
"detail": "<errorReason>",
"status": 400
}
ErrorError detail
Invalid UUID formatuserIds: Invalid uuid
Invalid email formatemails: Invalid email address
Empty request bodyPlease provide either valid email addresses, valid user IDs, or both
No recipients provided- At least one recipient must be provided
- {parameter}: Array must contain at least 1 element(s)
Invalid membersInvalid recipient(s): The following members do not exist or do not have access to this organization: {userId}
Unsupported destination typeCannot add recipients to destination type {destinationType}
404 Not Found
{
"detail": "<errorReason>",
"status": 404
}
ErrorError detail
Schedule not foundScheduled task with id {scheduleId} does not exist
429 Too Many Requests

Results from too many requests in a given time frame. Refer to the Rate limiting documentation for more information.

Remove recipients from schedule

Removes one or more recipients from an existing scheduled email task. Recipients can be specified by email address or user ID.

Limitations

This API only works with schedules with email destinations.

PUT /api/v1/schedules/:scheduleId/remove-recipients
curl -X PUT 'https://myorg.omniapp.co/api/v1/schedules/123e4567-e89b-12d3-a456-426614174000/remove-recipients' \
--H 'Authorization: Bearer <TOKEN>' \
--H 'Content-Type: application/json' \
--d '{
"emails": ["user@example.com"]
}'

Parameters

Loading parameters...

Response

200 OK

Successful requests will return a 200 OK status and a response body similar to the following:

{
"removedRecipientsCount": 2,
"success": true
}
400 Bad Request
{
"detail": "<errorReason>",
"status": 400
}
ErrorError detail
Invalid UUID formatBad Request: userIds: Invalid uuid
Invalid email formatBad Request: emails: Invalid email address
Empty request bodyPlease provide either valid email addresses, valid user IDs, or both
No recipients provided- At least one recipient must be provided
- {parameter}: Array must contain at least 1 element(s)
Invalid membersInvalid recipient(s): The following members do not exist or do not have access to this organization: {userId}
Unsupported destination typeCannot change recipients on a scheduled task destination of type {destinationType}
404 Not Found
{
"detail": "<errorReason>",
"status": 404
}
ErrorError detail
Schedule not foundScheduled task with id {scheduleId} does not exist
429 Too Many Requests

Results from too many requests in a given time frame. Refer to the Rate limiting documentation for more information.

Pause a schedule

PUT /api/v1/schedules/:scheduleId/pause
curl -X PUT 'https://myorg.omniapp.co/api/v1/schedules/123e4567-e89b-12d3-a456-426614174000/pause' \
--H 'Authorization: Bearer <TOKEN>'

Parameters

Note: The scheduleId must be provided as a path parameter.

Response

200 OK

Successful requests will return a 200 OK status and a response body similar to the following:

{
"success": true
}
400 Bad Request
{
"detail": "<errorReason>",
"status": 400
}
IssueError detail
Schedule is system disabledSchedule is system disabled
Schedule is already pausedSchedule is already paused
404 Not Found
{
"detail": "<errorReason>",
"status": 404
}
IssueError detail
Schedule not foundScheduled task with id {scheduleId} does not exist
429 Too Many Requests

Results from too many requests in a given time frame. Refer to the Rate limiting documentation for more information.

Resume a schedule

PUT /api/v1/schedules/:scheduleId/resume
curl -X PUT 'https://myorg.omniapp.co/api/v1/schedules/123e4567-e89b-12d3-a456-426614174000/resume' \
--H 'Authorization: Bearer <TOKEN>'

Parameters

Note: The scheduleId must be provided as a path parameter.

Response

200 OK

Successful requests will return a 200 OK status and a response body similar to the following:

{
"success": true
}
FieldTypeDescription
successbooleanIndicates schedule has been resumed successfully
400 Bad Request
{
"detail": "<errorReason>",
"status": 400
}
IssueError detail
Schedule is system disabledSchedule is system disabled
Schedule is already resumedSchedule is already resumed
404 Not Found
{
"detail": "<errorReason>",
"status": 404
}
IssueError detail
Schedule not foundScheduled task with id {scheduleId} does not exist
429 Too Many Requests

Results from too many requests in a given time frame. Refer to the Rate limiting documentation for more information.

Delete a schedule

Deletes a schedule using the schedule's UUID.

DELETE /api/v1/schedules/:scheduleId
curl -L -X DELETE 'https://myorg.omniapp.co/api/v1/schedules/61a8e93b-71f4-4cda-b1f9-a91aa0ad05bc' \
--H 'Authorization: Bearer <TOKEN>' \
--H 'Content-Type: application/json'

Parameters

Loading parameters...

Response

200 OK

Successful requests will return a 200 OK status and a response body similar to the following:

{
"success": true
}
400 Bad Request
{
"detail": "<errorReason>",
"status": 400
}
ErrorError detail
Invalid schedule UUIDscheduleId: Invalid uuid
Invalid methodInvalid request method
404 Not Found
{
"detail": "<errorReason>",
"status": 404
}
ErrorError detail
Schedule not foundScheduled task with id <scheduleId> does not exist
429 Too Many Requests

Results from too many requests in a given time frame. Refer to the Rate limiting documentation for more information.