# Get a run's jobs (/api/runs/get-run)

`GET /api/runs/{id}`

The run → jobs → attempts hierarchy for a single run (sling runs show): the run header plus each logical job (stable by name) with its attempts oldest → newest. Authenticated; the run id is resolved against the CI facts store within the caller's org. A run in another org 404s (opaque).

Base URL: `https://runners.starsling.dev`

## Authentication

Requires a bearer token (`Authorization: Bearer`).

## Parameters

| Name | In | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | GitHub run id. A non-numeric id resolves to 404, not 422. e.g. `28961231706` |
| `org` | query | string | yes | GitHub organization login. Scopes the request to your membership. e.g. `acme` |

## Responses

| Status | Description |
| --- | --- |
| `200` | One run, with each of its jobs and that job's attempts. |
| `401` | No credential, or a GitHub grant too old to read org membership — re-run `sling login`. |
| `403` | You are not a member of the org named in `?org=`. |
| `404` | No such run in that org. A run in an org you can't see answers the same way — existence is never confirmed across a tenant boundary. |
| `422` | A path or query parameter failed schema validation. `details` names each offending field. |
| `500` | The control plane failed, or the CI facts store is not configured for this deployment. |

### `200` body

- `run` — object, required
  - `run_id` — string, required
  - `run_url` — string, required
  - `workflow_path` — string, required
  - `branch` — string
  - `trigger` — string, required
  - `status` — string, required
  - `conclusion` — string
  - `created_at` — string, required
  - `duration_ms` — string | integer
    - **Variant 1** — string
    - **Variant 2** — integer
- `jobs` — array<object>, required
  - array of object
    - `job_name` — string, required
    - `attempts` — array<object>, required

### Example

```json
{
  "run": {
    "run_id": "28961231706",
    "run_url": "https://github.com/acme/api/actions/runs/28961231706",
    "workflow_path": ".github/workflows/ci.yml",
    "branch": "main",
    "trigger": "push",
    "status": "completed",
    "conclusion": "failure",
    "created_at": "2026-07-22T09:14:03.000Z",
    "duration_ms": 412000
  },
  "jobs": [
    {
      "job_name": "typecheck",
      "attempts": [
        {
          "attempt_id": "att_88392691097.1",
          "attempt": 1,
          "status": "completed",
          "conclusion": "failure",
          "runner_id": "611593",
          "label": "starsling-ubuntu-24.04-8",
          "duration_ms": 89000
        }
      ]
    }
  ]
}
```