> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cronapi.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Get job runs

> Retrieve execution history for a job

Returns the last 50 executions for a job, ordered by most recent first. Most jobs will have a single run, but manually triggered jobs may have additional entries.

## Path parameters

<ResponseField name="id" type="string" required>
  The UUID of the job.
</ResponseField>

## Response

Returns an array of [run](/concepts/runs) objects.

<ResponseField name="id" type="string">
  Unique run identifier (UUID).
</ResponseField>

<ResponseField name="cron_id" type="string | null">
  Always `null` for job runs.
</ResponseField>

<ResponseField name="job_id" type="string">
  The job this run belongs to.
</ResponseField>

<ResponseField name="request_id" type="string | null">
  Request identifier.
</ResponseField>

<ResponseField name="status_code" type="integer">
  HTTP status code returned by the webhook.
</ResponseField>

<ResponseField name="success" type="boolean">
  `true` if the status code was 2xx.
</ResponseField>

<ResponseField name="response_time_ms" type="integer">
  Execution time in milliseconds.
</ResponseField>

<ResponseField name="error" type="string | null">
  Error message or response body on failure. `null` on success.
</ResponseField>

<ResponseField name="fired_at" type="string">
  ISO 8601 timestamp of when the webhook was fired.
</ResponseField>

<CodeGroup>
  ```bash cURL theme={null}
  curl https://app.cronapi.dev/api/v1/jobs/b2c3d4e5-f6a7-8901-bcde-f12345678901/runs \
    -H "Authorization: Bearer your_api_key_here"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    `https://app.cronapi.dev/api/v1/jobs/${jobId}/runs`,
    { headers: { "Authorization": `Bearer your_api_key_here` } }
  );
  const runs = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      f"https://app.cronapi.dev/api/v1/jobs/{job_id}/runs",
      headers={"Authorization": "Bearer your_api_key_here"},
  )
  runs = response.json()
  ```
</CodeGroup>

```json 200 theme={null}
[
  {
    "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "cron_id": null,
    "job_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "request_id": null,
    "status_code": 200,
    "success": true,
    "response_time_ms": 230,
    "error": null,
    "fired_at": "2026-04-20T15:00:00.000Z"
  }
]
```
