> ## Documentation Index
> Fetch the complete documentation index at: https://monid.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Stop Run

> Stop a running run.

```text theme={null}
POST /v1/runs/:runId/stop
```

Stop a run that is `READY` or `RUNNING`. Stopping is asynchronous: the request is acknowledged with `202` and status `STOPPING`; poll [`GET /v1/runs/:runId`](/docs/api/runs/get) for the terminal state.

## Headers

| Header           | Required | Description                                                                                                                                                              |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Authorization`  | Yes      | `Bearer <api-key>`                                                                                                                                                       |
| `x-workspace-id` | No       | Only needed with OAuth/JWT tokens without an org context — with a Monid API key the workspace is bound to the key. See [`GET /v1/auth/workspaces`](/docs/api/auth/workspaces) |

## Path Parameters

| Parameter | Type   | Description        |
| --------- | ------ | ------------------ |
| `runId`   | string | The run ID to stop |

## Example Request

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST "https://api.monid.ai/v1/runs/01HXYZ1234567890ABCDEF/stop" \
    -H "Authorization: Bearer monid_live_..."
  ```

  ```typescript TypeScript theme={null}
  const res = await fetch(
    "https://api.monid.ai/v1/runs/01HXYZ1234567890ABCDEF/stop",
    {
      method: "POST",
      headers: {
        Authorization: "Bearer monid_live_...",
      },
    },
  );
  ```
</CodeGroup>

## 202 Accepted

The stop request was accepted. The run transitions to `STOPPING` and settles asynchronously — poll [`GET /v1/runs/:runId`](/docs/api/runs/get) for the terminal state.

```json theme={null}
{
  "runId": "01HXYZ1234567890ABCDEF",
  "status": "STOPPING",
  "message": "Stop requested"
}
```

## 409 Conflict

Returned when the run cannot be stopped:

* The run is already terminal (`COMPLETED`, `FAILED`, `BLOCKED`, `STOPPED`, `TIMED_OUT`)
* The endpoint does not support stopping (`stoppable: false` on the run)

A `403` is returned if the run belongs to a different workspace.

<Note>
  The settlement depends on the endpoint's pricing model: runs on **metered** endpoints bill for the usage accrued before the stop and settle as `COMPLETED`; all other stopped runs settle as `STOPPED` and are zero-billed.
</Note>
