A schedule's fire history
const url = 'https://example.com/v1/schedules/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/fires?limit=25';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/schedules/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/fires?limit=25' \ --header 'Authorization: Bearer <token>'Newest first: each occurrence (and run-now) the schedule fired for, and what came of it: the run it started, or why it was skipped, refused or failed.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”TriggerId — the trigger id (a UUID).
Query Parameters
Section titled “Query Parameters”1..100. Default 25.
Where the previous page ended: its nextCursor, as it came. A runtime that seals cursors takes one only for the same list, filters and caller, within a day; otherwise 400 bad-input, and the list starts again without it. Absent → first page.
Responses
Section titled “Responses”Page of fires.
object
One fire of a schedule (an occurrence, or a run-now) and what came of it. pending while its run is being started.
object
The occurrence it is for; absent on a run-now fire.
skipped-overlap: the previous fire’s run was still going (overlap: skip). skipped-erasure: the person the fire acts for is being erased, so no new run starts for them until the erasure completes. skipped, as detail says: what an improve schedule waits for wasn’t there (its threshold, or its monthly cap); the target’s project is suspended (project-suspended), so no run or pass started; its run or pass hadn’t started when its tenant was suspended, and the restore concluded it (tenant-suspended); or its tenant was suspended or closing as its run started (tenant-suspended, tenant-closing). None of the skipped outcomes counts toward the auto-pause; refused and failed do, unless countsTowardPause is false. A skip for a suspension or a close (project-suspended, tenant-suspended, tenant-closing) doesn’t reset the auto-pause’s count of fires in a row either.
The run it started.
The trigger’s version its run started with: the newest when it started. Absent until the run starts.
The improvement pass it started (an improve schedule).
Why it was refused, skipped or failed.
Whether this fire counted toward the trigger’s auto-pause (5 in a row by default). false for a refusal for a limit, such as the tenant’s runs pending (detail starts rate-limited:): the limit passes, and the trigger isn’t at fault. Absent from a runtime that doesn’t say: refused and failed fires counted, and the others didn’t.
Occurrences this fire stood in for after a gap (catchUp: latest).
A run-now fire, outside the schedule.
Example
{ "data": [ { "outcome": "pending" } ]}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}No cron trigger with that id.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}trigger-operation-unsupported: this deployment keeps no fire history.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}The database was too busy to answer in time (database-busy); Retry-After (whole seconds) says when to try again.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}See also
GET /v1/schedules/{triggerId}: Fetch a cron schedulePATCH /v1/schedules/{triggerId}: Update a cron schedulePOST /v1/schedules/{triggerId}/pause: Pause a cron schedulePOST /v1/schedules/{triggerId}/resume: Resume a cron schedule- Error code
database-busy - Error code
trigger-operation-unsupported - Every error code