---
title: "GET /api/v1/hosting/apps/{app_id}/deployment_operations"
method: GET
path: "/api/v1/hosting/apps/{app_id}/deployment_operations"
tags: ["hosting"]
---

# GET /api/v1/hosting/apps/{app_id}/deployment_operations

`GET /api/v1/hosting/apps/{app_id}/deployment_operations`

## 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/hosting/apps/{app_id}/deployment_operations`
- Auth: HTTP bearer

## Path parameters

- `app_id` string, required

## Query parameters

- `page` integer
- `limit` integer

## Response `200`

Logical deployment operations

- object
  - `operations` DeploymentOperation[], required
    - `rollout_predecessor_id` string, nullable, required
    - `id` string, required
    - `number` integer, required
    - `status` 'queued' | 'building' | 'deploying' | 'active' | 'failed' | 'rolled_back' | 'canceled', required
    - `app` object, required
      - `id` string, required
      - `slug` string, required
      - `name` string, required
    - `service` object, required
      - `id` string, required
      - `slug` string, required
      - `name` string, required
    - `environment` object, required
      - `id` string, required
      - `slug` string, required
      - `name` string, required
      - `kind` string, required
    - `placement` object, nullable, required
      - `id` string, required
      - `mode` 'single_region' | 'multi_region', required
      - `rollout_strategy` 'health_gated' | 'burst', required
      - `replicas_per_region` integer, required
      - `total_replicas` integer, required
    - `rollout_strategy` 'health_gated' | 'burst', required
    - `replicas_per_region` integer, required
    - `total_replicas` integer, required
    - `trigger_kind` 'manual' | 'push' | 'schedule' | 'api' | 'rollback', required
    - `is_rollback` boolean, required
    - `rollback_source_release_id` string, nullable, required
    - `rollback_target_release_id` string, nullable, required
    - `rollback_reason` string, nullable, required
    - `source_ref` string, nullable, required
    - `commit_sha` string, nullable, required
    - `artifact_locator` string, nullable, required
    - `deployed_url` string, uri, nullable, required
    - `build_duration_seconds` integer, nullable, required
    - `duration_seconds` integer, nullable, required
    - `creator` object, nullable, required
      - `id` string, required
      - `name` string, nullable, required
      - `picture_url` string, nullable, required
    - `build_status` 'queued' | 'building' | 'succeeded' | 'failed' | 'canceled' | 'skipped', required
    - `rollout_status` 'not_started' | 'queued' | 'running' | 'succeeded' | 'failed' | 'canceled' | 'mixed', required
    - `history_kind` 'current' | 'superseded' | 'stale' | 'historical', required
    - `history_reason` string, nullable, required
    - `ci_pipeline_id` string, nullable, required
    - `ci_pipeline_run_id` string, nullable, required
    - `build_source` object, nullable, required
      - `phase` 'waiting' | 'reused', required
      - `deployment_id` string, required
      - `canonical_deployment_id` string, required
      - `number` integer, required
    - `region_count` integer, required
    - `live_region_count` integer, required
    - `is_live` boolean, required
    - `children` DeploymentOperationChild[], required
      - `deployment_id` string, required
      - `target_id` string, nullable, required
      - `number` integer, required
      - `environment` object, required
        - `id` string, required
        - `slug` string, required
        - `name` string, required
        - `kind` string, required
      - `location` object, nullable, required
        - `id` string, required
        - `code` string, required
        - `name` string, required
      - `build_role` 'leader' | 'follower' | 'standalone', required
      - `build_status` 'queued' | 'building' | 'succeeded' | 'failed' | 'canceled' | 'skipped', required
      - `rollout_status` 'not_started' | 'queued' | 'running' | 'succeeded' | 'failed' | 'canceled', required
      - `history_kind` 'current' | 'superseded' | 'stale' | 'historical', required
      - `history_reason` string, nullable, required
      - `recorded_status` 'queued' | 'building' | 'deploying' | 'active' | 'failed' | 'rolled_back' | 'canceled', required
      - `desired_replicas` integer, required
      - `live_replicas` integer, required
      - `is_live` boolean, required
      - `release_id` string, nullable, required
      - `rollout_id` string, nullable, required
      - `failure_message` string, nullable, required
      - `superseded_by_deployment_id` string, nullable, required
      - `ci_pipeline_id` string, nullable, required
      - `ci_pipeline_run_id` string, nullable, required
      - `started_at` string, date-time, nullable, required
      - `finished_at` string, date-time, nullable, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `pagination` object, required
    - `page` integer, required
    - `limit` integer, required
    - `count` integer, required
    - `last` integer, required
    - `previous` integer, nullable
    - `next` integer, nullable

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