List Schedule Run execution records.
GET /api/v1/forward/schedule_runs
Lists Schedule Runs for an Identity. Pass schedule_id to narrow results to one Schedule.
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <PAT or SAT> |
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
identity_id | string | Yes | Forward Identity ID that owns the runs. | |
schedule_id | string | No | - | Filter by Schedule ID. |
status | string | No | - | Filter by pending, running, completed, failed, or skipped. |
trigger_type | string | No | - | Filter by schedule or manual. |
has_error | boolean | No | - | Filter to runs with or without an error. |
limit | integer | No | 20 | Items per page. Maximum 100. |
after_id | string | No | - | Cursor for records after the given Run ID. |
before_id | string | No | - | Cursor for records before the given Run ID. |
sort_by | string | No | created_at | Sort field: created_at or triggered_at. |
order | string | No | desc | Sort direction: asc or desc. |
Example request
Example response
HTTP 200 OK
Response fields
| Field | Type | Description |
|---|---|---|
data | array | Schedule Run objects on the current page. |
first_id | string|null | ID of the first run on this page. |
last_id | string|null | ID of the last run on this page. |
has_more | boolean | Whether more records remain. |
data[] item is a Schedule Run object with the same fields documented by Get Schedule Run, including trigger_context, error, push_sink, push_status, attempt, and execution timestamps. attempt starts from 1; when the Schedule has execution.max_attempts=2 and the server completes an automatic retry, the same Run may return attempt=2.
Errors
| HTTP | Type | Code | Trigger |
|---|---|---|---|
| 400 | invalid_request_error | invalid_identity | identity_id is missing or invalid. |
| 400 | invalid_request_error | invalid_request | sort_by or order is invalid, both after_id and before_id are supplied, or a cursor contains unsupported control characters. |
| 400 | invalid_request_error | invalid_limit | limit is not an integer from 1 through 100. |
| 401 | authentication_error | authentication_required | PAT or SAT invalid or expired. |
Notes
- Schedule Runs are independent resources.
- By default, results are sorted by
(created_at, run_id)in descending order. Withsort_by=triggered_at, results use(triggered_at, run_id)as a stable sort key. - Do not supply
after_idandbefore_idtogether. Cursors are interpreted under the currentsort_byandorder; restart pagination when changing the sort. - For v1 compatibility, a non-empty cursor without control characters that cannot be found under the current owner or Identity is ignored and the first page for the current filters and sort is returned. Do not depend on this fallback. Replay only
first_idorlast_idreturned for the same owner or Identity,sort_by, andorder. completed,failed, andskippedare terminal statuses.push_statusdescribes IM streaming delivery and is independent from the main runstatus.