---
title: "Update Playbook"
method: PUT
path: "/api/v1/playbooks/{playbook_id}"
tags: ["playbooks"]
---

# Update Playbook

`PUT /api/v1/playbooks/{playbook_id}`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/playbooks/{playbook_id}`
- Auth: none declared

Update a playbook by creating a new version.

The current version is deactivated, and a new version is created
with the updated fields. Unchanged fields carry over.

## Path parameters

- `playbook_id` string, uuid, required

## Request body

- PlaybookUpdate: Update a playbook — creates a new version under the hood. Only fields provided will be changed; others carry over from current version.
  - `name` string, nullable
  - `playbook_type` 'zero_shot' | 'few_shot' | 'chain_of_thought' | 'react' | 'custom': Playbook archetypes for agent configuration.
  - `system_prompt` string, nullable
  - `model` string, nullable
  - `temperature` number, nullable
  - `max_tokens` integer, nullable
  - `top_p` number, nullable
  - `few_shot_examples` object[], nullable
  - `tools_config` object, nullable
  - `notes` string, nullable
  - `description` string, nullable
  - `is_public` boolean, nullable
  - `pricing_model` 'free' | 'one_time': How a Playbook is monetized in the Recruiting marketplace.
  - `price_usd_cents` integer, nullable

## Response `200`

Successful Response

- PlaybookRead
  - `id` string, uuid, required
  - `agent_id` string, uuid, required
  - `name` string, required
  - `version` integer, required
  - `parent_id` string, uuid, nullable, required
  - `is_active` boolean, required
  - `is_default` boolean, required
  - `is_public` boolean, required
  - `playbook_type` string, required
  - `system_prompt` string, nullable, required
  - `model` string, required
  - `temperature` number, required
  - `max_tokens` integer, required
  - `top_p` number, required
  - `few_shot_examples` object[], nullable, required
  - `tools_config` object, nullable, required
  - `notes` string, nullable, required
  - `description` string, nullable
  - `created_at` string, date-time, required
  - `pricing_model` string
  - `price_usd_cents` integer
  - `total_clones` integer
  - `total_revenue_usd_cents` integer
  - `already_hired` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
