---
title: "Retrieve a draft"
method: GET
path: "/v1/drafts/{draft_id}"
tags: ["drafts"]
---

# Retrieve a draft

`GET /v1/drafts/{draft_id}`

## Request

- Base URL: `https://cherami.to`
- URL: `https://cherami.to/v1/drafts/{draft_id}`
- Auth: HTTP bearer

Returns the draft's metadata, `from` (the inbox's current address and sender name) and its full saved `content`, attachments included as base64. The content is what you saved: Cherami adds its "Sent via Cherami" line and uses the inbox's sender name at the time you send. For a submitted draft, [read the sent message](https://cherami.to/docs/api/sending/get-sent-message) named by `sent_message_id` for what was sent and its outcome.

## Path parameters

- `draft_id` string, required

## Response `200`

Success.

- DraftDetail
  - `id` string, required: Cherami resource ID.
  - `inbox_id` string, required: Cherami resource ID.
  - `state` 'draft' | 'submitted', required
  - `subject` string, required
  - `created_at` string, date-time, required: UTC timestamp with milliseconds.
  - `updated_at` string, date-time, required: UTC timestamp with milliseconds.
  - `sent_message_id` string, nullable, required: Cherami resource ID.
  - `from` Mailbox, required
    - `address` string, required: Bare address such as alex@example.com: ASCII, at most 254 characters and 64 before the @.
    - `name` string: Optional name; blank means none. At most 256 UTF-8 bytes after trimming, without control characters.
  - `content` DraftContent, required
    - `to` Mailbox[], required
      - `address` string, required: Bare address such as alex@example.com: ASCII, at most 254 characters and 64 before the @.
      - `name` string: Optional name; blank means none. At most 256 UTF-8 bytes after trimming, without control characters.
    - `cc` Mailbox[], required
      - `address` string, required: Bare address such as alex@example.com: ASCII, at most 254 characters and 64 before the @.
      - `name` string: Optional name; blank means none. At most 256 UTF-8 bytes after trimming, without control characters.
    - `bcc` Mailbox[], required
      - `address` string, required: Bare address such as alex@example.com: ASCII, at most 254 characters and 64 before the @.
      - `name` string: Optional name; blank means none. At most 256 UTF-8 bytes after trimming, without control characters.
    - `subject` string, required
    - `text` string, required
    - `html` string
    - `in_reply_to` string: Cherami resource ID.
    - `labels` string[]
    - `attachments` StoredAttachment[], required
      - `filename` string, required: At most 255 UTF-8 bytes, without control characters, slashes or backslashes.
      - `type` string, required: MIME type without parameters.
      - `content` string, byte, required: The file's bytes as padded base64, without line breaks.
      - `disposition` 'attachment' | 'inline', required
      - `contentId` string: Content-ID of an inline file carried over from a forwarded message.

## Other responses

- `401`: `unauthorized`: Send a valid API key as `Authorization: Bearer <key>`. If the key stopped working, get a new one through [recovery](https://cherami.to/docs/guides/recovery).
- `404`: `not_found`: The resource does not exist or does not belong to this account. A reply or forward source must also be in the sending inbox.
- `503`: `content_unavailable`: Stored content could not be read. Retry later. `draft_unavailable`: The draft request failed. Repeat a draft send with the same draft ID: it never sends twice. Repeat a creation with its original idempotency key and payload; without a key, list drafts first. Read the draft before repeating an edit. Retry a read or a deletion.

---

[API](https://skmtc.dev/cherami/apis/cherami-http-api.md) · [All operations](https://skmtc.dev/cherami/apis/cherami-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cherami/apis/cherami-http-api/revisions/7bd993d538af?raw)
