---
title: "Generate a reply draft in the owner's voice"
method: POST
path: "/api/v1/leads/{id}/draft"
---

# Generate a reply draft in the owner's voice

`POST /api/v1/leads/{id}/draft`

## Request

- Base URL: `https://www.easeclaw.com`
- URL: `https://www.easeclaw.com/api/v1/leads/{id}/draft`
- Auth: HTTP bearer

Costs AI budget: drafting is capped by the plan's per-account daily budget and rate-limited to 30/hour. On 429 with code budget_reached, the Retry-After header says when the budget resets (midnight UTC).

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `tone` string: e.g. "friendly", "concise and technical"
  - `length` 'short' | 'medium' | 'long'
  - `note` string: revision instruction, e.g. "mention pricing"
  - `n` integer: number of variants; each costs budget

## Response `200`

The draft (first variant is persisted to the lead)

- object
  - `draft_reply` string
  - `replies` string[]
  - `draft_status` 'ready'

## Other responses

- `401`: Error
- `402`: Error
- `404`: Error
- `409`: Error
- `429`: Rate limited (300/hour per account; drafting also 30/hour + daily AI budget). Retry-After header set when known.
- `502`: Error
- `503`: Error

---

[API](https://skmtc.dev/easeclaw/apis/easeclaw-api.md) · [All operations](https://skmtc.dev/easeclaw/apis/easeclaw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/easeclaw/apis/easeclaw-api/revisions/79a190b20f61?raw)
