---
title: "Upload a style file"
method: POST
path: "/v3/ai-sdr/playbooks/{playbook_id}/style-files"
tags: ["AI SDR Playbooks"]
---

# Upload a style file

`POST /v3/ai-sdr/playbooks/{playbook_id}/style-files`

## Request

- Base URL: `https://api.reply.io`
- URL: `https://api.reply.io/v3/ai-sdr/playbooks/{playbook_id}/style-files`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/reply/apis/reply-api/docs/v3/ai-sdr/playbooks/:playbook_id/style-files/post.ts> (a function with typed inputs; its response is checked against the schema)

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

Uploads a style file (reference document) to a playbook. Style files inform tone and voice when the playbook is applied. Maximum upload size: 100 MB.

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

## Path parameters

- `playbook_id` string, required

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: The file to upload

## Response `201`

Style file uploaded successfully

- object: A single style file attached to a playbook. Style files are reference documents (PDFs, text excerpts, etc.) that inform tone and voice when the playbook is applied.
  - `id` integer: Unique identifier for the style file
  - `fileName` string: Original name of the uploaded file

## Other responses

- `400`: Missing/empty file, malformed playbook id, or upstream rejection (file too large, unsupported format)
- `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
- `404`: Playbook not found
- `502`: Upstream AI SDR service failure

---

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