---
title: "Edit an AI reply draft"
method: PUT
path: "/reply-drafts/{id}"
tags: ["Replies"]
---

# Edit an AI reply draft

`PUT /reply-drafts/{id}`

## Request

- Base URL: `https://api.emailchaser.com/r`
- URL: `https://api.emailchaser.com/r/reply-drafts/{id}`
- Auth: HTTP bearer

Updates the subject and/or body of an AI reply draft awaiting human review. At least one field must be provided and provided fields must be non-empty. This endpoint never changes the draft's status or sends anything - use POST /reply-drafts/{id}/send once the wording is ready. Emails that are not AI reply drafts - sent or scheduled emails, inbound replies, campaign sequence templates - are refused with 409.

## Path parameters

- `id` integer, required

## Request body

- ModelsUpdateReplyDraftRequest
  - `body` string
  - `subject` string

## Response `200`

The updated reply draft

- ModelsReplyDraftItem
  - `body` string
  - `cc` string[]
  - `createdAt` string
  - `id` integer
  - `inReplyToEmailId` integer: InReplyToEmailID is the inbound reply this draft answers. It is null in the rare case the draft's conversation can no longer be resolved (e.g. the inbound email was deleted).
  - `leadId` integer
  - `subject` string
  - `to` string[]: To and Cc are who the draft goes to when sent, as Reply All does it: the person who wrote the reply in To, and everyone else they addressed (their To and Cc lines, minus your workspace's own mailboxes) in Cc.

## Other responses

- `400`: Invalid draft ID or request body
- `401`: Unauthorized - invalid or missing API key
- `404`: Reply draft not found
- `409`: Email exists but is not an editable AI reply draft
- `500`: Failed to update reply draft

---

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