---
title: "Duplicate a playbook"
method: POST
path: "/v3/ai-sdr/playbooks/{id}/duplicate"
tags: ["AI SDR Playbooks"]
---

# Duplicate a playbook

`POST /v3/ai-sdr/playbooks/{id}/duplicate`

<Warning>
  **Coming soon.** This endpoint will be available by mid July 2026.
</Warning>

<small>_Requires the `ai-sdr:write` scope (or a broader one that includes it)._</small>

Creates a copy of an existing playbook and returns the new playbook in the response body. `global` playbooks can also be duplicated.

Requires the AI SDR feature on the caller's team.

## Path parameters

- `id` string, required

## Response `201`

Playbook duplicated successfully

- object — Detailed representation of a playbook, returned by get/create/update responses.
  - `id` string — Composite identifier formatted as `{prefix}-{numericId}` where the prefix encodes the playbook scope: `g` for `global`, `o` for `organization`, `t` for `team` (e.g. `g-1`, `o-42`, `t-7`).
  - `name` string — Display name of the playbook
  - `description` string — Short description of the playbook's purpose
  - `body` string — Full playbook body — typically Markdown or plain text instructions the AI SDR follows when this playbook is applied.
  - `type` 'global' | 'organization' | 'team' — Identifies the visibility scope of a playbook. - `global` — Reply-curated, read-only across all teams. - `organization` — visible to every team in the caller's organization. - `team` — visible to the caller's team only. `global` playbooks are never created or modified via the API; only `organization` and `team` are accepted on create.
  - `lastUpdatedAt` string, date-time — Timestamp of the last modification
  - `authorUserId` integer, nullable — User ID of the playbook author. `null` for `global` playbooks and when the original author is no longer a team member.
  - `styleFiles` object[] — Style files attached to the playbook. Managed via the `/style-files` sub-resource — uploads are immediate, deletes are immediate; the field is read-only on the playbook payload.
    - `id` integer — Unique identifier for the style file
    - `fileName` string — Original name of the uploaded file

## Other responses

- `400` — Malformed playbook id
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — AI SDR feature is not available for the caller's team, playbook duplication is not enabled for the team, or the caller lacks permission to duplicate this playbook
- `404` — Source playbook not found
- `502` — Upstream AI SDR service failure

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
