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

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

`GET /api/v1/ci/pipelines/{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/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, required

## Response `200`

CI pipeline catalog

- object
  - `pipeline` object, required
    - `id` string, required
    - `organization_id` string, required
    - `repository_id` string, nullable, required
    - `hosted_app_id` string, nullable, required
    - `ci_runner_pool_id` string, nullable, required
    - `required_capabilities_csv` string, nullable, required
    - `slug` string, required
    - `name` string, required
    - `description` string, nullable, required
    - `source_kind` string, required
    - `status` string, required
    - `default_branch` string, nullable, required
    - `workflow_path` string, nullable, required
    - `trigger_on_push` boolean, required
    - `trigger_on_pull_request` boolean, required
    - `trigger_on_schedule` boolean, required
    - `concurrency_key` 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
    - `runner_pool` object, nullable, required
    - `runs` 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

## 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)
