---
title: "GET /api/v1/ci/pipelines/{pipeline_id}/runs/{id}"
method: GET
path: "/api/v1/ci/pipelines/{pipeline_id}/runs/{id}"
tags: ["ci"]
---

# GET /api/v1/ci/pipelines/{pipeline_id}/runs/{id}

`GET /api/v1/ci/pipelines/{pipeline_id}/runs/{id}`

## Request

- Base URL: `https://composal.com` (the document declares no server; this is the origin it was published from)
- URL: `https://composal.com/api/v1/ci/pipelines/{pipeline_id}/runs/{id}`
- Auth: HTTP bearer

## Path parameters

- `pipeline_id` string, required
- `id` string, required

## Response `200`

CI pipeline run catalog

- object
  - `pipeline_run` object, required
    - `id` string, required
    - `organization_id` string, required
    - `repository_id` string, nullable, required
    - `hosted_app_id` string, nullable, required
    - `ci_pipeline_id` string, required
    - `ci_runner_pool_id` string, nullable, required
    - `creator_user_id` string, nullable, required
    - `required_capabilities_csv` string, nullable, required
    - `number` integer, required
    - `display_id` integer, required
    - `slug` string, required
    - `status` string, required
    - `trigger_kind` string, required
    - `ref_name` string, nullable, required
    - `commit_sha` string, nullable, required
    - `source_url` string, nullable, required
    - `message` string, nullable, required
    - `concurrency_key` string, nullable, required
    - `retry_number` integer, required
    - `queued_at` string, date-time, nullable, required
    - `started_at` string, date-time, nullable, required
    - `finished_at` string, date-time, nullable, required
    - `canceled_at` string, date-time, nullable, required
    - `parameters_json` string, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `status_label` string, required
    - `status_state` 'active' | 'successful' | 'failed' | 'canceled' | 'blocked' | 'skipped' | 'enabled' | 'inactive' | 'unknown', required
    - `status_tone` 'success' | 'danger' | 'warning' | 'default', required
    - `active` boolean, required
    - `failed` boolean, required
    - `retryable` boolean, required
    - `jobs` object[], required
      - `id` string, required
      - `organization_id` string, required
      - `ci_pipeline_run_id` string, required
      - `ci_runner_id` string, nullable, required
      - `number` integer, required
      - `display_id` integer, required
      - `slug` string, required
      - `name` string, required
      - `kind` string, required
      - `status` string, required
      - `execution_order` integer, required
      - `runner_label_selector` string, nullable, required
      - `timeout_seconds` integer, nullable, required
      - `allow_failure` boolean, required
      - `queued_at` string, date-time, nullable, required
      - `started_at` string, date-time, nullable, required
      - `finished_at` string, date-time, nullable, required
      - `exit_code` integer, nullable, required
      - `retry_number` integer, required
      - `environment_csv` string, nullable, required
      - `dependencies_csv` string, nullable, required
      - `cache_archive_observations` object, nullable: Bounded server response history; it does not confirm runner extraction or test-result reuse.
        - `omitted_count` integer, required
        - `events` object[], required
          - `outcome` 'miss' | 'archive_missing' | 'exact_response' | 'prefix_response' | 'published_exact_response' | 'published_prefix_response' | 'error', required
          - `label` string, required
          - `observed_at` string, date-time, required
          - `response_bytes` integer, required
          - `elapsed_ms` number, required
          - `attempt` integer, required
          - `native_publication_id` string
          - `cache_entry_id` string
          - `source_run_id` string
          - `source_commit_id` string, nullable
          - `source_url` string
      - `reuse` object, nullable
        - `source_job_id` string, required
        - `source_run_id` string, required
        - `source_url` string, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `status_label` string, required
      - `status_state` 'active' | 'successful' | 'failed' | 'canceled' | 'blocked' | 'skipped' | 'enabled' | 'inactive' | 'unknown', required
      - `status_tone` 'success' | 'danger' | 'warning' | 'default', required
      - `active` boolean, required
      - `failed` boolean, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `422`: Unprocessable entity
- `502`: Bad gateway

---

[API](https://skmtc.dev/composal/apis/vex-api.md) - [All operations](https://skmtc.dev/composal/apis/vex-api/llms.txt) - [OpenAPI document](https://skmtc.dev/composal/apis/vex-api/revisions/74298a24e040?raw)
