Documentation menu

Get cron run

GEThttps://api.instacloud.com/projects/{projectId}/cron-jobs/{id}/runs/{runId}

Token scope: account · org · project — read-only tokens allowed.

Read one run and every attempt it made.

Parameters

NameInTypeRequiredDescription
projectIdpathstringyes
idpathstringyes
runIdpathstringyes

Responses

200

Default Response

FieldTypeRequiredDescription
runobjectyes
run.idstringyes
run.schedule_idstringyes
run.scheduled_atstringyesthe tick this run belongs to (manual runs: when it was asked for)
run.trigger_type"scheduled" | "manual"yes
run.schedule_revisionintegeryesthe schedule as of dispatch; a later edit does not change a run in flight
run.status"queued" | "preparing" | "sending" | "retry_wait" | "succeeded" | "failed" | "unknown" | "cancelled" | "skipped"yesthe terminal status IS the result — there is no separate outcome
run.skip_reason"overlap" | "late" | nullyes
run.skipped_countintegeryes
run.dispatch_generationintegeryes
run.dispatched_atstring | nullyes
run.execution_epochintegeryesbumped per attempt; a superseded worker’s late result is dropped against it
run.platform_retry_countintegeryes
run.application_retry_countintegeryes
run.next_attempt_atstring | nullyes
run.started_atstring | nullyes
run.finished_atstring | nullyes
run.created_atstringyes
run.configobjectyes
run.config.targetobjectyesWhere 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.
run.config.method"GET" | "POST"yes
run.config.headerNamesstring[]yesnames only, literal and secret-backed alike — never values
run.config.secretRefsobjectyesheader name → secret NAME, as frozen for this run
run.config.requestTimeoutMsintegeryes
run.config.retryobjectyes
run.config.retry.platformMaxRetriesintegernoretries for failures where nothing was sent (wake/transport). Default 2.
run.config.retry.applicationMaxRetriesintegernoretries for a non-2xx answer. Default 0 — a broken endpoint should not be hammered.
run.config.retry.retryableStatusesinteger[]noe.g. [429, 503]; empty means none
run.config.retry.maxRunAgeMsintegernogive up on the run once it is this old, whatever the retry budget says
attemptsobject[]yes
attempts.idstringyes
attempts.run_idstringyes
attempts.attempt_nointegeryes
attempts.execution_epochintegeryes
attempts.started_atstringyes
attempts.finished_atstring | nullyes
attempts.wake_msinteger | nullyestime spent waking the target, excluded from the request timeout
attempts.request_msinteger | nullyes
attempts.failure_kind"wake_failed" | "blocked" | "http_error" | "timeout" | "transport" | "interrupted" | nullyes
attempts.error_codestring | nullyes
attempts.http_statusinteger | nullyes
attempts.response_excerptstring | nullyes

404

Default Response

FieldTypeRequiredDescription
errorstringyes

View as Markdown