# AgentMail Create Draft

> AgentMail Create Draft is a free API for AI agents from AgentMail at mpp.api.agentmail.to, Free, status unknown (last checked 2026-10-11).

Creates an email draft in a specified AgentMail inbox, with optional scheduling, recipients, attachments, and labels

## Facts

- Endpoint: POST https://mpp.api.agentmail.to/v0/inboxes/:inbox_id/drafts?utm_source=zero.xyz
- Price: Free
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Provider: AgentMail
- Docs: https://docs.agentmail.to
- Website: https://agentmail.to
- Tags: email, inboxes, domains, drafts, threads, webhooks, messaging, ai, social
- Canonical page: https://www.zero.xyz/c/agentmail-drafts-ef2073d7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_uLdg1ZfqDN45800sP7nUH

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agentmail-drafts-ef2073d7 -d '<json body>'
```

Example prompt: In my AgentMail inbox 'inbox_abc123', save a draft email to john.doe@example.com with subject 'Project Update' and body 'Hi John, here is the latest update on the project.' — schedule it to send tomorrow at 9am.

## When to prefer this

Use this endpoint when an AI agent needs to compose and save an email for later review or scheduled delivery, rather than sending immediately. Ideal when the agent wants to prepare outgoing emails with rich content (HTML, attachments, labels) that may need human review before sending, or when precise scheduled delivery is required.

## Known failure modes

- Invalid inbox_id returns 404 not found
- Missing or invalid Authorization Bearer token returns 401 unauthorized
- Malformed recipient email addresses return 422 validation error
- Invalid send_at datetime format returns 422 validation error
- Attachment content that is not valid base64 returns 422 validation error
- inbox_id path parameter missing causes 400 or 404 error

## How this service works

Create Draft

## Output

Returns a Draft object containing the draft_id, inbox_id, to/cc/bcc/reply_to addresses, subject, HTML and plain-text body, labels, preview text, send_at schedule time, references to prior thread messages, client_id, and created_at/updated_at timestamps.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "CreateDraftRequest",
 "properties": {
  "cc": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftCc",
   "description": "Addresses of CC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "to": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftTo",
   "description": "Addresses of recipients. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "bcc": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftBcc",
   "description": "Addresses of BCC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "html": {
   "type": "string",
   "title": "DraftHtml",
   "description": "HTML body of draft."
  },
  "text": {
   "type": "string",
   "title": "DraftText",
   "description": "Plain text body of draft."
  },
  "labels": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftLabels",
   "description": "Labels of draft."
  },
  "send_at": {
   "type": "string",
   "title": "DraftSendAt",
   "format": "date-time",
   "description": "Time at which to schedule send draft."
  },
  "subject": {
   "type": "string",
   "title": "DraftSubject",
   "description": "Subject of draft."
  },
  "reply_to": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftReplyTo",
   "description": "Reply-to addresses. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "client_id": {
   "type": "string",
   "title": "DraftClientId",
   "description": "Client ID of draft."
  },
  "attachments": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "SendAttachment",
    "properties": {
     "url": {
      "type": "string",
      "description": "URL to the attachment."
     },
     "content": {
      "type": "string",
      "description": "Base64 encoded content of attachment."
     },
     "filename": {
      "type": "string",
      "title": "AttachmentFilename",
      "description": "Filename of attachment."
     },
     "content_id": {
      "type": "string",
      "title": "AttachmentContentId",
      "description": "Content ID of attachment."
     },
     "content_type": {
      "type": "string",
      "title": "AttachmentContentType",
      "description": "Content type of attachment."
     },
     "content_disposition": {
      "enum": [
       "inline",
       
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "Draft",
 "required": [
  "inbox_id",
  "draft_id",
  "labels",
  "updated_at",
  "created_at"
 ],
 "properties": {
  "cc": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftCc",
   "description": "Addresses of CC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "to": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftTo",
   "description": "Addresses of recipients. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "bcc": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftBcc",
   "description": "Addresses of BCC recipients. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "html": {
   "type": "string",
   "title": "DraftHtml",
   "description": "HTML body of draft."
  },
  "text": {
   "type": "string",
   "title": "DraftText",
   "description": "Plain text body of draft."
  },
  "labels": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftLabels",
   "description": "Labels of draft."
  },
  "preview": {
   "type": "string",
   "title": "DraftPreview",
   "description": "Text preview of draft."
  },
  "send_at": {
   "type": "string",
   "title": "DraftSendAt",
   "format": "date-time",
   "description": "Time at which to schedule send draft."
  },
  "subject": {
   "type": "string",
   "title": "DraftSubject",
   "description": "Subject of draft."
  },
  "draft_id": {
   "type": "string",
   "title": "DraftId",
   "description": "ID of draft."
  },
  "inbox_id": {
   "type": "string",
   "title": "InboxId",
   "description": "The ID of the inbox."
  },
  "reply_to": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "DraftReplyTo",
   "description": "Reply-to addresses. In format `username@domain.com` or `Display Name <username@domain.com>`."
  },
  "client_id": {
   "type": "string",
   "title": "DraftClientId",
   "description": "Client ID of draft."
  },
  "created_at": {
   "type": "string",
   "format": "date-time",
   "description": "Time at which draft was created."
  },
  "references": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "IDs of previous messages in thread."
  },
  "updated_at": {
   "type": "string",
   "title": "DraftUpdatedAt",
   "format": "date-time",
   "description": "Time at which draft was last updated."
  },
  "att
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentmail-drafts-ef2073d7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from mpp.api.agentmail.to](https://www.zero.xyz/host/mpp.api.agentmail.to/llms.txt)
