---
title: "Saves a host-drafted reply without calling a model or sending email"
method: POST
path: "/mail-drafts"
tags: ["mail-drafts"]
---

# Saves a host-drafted reply without calling a model or sending email

`POST /mail-drafts`

## Request

- Base URL: `https://api.mailly.site` (the document declares no server; this is the origin it was published from)
- URL: `https://api.mailly.site/mail-drafts`
- Auth: HTTP bearer

Each pending draft includes review_url: a private link where a person can read the exact email (from, to, subject, body) and send or discard it without signing in. Anyone with the link can do that, so share it only with the person who should decide. It expires after review_expires_at, and stops working once the draft is sent, discarded or edited (an edit returns a new link). Other drafts have review_url null.

## Request body

- object
  - `anchor_email_id` string, required
  - `text` string, required
  - `idempotency_key` string, required

## Response `200`

Draft action succeeded

- object
  - `success` boolean, required

## Other responses

- `400`: Invalid parameters
- `401`: Unauthorized
- `404`: Draft or email not found
- `409`: Draft version or status has changed
- `503`: Send result is unconfirmed; you can retry the same version

---

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