---
title: "Run Playbook"
method: POST
path: "/v1/playbooks/{playbook_id}/run"
tags: ["playbooks"]
---

# Run Playbook

`POST /v1/playbooks/{playbook_id}/run`

## Request

- Base URL: `https://api.topo.io`
- URL: `https://api.topo.io/v1/playbooks/{playbook_id}/run`
- Auth: HTTP bearer

Manually trigger a run for a manual-trigger playbook.

Requires the `sequences:write` scope on the API key.

## Path parameters

- `playbook_id` string, uuid, required

## Request body

- RunPlaybookPublicInput
  - `trigger_payload` object: Optional trigger context passed into the run.
  - `dry_run` boolean: When true, execute without side effects where supported.

## Response `200`

Successful Response

- RunPlaybookPublicOutput
  - `run_id` string, uuid, required: Unique identifier of the started run.
  - `playbook_id` string, uuid, required: Playbook that was run.
  - `workflow_id` string, required: Temporal workflow execution ID.
  - `status` 'PENDING' | 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'REJECTED' | 'CANCELLED', required
  - `deduplicated` boolean, required: Whether this run deduplicated against an already active execution.

## Changes

- **2026-10-01** `4c947c3f2e11`: 1 warning
  - added the new `CANCELLED` enum value to the `status` response property for the response status `200`
- **2026-08-15** `80f4fd40b75e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/topo/apis/topo-public-api/changes/v1/playbooks/:playbook_id/run/post.md)

---

[API](https://skmtc.dev/topo/apis/topo-public-api.md) · [All operations](https://skmtc.dev/topo/apis/topo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/topo/apis/topo-public-api/revisions/62914910b2a8?raw)
