# AgentMail List Threads

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

Lists email threads within a specified AgentMail pod, with filtering by labels, date range, and inclusion of spam/trash/blocked items

## Facts

- Endpoint: GET https://mpp.api.agentmail.to/v0/pods/:pod_id/threads?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-threads-d4f30fbb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_BkOH8WqtSrbsLhDb3mFOr

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-threads-d4f30fbb
```

Example prompt: Show me the latest 20 email threads in my AgentMail pod 'pod_abc123', including only those labeled 'support', from the past week — skip spam and trash.

## When to prefer this

Use this endpoint when an AI agent needs to enumerate or browse email conversations within a specific AgentMail pod, particularly when filtering by label, date range, or inclusion of spam/trash. Prefer this over message-level endpoints when you need thread-level summaries and metadata rather than full message content.

## Known failure modes

- Invalid pod_id returns 404 Not Found
- Missing or invalid Authorization bearer token returns 401 Unauthorized
- Malformed date-time format for before/after filters returns 400 Bad Request
- Invalid page_token returns 400 or empty result
- Empty pod with no threads returns count=0 and empty threads array
- Rate limiting may return 429 Too Many Requests

## How this service works

List Threads

## Output

Returns a list of ThreadItem objects, each containing thread_id, inbox_id, subject, senders, recipients, labels, a text preview of the last message, timestamp, message count, size in bytes, attachment metadata, and created_at/updated_at timestamps. Also returns a count and limit for pagination purposes.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "pod_id"
 ],
 "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."
  },
  "pod_id": {
   "type": "string",
   "title": "PodId",
   "description": "ID of pod."
  },
  "ascending": {
   "type": "boolean",
   "title": "Ascending",
   "description": "Sort in ascending temporal order."
  },
  "page_token": {
   "type": "string",
   "title": "PageToken",
   "description": "Page token for pagination."
  },
  "include_spam": {
   "type": "boolean",
   "title": "IncludeSpam",
   "description": "Include spam in results."
  },
  "include_trash": {
   "type": "boolean",
   "title": "IncludeTrash",
   "description": "Include trash in results."
  },
  "include_blocked": {
   "type": "boolean",
   "title": "IncludeBlocked",
   "description": "Include blocked in results."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ListThreadsResponse",
 "required": [
  "count",
  "threads"
 ],
 "properties": {
  "count": {
   "type": "integer",
   "title": "Count",
   "description": "Number of items returned."
  },
  "limit": {
   "type": "integer",
   "title": "Limit",
   "description": "Limit of number of items returned."
  },
  "threads": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "ThreadItem",
    "required": [
     "inbox_id",
     "thread_id",
     "labels",
     "timestamp",
     "senders",
     "recipients",
     "last_message_id",
     "message_count",
     "size",
     "updated_at",
     "created_at"
    ],
    "properties": {
     "size": {
      "type": "integer",
      "title": "ThreadSize",
      "description": "Size of thread in bytes."
     },
     "labels": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "title": "ThreadLabels",
      "description": "Labels of thread."
     },
     "preview": {
      "type": "string",
      "title": "ThreadPreview",
      "description": "Text preview of last message in thread."
     },
     "senders": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "title": "ThreadSenders",
      "description": "Senders in thread. In format `username@domain.com` or `Display Name <username@domain.com>`."
     },
     "subject": {
      "type": "string",
      "title": "ThreadSubject",
      "description": "Subject of thread."
     },
     "inbox_id": {
      "type": "string",
      "title": "InboxId",
      "description": "The ID of the inbox."
     },
     "thread_id": {
      "type": "string",
      "title": "ThreadId",
      "description": "ID of thread."
     },
     "timestamp": {
      "type": "string",
      "title": "ThreadTimestamp",
      "format": "date-time",
      "description": "Timestamp of last sent or received message."
     },
     "created_at": {
      "type": "string",
      "title": "ThreadCreatedAt",
      "format": "date-time",
      "description": "Time at which thread was created."
     },
     "recipients": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "title": "ThreadRecipients",
      "description": "Recipients in thread. In format `username@domain.com` or `Display Name <username@domain.com>`."
     },
     "updated_at": {
      "type": "string",
      "title": "ThreadUpdatedAt",
      "format": "date-time",
      "description": "Time at which thread was last updat
… (truncated)
```

## More

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