Skip to main content
Schedules

Get schedule run

Retrieve one Schedule Run by ID.

GET /api/v1/forward/schedule_runs/{run_id} Returns a single Schedule Run execution record. identity_id may be provided as an additional ownership constraint.

Headers

HeaderRequiredDescription
AuthorizationYesBearer <PAT or SAT>

Path parameters

ParameterTypeRequiredDescription
run_idstringYesSchedule Run ID.

Query parameters

ParameterTypeRequiredDefaultDescription
identity_idstringNo-Optional additional ownership constraint.

Example request

curl -s -X GET 'https://api.qoder.com/api/v1/forward/schedule_runs/srun_019f00112233445566778899aabbccdd' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN"

Example response

HTTP 200 OK
{
  "id": "srun_019f00112233445566778899aabbccdd",
  "schedule_id": "sched_019f00112233445566778899aabbccdd",
  "identity_id": "idn_019eabc123",
  "template_id": "tmpl_support",
  "session_id": "sess_019ec55a68b37e1e8d660691af161ab4",
  "status": "completed",
  "trigger_context": {
    "type": "schedule",
    "scheduled_at": "2026-06-22T01:00:00Z"
  },
  "result_payload": "Today's technology highlights: ...",
  "push_sink": "im_channel",
  "push_status": "succeeded",
  "push_finished_at": "2026-06-22T01:00:21Z",
  "attempt": 2,
  "triggered_at": "2026-06-22T01:00:00Z",
  "started_at": "2026-06-22T01:00:03Z",
  "completed_at": "2026-06-22T01:00:20Z",
  "duration_ms": 17000,
  "created_at": "2026-06-22T01:00:00Z"
}

Response fields

FieldTypeDescription
idstringSchedule Run ID.
schedule_idstringParent Schedule ID.
identity_idstringForward Identity ID.
template_idstringForward Template ID.
session_idstring|nullSession created or reused for this run.
statusstringpending, running, completed, failed, or skipped.
trigger_contextobjectTrigger source. type is schedule or manual.
errorobject|nullStructured error for failed or skipped runs.
result_payloadstring|nullMain text result.
error_messagestring|nullHuman-readable error message. Structured details stay in error.
push_sinkstring|nullSink type used for IM delivery, or null when no delivery is configured.
push_statusstringpending, succeeded, failed, or skipped.
push_finished_atstring|nullIM delivery finish time.
attemptintegerCurrent or final attempt number, starting from 1. When the Schedule has execution.max_attempts=2 and the server completes an automatic retry, this may return 2.
triggered_atstringTrigger time.
started_atstring|nullExecution start time.
completed_atstring|nullExecution end time.
duration_msinteger|nullExecution duration in milliseconds.
created_atstringRecord creation time.

Trigger context

typeDescription
scheduleAutomatically triggered from the Schedule trigger_policy, such as cron, once, or interval. Automatic triggers include scheduled_at.
manualManually triggered by POST /api/v1/forward/schedules/{schedule_id}/run.

Run error

The error object describes structured failure or skip reasons. It may be returned when status is failed or skipped; it is null when status is completed.
error.typeDescription
concurrency_limit_reachedThe Schedule reached execution.max_concurrent_runs; this trigger was recorded but not executed.
session_creation_failedForward failed to create or bind the execution Session.
execution_failedTemplate execution failed.
Schedule automatic retries are determined by the server based on failure type. Parameter errors, permission errors, concurrency limits, timeouts, or connection interruptions are not guaranteed to be retried. The response only returns the public fields defined on this page.

Errors

HTTPTypeCodeTrigger
401authentication_errorauthentication_requiredPAT or SAT invalid or expired.
404not_found_errorschedule_run_not_foundRun does not exist, is cross-tenant, or fails the identity_id constraint.

Notes

  • error.type=concurrency_limit_reached means a run was recorded but skipped due to max_concurrent_runs.
  • Poll this endpoint until status enters a terminal state.
Get schedule run - Qoder