---
title: "Cancel Fanout Endpoint"
method: POST
path: "/api/agent-runs/fanouts/{fanout_id}/cancel"
tags: ["agent-runs"]
---

# Cancel Fanout Endpoint

`POST /api/agent-runs/fanouts/{fanout_id}/cancel`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/agent-runs/fanouts/{fanout_id}/cancel`
- Auth: none declared

Cancel the unstarted children; let the in-flight ones drain.

``cancel_fanout`` only flushes, so the commit has to happen here - without
it the cancel would appear to succeed and then vanish on the next poll.

## Path parameters

- `fanout_id` string, uuid, required

## Headers

- `x-impersonate-identity-id` string, nullable

## Response `200`

Successful Response

- FanoutCancelResponse: Deliberately three separate numbers, never one "canceled" total. Cancel is a SPLIT, not a stop: unstarted children cancel immediately, in-flight ones drain (killing a hosted turn mid-provider-call would orphan its spend and its partial transcript). Collapsing these into one figure would let the UI imply an instant stop that did not happen.
  - `fanout_id` string, uuid, required
  - `canceled` integer, required
  - `draining` integer, required
  - `already_terminal` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thinqos/apis/thinqos-api.md) · [All operations](https://skmtc.dev/thinqos/apis/thinqos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinqos/apis/thinqos-api/revisions/5387b4ded614?raw)
