---
title: "Cancel a Run"
method: POST
path: "/threads/{thread_id}/runs/{run_id}/cancel"
tags: ["Threads"]
---

# Cancel a Run

`POST /threads/{thread_id}/runs/{run_id}/cancel`

Mark a run as cancelled.  The streaming endpoints check this on each yield and bail early.  Idempotent: cancelling a run that's already finished or already cancelled returns 200.  Used by the CLI's Ctrl+C handler so the server doesn't keep an LLM call alive on its end after the client has given up.

## Path parameters

- `thread_id` string, uuid, required
- `run_id` string, required

## Headers

- `authorization` string, nullable
- `x_session_token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/backboard/apis/backboard-api.md) · [All operations](https://skmtc.dev/backboard/apis/backboard-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/backboard/backboard-api/revisions/e732d11ca11a/schema)
