List cron runs
GEThttps://api.instacloud.com/projects/{projectId}/cron-jobs/{id}/runs
Token scope: account · org · project — read-only tokens allowed.
List a cron job’s runs, most recent first.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | no | default 20 |
projectId | path | string | yes | |
id | path | string | yes |
Responses
200
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
runs | object[] | yes | |
runs.id | string | yes | |
runs.schedule_id | string | yes | |
runs.scheduled_at | string | yes | the tick this run belongs to (manual runs: when it was asked for) |
runs.trigger_type | "scheduled" | "manual" | yes | |
runs.schedule_revision | integer | yes | the schedule as of dispatch; a later edit does not change a run in flight |
runs.status | "queued" | "preparing" | "sending" | "retry_wait" | "succeeded" | "failed" | "unknown" | "cancelled" | "skipped" | yes | the terminal status IS the result — there is no separate outcome |
runs.skip_reason | "overlap" | "late" | null | yes | |
runs.skipped_count | integer | yes | |
runs.dispatch_generation | integer | yes | |
runs.dispatched_at | string | null | yes | |
runs.execution_epoch | integer | yes | bumped per attempt; a superseded worker’s late result is dropped against it |
runs.platform_retry_count | integer | yes | |
runs.application_retry_count | integer | yes | |
runs.next_attempt_at | string | null | yes | |
runs.started_at | string | null | yes | |
runs.finished_at | string | null | yes | |
runs.created_at | string | yes | |
runs.config | object | yes | |
runs.config.target | object | yes | Where the job sends its request. An internal target names the SERVICE, never a URL: the worker resolves the live route at send time, so a redeploy or a region move cannot leave a job firing at a dead host. |
runs.config.method | "GET" | "POST" | yes | |
runs.config.headerNames | string[] | yes | names only, literal and secret-backed alike — never values |
runs.config.secretRefs | object | yes | header name → secret NAME, as frozen for this run |
runs.config.requestTimeoutMs | integer | yes | |
runs.config.retry | object | yes | |
runs.config.retry.platformMaxRetries | integer | no | retries for failures where nothing was sent (wake/transport). Default 2. |
runs.config.retry.applicationMaxRetries | integer | no | retries for a non-2xx answer. Default 0 — a broken endpoint should not be hammered. |
runs.config.retry.retryableStatuses | integer[] | no | e.g. [429, 503]; empty means none |
runs.config.retry.maxRunAgeMs | integer | no | give up on the run once it is this old, whatever the retry budget says |
404
Default Response
| Field | Type | Required | Description |
|---|---|---|---|
error | string | yes |