---
title: "POST /api/v1/agent/swarms/{id}/cancel"
method: POST
path: "/api/v1/agent/swarms/{id}/cancel"
tags: ["agent"]
---

# POST /api/v1/agent/swarms/{id}/cancel

`POST /api/v1/agent/swarms/{id}/cancel`

## 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/agent/swarms/{id}/cancel`
- Auth: HTTP bearer

## Path parameters

- `id` string, required

## Request body

- object
  - `reason` string

## Response `200`

Agent swarm canceled (PRD 146 FR30)

- object
  - `swarm` AgentSwarmDetail, required
    - `id` string, required
    - `organization_id` string, required
    - `organization_slug` string, nullable, required
    - `repository_slug` string, nullable, required
    - `creator_user_id` string, nullable, required
    - `repository_id` string, nullable, required
    - `phase` 'planning' | 'executing' | 'landing' | 'releasing' | 'terminal', nullable, required
    - `outcome` 'succeeded' | 'partially_succeeded' | 'failed' | 'canceled' | 'budget_exhausted', nullable, required
    - `goal` string, nullable, required
    - `base_bookmark` string, nullable, required
    - `base_revision` string, nullable, required
    - `deadline_at` string, date-time, nullable, required
    - `canceled_at` string, date-time, nullable, required
    - `scheduler_generation` integer, required
    - `policy` object, required
    - `budget` object, required
    - `usage` object, required
    - `reserved` object, required
    - `summary` object, required
    - `environment` object, required
    - `canceled_count` integer, required
    - `skipped_count` integer, required
    - `github` object, required
      - `platform` 'composal' | 'github', required
      - `commits` integer, required
      - `prs_opened` integer, required
      - `prs_merged` integer, required
    - `number` integer, required
    - `display_id` integer, required
    - `slug` string, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'canceled', required
    - `model_provider` string, nullable, required
    - `model` string, nullable, required
    - `base_ref` string, nullable, required
    - `concurrency_key` string, nullable, required
    - `task_template_json` string, nullable, required
    - `queued_at` string, date-time, 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
    - `task_count` integer, required
    - `done_count` integer, required
    - `failed_count` integer, required
    - `queued_at_label` string, nullable, required
    - `started_at_label` string, nullable, required
    - `finished_at_label` string, nullable, required
    - `created_at_label` string, nullable, required
    - `updated_at_label` string, nullable, required
    - `tasks` AgentSwarmTask[], required
      - `id` string, required
      - `organization_id` string, required
      - `agent_swarm_id` string, required
      - `assigned_runner_id` string, nullable, required
      - `number` integer, required
      - `display_id` integer, required
      - `repo_url` string, uri, required
      - `prompt` string, required
      - `status` 'queued' | 'blocked' | 'running' | 'succeeded' | 'failed' | 'canceled' | 'skipped', required
      - `role` 'planner' | 'subplanner' | 'worker' | 'restack' | 'release_watch', required
      - `depth` integer, required
      - `position` integer, required
      - `iteration` integer, required
      - `title` string, nullable, required
      - `failure_code` string, nullable, required
      - `blocked_reason` 'dependency_pending' | 'dependency_failed', nullable, required
      - `environment_profile` string, nullable, required
      - `harness` 'roder' | 'codex', required
      - `input_revision` string, nullable, required
      - `model_provider` string, nullable, required
      - `model` string, nullable, required
      - `reasoning_effort` string, nullable, required
      - `deadline_at` string, date-time, nullable, required
      - `parent_task_id` string, nullable, required
      - `stack_after_task_id` string, nullable, required
      - `depends_on_task_ids` string[], required
      - `current_attempt_id` string, nullable, required
      - `owned_paths` string[], required
      - `acceptance_commands` object[], required
      - `result` object, required
      - `landing_state` 'none' | 'held' | 'requested' | 'queued' | 'landed' | 'failed', required
      - `run_id` string, nullable, required
      - `commit_count` integer, required
      - `changes` object[], required
        - `number` integer, nullable, required
        - `title` string, required
        - `status` string, required
        - `pull_request` object, nullable, required
          - `change_number` integer, nullable, required
          - `number` integer, required
          - `url` string, nullable, required
          - `state` string, required
          - `branch` string, nullable, required
      - `recent_activity` object[], required
        - `seq` integer, required
        - `kind` 'shell' | 'shell_exit' | 'read_file' | 'write_file' | 'commit' | 'export' | 'stack_post' | 'acceptance' | 'notice' | 'harness' | 'thought' | 'message', required
        - `summary` string, required
        - `exit_code` integer, nullable, required
        - `ts` string, date-time, required
      - `commit_sha_result` string, nullable, required
      - `diff_artifact_url` string, uri, nullable, required
      - `error_message` 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
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `queued_at_label` string, nullable, required
      - `started_at_label` string, nullable, required
      - `finished_at_label` string, nullable, required
      - `created_at_label` string, nullable, required
      - `updated_at_label` string, nullable, required

## Other responses

- `401`: Unauthorized
- `403`: Invalid agent swarm request
- `404`: Invalid agent swarm request
- `409`: Invalid agent swarm request
- `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)
