> ## Documentation Index
> Fetch the complete documentation index at: https://agentmail.manicule.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For every page in one file, fetch https://agentmail.manicule.dev/llms-full.txt (large).
> To search and read these docs as tools, connect the MCP server at https://agentmail.manicule.dev/api/mcp.
> Every agent surface: https://agentmail.manicule.dev/.well-known/llms-manifest.json

# Create Draft (/api-reference/create-draft)

<!-- agent-signals: reading_time_min: 7 · est_tokens: 4228 · updated: 2026-09-29 -->
Related: [Sign Up](/api-reference/sign-up.md), [Attach Human](/api-reference/attach-human.md), [Verify](/api-reference/verify.md), [List Inboxes](/api-reference/list-inboxes.md), [Create Inbox](/api-reference/create-inbox.md), [Search Inboxes](/api-reference/search-inboxes.md)

# Create Draft

`POST /v0/inboxes/{inbox_id}/drafts`

> Create a draft. Supply `in_reply_to` to create a reply draft (with
> `reply_all` to address the whole thread), whose recipients, subject, and
> threading are derived from the referenced message, or `forward_of` to
> create a forward draft, which derives the subject, threading, and
> forwarded content from the source but keeps recipients caller-supplied.
>
> **CLI:**
> ```bash
> agentmail inboxes drafts create --inbox-id <inbox_id> --to recipient@example.com --subject "Draft subject" --text "Draft body"
> ```

Base URL: `https://api.agentmail.to`

Base URL: `https://x402.api.agentmail.to`

Base URL: `https://mpp.api.agentmail.to`

Base URL: `https://api.agentmail.eu`

## OpenAPI

```json
{
  "servers": [
    {
      "url": "https://api.agentmail.to",
      "description": "prod"
    },
    {
      "url": "https://x402.api.agentmail.to",
      "description": "prod-x402"
    },
    {
      "url": "https://mpp.api.agentmail.to",
      "description": "prod-mpp"
    },
    {
      "url": "https://api.agentmail.eu",
      "description": "eu-prod"
    }
  ],
  "security": [
    {
      "Bearer": []
    }
  ],
  "securitySchemes": {
    "Bearer": {
      "type": "http",
      "scheme": "bearer"
    }
  },
  "parameters": [
    {
      "name": "inbox_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "description": "The ID of the inbox.",
        "title": "InboxId"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "properties": {
            "labels": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Labels of draft.",
              "title": "DraftLabels"
            },
            "reply_to": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Reply-to addresses. In format `username@domain.com` or `Display Name <username@domain.com>`.",
              "title": "DraftReplyTo"
            },
            "to": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Addresses of recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
              "title": "DraftTo"
            },
            "cc": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Addresses of CC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
              "title": "DraftCc"
            },
            "bcc": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Addresses of BCC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
              "title": "DraftBcc"
            },
            "subject": {
              "type": "string",
              "description": "Subject of draft.",
              "title": "DraftSubject"
            },
            "text": {
              "type": "string",
              "description": "Plain text body of draft.",
              "title": "DraftText"
            },
            "html": {
              "type": "string",
              "description": "HTML body of draft.",
              "title": "DraftHtml"
            },
            "attachments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "filename": {
                    "type": "string",
                    "description": "Filename of attachment.",
                    "title": "AttachmentFilename"
                  },
                  "content_type": {
                    "type": "string",
                    "description": "Content type of attachment.",
                    "title": "AttachmentContentType"
                  },
                  "content_disposition": {
                    "type": "string",
                    "enum": [
                      "inline",
                      "attachment"
                    ],
                    "description": "Content disposition of attachment.",
                    "title": "AttachmentContentDisposition"
                  },
                  "content_id": {
                    "type": "string",
                    "description": "Content ID of attachment.",
                    "title": "AttachmentContentId"
                  },
                  "content": {
                    "type": "string",
                    "description": "Base64 encoded content of the attachment. The entire request, including the message body and all attachments, is limited to 6 MB."
                  },
                  "url": {
                    "type": "string",
                    "description": "URL that AgentMail can download without custom authentication headers or cookies.\nRedirects and pre-signed URLs are supported, and the final response must be a\nsuccessful 2xx response. Keep URL-backed attachments around 30 MB total per message."
                  }
                },
                "description": "Provide either `content` or `url` for each attachment.",
                "title": "SendAttachment"
              },
              "description": "Attachments to include in draft."
            },
            "in_reply_to": {
              "type": "string",
              "description": "ID of message being replied to.",
              "title": "DraftInReplyTo"
            },
            "forward_of": {
              "type": "string",
              "description": "ID of message being forwarded.",
              "title": "DraftForwardOf"
            },
            "reply_all": {
              "type": "boolean",
              "description": "Reply to all recipients of the original message.",
              "title": "DraftReplyAll"
            },
            "send_at": {
              "type": "string",
              "format": "date-time",
              "description": "Time at which to schedule send draft.",
              "title": "DraftSendAt"
            },
            "client_id": {
              "type": "string",
              "description": "Client ID of draft.",
              "title": "DraftClientId"
            }
          },
          "description": "Body for creating a draft. Supports plain, reply, reply-all, and forward\ndrafts:\n\n- **Plain draft:** supply `to`, `subject`, `text`, etc.\n- **Reply:** set `in_reply_to` to a message ID. Recipients, subject, and\n  threading are derived from that message. Set `reply_all` to address the\n  whole thread (you then cannot also pass `to`, `cc`, or `bcc`).\n- **Forward:** set `forward_of` to a message ID. The subject and threading\n  are derived from the source message, whose body and attachments are\n  merged in at send time.\n\n`in_reply_to` and `forward_of` are mutually exclusive, and reading the\nreferenced message requires `message_read` permission.",
          "title": "CreateDraftRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Response with status 200",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "inbox_id": {
                "type": "string",
                "description": "The ID of the inbox.",
                "title": "InboxId"
              },
              "draft_id": {
                "type": "string",
                "description": "ID of draft.",
                "title": "DraftId"
              },
              "client_id": {
                "type": "string",
                "description": "Client ID of draft.",
                "title": "DraftClientId"
              },
              "labels": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Labels of draft.",
                "title": "DraftLabels"
              },
              "reply_to": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Reply-to addresses. In format `username@domain.com` or `Display Name <username@domain.com>`.",
                "title": "DraftReplyTo"
              },
              "to": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Addresses of recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
                "title": "DraftTo"
              },
              "cc": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Addresses of CC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
                "title": "DraftCc"
              },
              "bcc": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Addresses of BCC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`.",
                "title": "DraftBcc"
              },
              "subject": {
                "type": "string",
                "description": "Subject of draft.",
                "title": "DraftSubject"
              },
              "preview": {
                "type": "string",
                "description": "Text preview of draft.",
                "title": "DraftPreview"
              },
              "text": {
                "type": "string",
                "description": "Plain text body of draft.",
                "title": "DraftText"
              },
              "html": {
                "type": "string",
                "description": "HTML body of draft.",
                "title": "DraftHtml"
              },
              "attachments": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "attachment_id": {
                      "type": "string",
                      "description": "ID of attachment.",
                      "title": "AttachmentId"
                    },
                    "filename": {
                      "type": "string",
                      "description": "Filename of attachment.",
                      "title": "AttachmentFilename"
                    },
                    "size": {
                      "type": "integer",
                      "description": "Size of attachment in bytes.",
                      "title": "AttachmentSize"
                    },
                    "content_type": {
                      "type": "string",
                      "description": "Content type of attachment.",
                      "title": "AttachmentContentType"
                    },
                    "content_disposition": {
                      "type": "string",
                      "enum": [
                        "inline",
                        "attachment"
                      ],
                      "description": "Content disposition of attachment.",
                      "title": "AttachmentContentDisposition"
                    },
                    "content_id": {
                      "type": "string",
                      "description": "Content ID of attachment.",
                      "title": "AttachmentContentId"
                    }
                  },
                  "required": [
                    "attachment_id",
                    "size"
                  ],
                  "title": "Attachment"
                },
                "description": "Attachments in draft.",
                "title": "DraftAttachments"
              },
              "in_reply_to": {
                "type": "string",
                "description": "ID of message being replied to.",
                "title": "DraftInReplyTo"
              },
              "forward_of": {
                "type": "string",
                "description": "ID of message being forwarded.",
                "title": "DraftForwardOf"
              },
              "references": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "IDs of previous messages in thread."
              },
              "send_status": {
                "type": "string",
                "enum": [
                  "scheduled",
                  "sending",
                  "failed"
                ],
                "description": "Schedule send status of draft.",
                "title": "DraftSendStatus"
              },
              "send_at": {
                "type": "string",
                "format": "date-time",
                "description": "Time at which to schedule send draft.",
                "title": "DraftSendAt"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time",
                "description": "Time at which draft was last updated.",
                "title": "DraftUpdatedAt"
              },
              "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Time at which draft was created."
              }
            },
            "required": [
              "inbox_id",
              "draft_id",
              "labels",
              "updated_at",
              "created_at"
            ],
            "title": "Draft"
          }
        }
      }
    },
    "400": {
      "description": "Error response with status 400",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of error.",
                "title": "ErrorName"
              },
              "code": {
                "type": "string",
                "description": "Stable, machine-readable error code in snake_case (for example, not_found or missing_permission). Branch on this rather than the message text.",
                "title": "ErrorCode"
              },
              "message": {
                "type": "string",
                "description": "Error message.",
                "title": "ErrorMessage"
              },
              "errors": {
                "description": "Validation errors. Each entry has a path and a message identifying the invalid field."
              },
              "fix": {
                "type": "string",
                "description": "The concrete next action that resolves the error.",
                "title": "ErrorFix"
              },
              "docs": {
                "type": "string",
                "description": "Link to the error reference entry for this code.",
                "title": "ErrorDocs"
              }
            },
            "required": [
              "name",
              "errors"
            ],
            "title": "ValidationErrorResponse"
          }
        }
      }
    },
    "404": {
      "description": "Error response with status 404",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of error.",
                "title": "ErrorName"
              },
              "code": {
                "type": "string",
                "description": "Stable, machine-readable error code in snake_case (for example, not_found or missing_permission). Branch on this rather than the message text.",
                "title": "ErrorCode"
              },
              "message": {
                "type": "string",
                "description": "Error message.",
                "title": "ErrorMessage"
              },
              "fix": {
                "type": "string",
                "description": "The concrete next action that resolves the error.",
                "title": "ErrorFix"
              },
              "docs": {
                "type": "string",
                "description": "Link to the error reference entry for this code.",
                "title": "ErrorDocs"
              }
            },
            "required": [
              "name",
              "message"
            ],
            "title": "ErrorResponse"
          }
        }
      }
    }
  }
}
```
