# AgentMail List Drafts

> AgentMail List Drafts is a free API for AI agents from AgentMail at mpp.api.agentmail.to, callable via MPP, Free, status unknown (last checked 2026-09-15).

Lists email draft messages in an AgentMail inbox with filtering and pagination support

## Facts

- Endpoint: GET https://mpp.api.agentmail.to/v0/drafts
- Price: Free
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-15
- 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-79199f26
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_-C5RiKMqUFVg9gZh_oojo

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-79199f26
```

Example prompt: Show me all drafts in my AgentMail inbox that have the label 'follow-up', sorted from oldest to newest, and return the first 20 results.

## When to prefer this

Use this endpoint when an AI agent needs to review, audit, or process unsent email drafts stored in an AgentMail inbox — especially when filtering by time range, labels, or scheduling status. Prefer this over thread or message listing endpoints when specifically working with unsent draft content.

## Known failure modes

- Invalid or expired Bearer token returns 401 Unauthorized
- Invalid date-time format for before/after parameters returns 400 Bad Request
- Unknown inbox_id or no accessible drafts returns empty list
- Invalid page_token causes pagination error
- Label filter with no matching drafts returns empty array with count 0

## How this service works

List Drafts

## Output

Returns a paginated list of draft objects including draft IDs, inbox IDs, subject lines, recipient addresses (to/cc/bcc), text previews, scheduled send times, labels, attachment metadata, and last-updated timestamps, along with a count and optional pagination cursor.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "after": {
   "type": "string",
   "title": "After",
   "format": "date-time",
   "description": "Timestamp after which to filter by."
  },
  "limit": {
   "type": "integer",
   "title": "Limit",
   "description": "Limit of number of items returned."
  },
  "before": {
   "type": "string",
   "title": "Before",
   "format": "date-time",
   "description": "Timestamp before which to filter by."
  },
  "labels": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "Labels",
   "description": "Labels to filter by."
  },
  "ascending": {
   "type": "boolean",
   "title": "Ascending",
   "description": "Sort in ascending temporal order."
  },
  "page_token": {
   "type": "string",
   "title": "PageToken",
   "description": "Page token for pagination."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ListDraftsResponse",
 "required": [
  "count",
  "drafts"
 ],
 "properties": {
  "count": {
   "type": "integer",
   "title": "Count",
   "description": "Number of items returned."
  },
  "limit": {
   "type": "integer",
   "title": "Limit",
   "description": "Limit of number of items returned."
  },
  "drafts": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "DraftItem",
    "required": [
     "inbox_id",
     "draft_id",
     "labels",
     "updated_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>`."
     },
     "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."
     },
     "updated_at": {
      "type": "string",
      "title": "DraftUpdatedAt",
      "format": "date-time",
      "description": "Time at which draft was last updated."
     },
     "attachments": {
      "type": "array",
      "items": {
       "type": "object",
       "title": "Attachment",
       "required": [
        "attachment_id",
        "size"
       ],
       "properties": {
        "size": {

… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentmail-drafts-79199f26/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)
