---
title: "Update an org-level playbook"
method: PUT
path: "/v3/organizations/{org_id}/playbooks/{playbook_id}"
tags: ["playbooks"]
---

# Update an org-level playbook

`PUT /v3/organizations/{org_id}/playbooks/{playbook_id}`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

Update a playbook for an organization.

## Path parameters

- `playbook_id` string, required
- `org_id` string, required

## Request body

- PlaybookCreateRequest
  - `body` string, required
  - `macro` string, nullable: Playbook macro identifier. Must start with '!' followed by one or more letters, digits, underscores, or hyphens. Example: '!my_macro' or '!my-macro'
  - `structured_output_schema` object, nullable: JSON Schema (Draft 7) that sessions using this playbook will produce as structured output. Max 64KB. Must be self-contained (no external $ref).
  - `title` string, required

## Response `200`

Successful Response

- PlaybookResponse
  - `access_type` 'enterprise' | 'org', required
  - `body` string, required
  - `created_at` integer, required
  - `created_by` string, required
  - `macro` string, nullable, required
  - `org_id` string, nullable, required
  - `playbook_id` string, required
  - `structured_output_schema` object, nullable
  - `title` string, required
  - `updated_at` integer, required
  - `updated_by` string, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `422`: Unprocessable Content
- `429`: Too Many Requests

---

[API](https://skmtc.dev/devin/apis/devin-api-v1.md) - [All operations](https://skmtc.dev/devin/apis/devin-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/devin/apis/devin-api-v1/revisions/e3244476af1c?raw)
