{
 "slug": "agentmail",
 "name": "AgentMail",
 "url": "https://agentmail.to",
 "domain": "agentmail.to",
 "category": "email-infrastructure",
 "category_name": "Email infrastructure",
 "tested_at": "2026-10-14",
 "run": "20261014T050126Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T190230Z",
   "date": "2026-10-01",
   "level": 4,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   },
   "drives": 2
  },
  {
   "run": "20261002T172243Z",
   "date": "2026-10-02",
   "level": 4,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   },
   "drives": 2
  },
  {
   "run": "20261003T204556Z",
   "date": "2026-10-03",
   "level": 4,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261014T050126Z",
   "date": "2026-10-14",
   "level": 4,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "obey"
   }
  }
 ],
 "level": 4,
 "level_name": "Runs on its own",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 3,
  "tries": 3,
  "self_start": true
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: key by API",
   "way": "api_signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 100% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Reaches the checkout: an agent payment on its API, none made yet",
   "value": "ready",
   "route": "agent_rail"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; can't delete its account",
   "at": "delete",
   "left": "stuck"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server; a docs page for each core task",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: key by API",
   "way": "api_signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "yes",
   "text": "Work done: 100% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Reaches the checkout: an agent payment on its API, none made yet",
   "value": "ready",
   "route": "agent_rail",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Nothing to cancel; can't delete its account",
   "at": "delete",
   "left": "stuck",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "key_by_api",
   "label": "Key by API",
   "routes": [
    "api_signup"
   ],
   "minutes": 1.5,
   "core": "9/9"
  }
 ],
 "minutes": 1.5,
 "next": {
  "to": 5,
  "text": "Next: pay without a person"
 },
 "stop": "pay",
 "core": "9/9",
 "scores": {
  "coverage": 91,
  "reliability": 71,
  "resilience": 94,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": 82,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": [
   {
    "standard": "MCP",
    "state": "current",
    "behind": null,
    "value": "2026-07-28"
   },
   {
    "standard": "MCP discovery",
    "state": "current",
    "behind": null,
    "value": "ok"
   },
   {
    "standard": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 86,
   "recovery": 92,
   "idempotency": 100,
   "rate_limits": 100
  },
  "summary": null
 },
 "stress": [
  {
   "capability": "Create and manage webhook endpoints for email events",
   "probe": "PATCH webhook with unknown field add_event_types",
   "outcome": "200, webhook returned unchanged (unknown field silently ignored)",
   "grade": "silent",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Send an email from an inbox",
   "probe": "Send to a 4th distinct recipient in the first hour (free plan)",
   "outcome": "429 rate_limit_exceeded, Retry-After: 2806, application/json {name,code,message,fix,docs}: \"sending ramp restarted ... at most 3 distinct recipients in its first hour (5 in its first 24 hours) ... lif",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "clean"
  },
  {
   "capability": "Send an email from an inbox",
   "probe": "Repeat a send with the same Idempotency-Key",
   "outcome": "200 + 200, same message_id, one message stored; changed body -> 409 IdempotencyKeyConflictError with fix",
   "grade": "clear",
   "idempotent": "yes",
   "rate_limit": null
  },
  {
   "capability": "Create an email inbox for an agent",
   "probe": "Repeat inbox create with same client_id, changed username",
   "outcome": "200, returns the original adt-idem inbox; no error that the body differs",
   "grade": "silent",
   "idempotent": "yes",
   "rate_limit": null
  },
  {
   "capability": "Send an email from an inbox",
   "probe": "Send without any recipient",
   "outcome": "400 validation_error, errors[].message \"to, cc, or bcc must be specified\", fix text",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an email inbox for an agent",
   "probe": "GET a well-formed inbox id that does not exist",
   "outcome": "404 not_found \"Inbox not found\" + fix naming id/scope/permissions",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Schedule a draft to send at a future time",
   "probe": "Draft with send_at \"tomorrow\"",
   "outcome": "400 validation_error invalid_format datetime (path send_at, regex shown)",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an email inbox for an agent",
   "probe": "Wrong API key",
   "outcome": "403 {\"message\":\"Forbidden\"} (API gateway; not 401, no fix/docs unlike other errors)",
   "grade": "vague",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Receive incoming email into an inbox",
   "probe": "Burst 15 quick GET /v0/inboxes?limit=1",
   "outcome": "statuses ['200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200', '200']; no RateLimit/X-RateLimit headers",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  },
  {
   "capability": "Send an email from an inbox",
   "probe": "Send to two recipients, one on the block list",
   "outcome": "403 message_rejected naming the blocked recipient; the other recipient got nothing (search in adt-mcp-1: 0 hits): all-or-nothing, consistent",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create an email inbox for an agent",
   "probe": "Call with a revoked key",
   "outcome": "401 unknown_api_key \"Unknown or revoked API key\" + fix + docs link (contrast: a made-up key gets 403 {\"message\":\"Forbidden\"})",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  }
 ],
 "surface_audit": null,
 "coverage_core": 100,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 4,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "b93fd797b556",
  "kb_version": "3+overlay-1353601952",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 4,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "obey"
 },
 "same_level_drives": 6,
 "drives": 6,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "page",
   "kind": "home",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt opens with agent sign-up steps; OpenAPI 3.1.0 (113 paths) at docs.agentmail.to/openapi.json; every docs page as Markdown (.md, and Accept: text/markdown redirects to it)."
  },
  "signup": {
   "status": "headless",
   "note": "POST /v0/agent/sign-up with human_email and username returned an org, an inbox and an API key in one call.",
   "way": "api_signup"
  },
  "verify": {
   "status": "headless",
   "note": "The 6-digit code reached the agent's inbox in seconds; POST /v0/agent/verify answered verified:true."
  },
  "credentials": {
   "status": "headless",
   "note": "The API key comes in the sign-up response; a scoped key via POST /v0/api-keys worked once the verify had propagated (first try 403 with a clear 'wait up to 5 minutes' fix), was used and revoked.",
   "via": ""
  },
  "first_call": {
   "status": "headless",
   "note": "GET /v0/inboxes 200 with the new inbox.",
   "route": "account"
  },
  "first_action": {
   "status": "headless",
   "note": "POST /v0/inboxes created a second inbox, read back with GET."
  },
  "pay": {
   "status": "blocked",
   "grade": "P3",
   "rails": [
    "x402 v2 (Base, Avalanche, Polygon, Solana, X Layer)",
    "MPP (method tempo, intent charge)"
   ],
   "rail_ids": [
    "x402",
    "mpp"
   ],
   "first_party": true,
   "rail_scope": "partial",
   "trial_path": "free tier",
   "route": "agent_rail",
   "checkout": {
    "reached": "no",
    "processor": "none",
    "captcha": "visible",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "x402",
    "price": "20.00",
    "currency": "USD",
    "period": "month",
    "plan": "Developer",
    "last_button": ""
   },
   "person": "none",
   "ours": "our $1 per-payment cap refused the 2 USDC-per-call price on the agent-payable rail (pay_tx.json); nothing paid",
   "note": "AgentMail's own hosts offer agent-payable rails: x402 v2 on x402.api.agentmail.to (2 USDC/call, exact, Base/Avalanche/Polygon/Solana) and MPP on mpp.api.agentmail.to (tempo, charge). Both sell only inbox creation per call. We read the 402 and decoded it but paid nothing because 2 USDC is over our $1 cap, this is the most agentic route (agent_rail) and nothing blocked it except our own cap. Separately, buying the $20/month Developer plan is console-only: the upgrade URL redirects to accounts.console.agentmail.to/sign-in behind a Cloudflare interstitial that never cleared and that our agent-made org has no console user to get past; that is a product wall, not a person-solvable CAPTCHA, and is unrelated to the agentic rail's checkout fields.",
   "cause": "paid_api",
   "detected_grade": "P4",
   "exercised": false
  },
  "cancel": {
   "status": "n/a",
   "grade": "n/a",
   "note": "Nothing to cancel: our agent used the free plan.",
   "docs_note": "Nothing to cancel: the drive used the free plan and paid nothing. The docs describe no cancel or downgrade route; plan changes live in the console (upgrade_url console.agentmail.to/dashboard/upgrade).",
   "nothing": "free_plan"
  },
  "delete": {
   "status": "blocked",
   "note": "No documented way to delete an organization (API, CLI, MCP or docs). We deleted every inbox, webhook and key headless; the last key's revoke made the next call 401, but the empty organization stays.",
   "left": "stuck",
   "after_hours": null,
   "account": true
  }
 },
 "routes": [
  {
   "route": "pay_per_call",
   "offered": "documented",
   "tried": false,
   "not_tried": "over_cap",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "wallet",
   "fresh": true,
   "minutes": 0
  },
  {
   "route": "api_signup",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 1.5
  },
  {
   "route": "sso_agent",
   "offered": "documented",
   "tried": false,
   "not_tried": "same_as",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "agentid",
   "fresh": true,
   "minutes": 0
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 1.5
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 2
  },
  {
   "route": "sso_enterprise",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": "each",
   "brings": "person_grant",
   "fresh": true,
   "minutes": 0
  },
  {
   "route": "person_key",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": "each",
   "brings": "person_grant",
   "fresh": true,
   "minutes": 0
  }
 ],
 "checkout": {
  "reached": "no",
  "processor": "none",
  "captcha": "visible",
  "three_ds": "not_seen",
  "phone_field": "none",
  "rail_offer": "x402",
  "period": "month",
  "card_form": false,
  "price": "20.00",
  "currency": "USD",
  "plan": "Developer"
 },
 "docs": {
  "at": "2026-10-14",
  "read": 357,
  "listed": 833,
  "sampled": true,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-10-13",
  "core_pages": "9 of 9",
  "capabilities": "covered"
 },
 "claims": {
  "claimed": 27,
  "tried": 27,
  "held": 27,
  "broken": 0,
  "unclear": 0,
  "not_tried": 0,
  "undocumented_works": 0
 },
 "pay_options": {
  "checked": "2026-10-14",
  "source": "probe",
  "options": [
   {
    "id": "stripe-projects",
    "name": "Stripe Projects",
    "kind": "agent-rail",
    "first_party": true,
    "lead": false,
    "networks": [],
    "testnet": false
   },
   {
    "id": "x402",
    "name": "x402",
    "kind": "agent-rail",
    "first_party": true,
    "lead": false,
    "networks": [
     "Base",
     "Solana",
     "Avalanche",
     "eip155:196",
     "Polygon"
    ],
    "testnet": false
   },
   {
    "id": "mpp",
    "name": "MPP",
    "kind": "agent-rail",
    "first_party": true,
    "lead": true,
    "networks": [],
    "testnet": false
   },
   {
    "id": "acp",
    "name": "Agentic Commerce Protocol",
    "kind": "agent-checkout",
    "first_party": true,
    "lead": true,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [
   "stripe-projects",
   "x402"
  ],
  "paid": null,
  "exercised": false,
  "detected_grade": "P4",
  "trial": {
   "no_card": true,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Sell the plan or credits over the rail, not only side endpoints",
    "how": "Let the paid call buy what the product sells, so the rail covers the whole product."
   },
   {
    "title": "Let a verified agent finish your checkout",
    "how": "Show signed agents no visible CAPTCHA at checkout, accept virtual and prepaid cards, and don't ask for a phone number to pay."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST, 113 paths, errors with code/message/fix/docs",
  "openapi": "3.1.0, servers for prod, x402, MPP and EU",
  "cli": "agentmail-cli 1.9.0 (npm), token login only"
 },
 "can_do": [
  "Sign up, verify and get an API key with two API calls and one emailed code",
  "Create, rename and delete inboxes",
  "Send mail with attachments and read it back",
  "Receive mail and read it by API, WebSocket, polling webhook or IMAP",
  "Reply, reply-all and forward inside a thread",
  "List, label and delete threads and messages",
  "Create, edit, send and schedule drafts",
  "Search messages and threads",
  "Block and allow addresses per inbox",
  "Create scoped API keys and public-key credentials",
  "Read usage, event and rate metrics",
  "Do all core work through the MCP server or the CLI too"
 ],
 "cannot_do": [
  {
   "what": "Delete the account",
   "why": "No documented organization delete; only data and keys can be removed"
  },
  {
   "what": "Buy a plan or reach checkout",
   "why": "Plans are bought in the console, behind a Cloudflare interstitial at sign-in; no billing API"
  },
  {
   "what": "Sign up in the console or use MCP OAuth",
   "why": "Cloudflare Turnstile on sign-up and an interstitial on sign-in"
  },
  {
   "what": "Email more than 3 new recipients in the first hour",
   "why": "Free-plan sending ramp (5 the first day, 10 the first week), a clear 429 with Retry-After"
  },
  {
   "what": "Add a custom domain",
   "why": "Paid plan (Developer)"
  }
 ],
 "blockers": [
  "No organization delete",
  "Console (billing, OAuth consent) behind Cloudflare checks"
 ],
 "tips_for_owner": [
  "Add an organization delete endpoint",
  "Let verified agents through the console check",
  "Sell plans through a billing API",
  "Give DCR clients the device grant",
  "Answer bad keys with a 401 body",
  "Serve the MCP server card at /server-card"
 ],
 "tips_for_agents": [
  "Follow llms.txt: POST /v0/agent/sign-up with a human_email you can read, then POST /v0/agent/verify with the emailed code.",
  "Wait ~5 minutes after verify before creating scoped keys; the 403 says so.",
  "On the free plan you can mail only 3 new recipients in the first hour; replies to people who wrote to you don't count.",
  "Use Idempotency-Key unquoted (A-Z a-z 0-9 -. _ ~) on sends, client_id on creates.",
  "MCP: send x-api-key to https://mcp.agentmail.to/mcp; the OAuth path hits a Cloudflare check.",
  "Polling webhooks need no public URL but events arrive with a delay; WebSockets are instant.",
  "Errors carry a fix field that names the next step: read it."
 ],
 "selfhost": null,
 "summary": "An agent can sign up, verify, get a key and run all nine core email tasks headless through the API, the official MCP server (the 28 Jul 2026 spec) and the CLI, with clear errors and working idempotency. It cannot delete its account (no route) or reach billing, since the console sits behind Cloudflare checks; free accounts may mail only 3 new recipients in their first hour.",
 "wall": "No account delete; console behind Cloudflare checks",
 "plan_scope": "free plan",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "AgentMail gives AI agents their own email inboxes to send and receive mail through code. An agent can sign itself up, confirm a code, and handle all the core email tasks (sending, receiving, replying, organizing, scheduling) entirely on its own. It gets stuck trying to close its account or buy a paid plan, because the company's billing and sign-in pages sit behind a security check its browser could not pass.",
  "can_do": [
   "Create its own email account and inbox with no setup help",
   "Send and receive email, including file attachments",
   "Reply to, forward, and organize email conversations into threads",
   "Write drafts and schedule emails to send later",
   "Search its mail and tag messages",
   "Do all of this through a chat-assistant connector or a command-line tool as well as the API"
  ],
  "cannot_do": [
   {
    "what": "Delete its account entirely",
    "why": "there is no delete option for the whole account, only for individual emails and keys"
   },
   {
    "what": "Buy a paid plan on its own",
    "why": "the purchase page is behind a security check it couldn't pass"
   },
   {
    "what": "Pay per email with cryptocurrency",
    "why": "the price per email was higher than its spending limit"
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "Custom sending domain",
   "plan": "Developer ($20/month)",
   "evidence": "POST /v0/domains 403 limit_exceeded: \"Your plan's domain limit is 0 ... Developer raises it to 10 for $20.00/month\""
  },
  {
   "capability": "Remove 'Sent via AgentMail' footer",
   "plan": "Developer+",
   "evidence": "pricing page footer row; free-plan mail carried the footer"
  },
  {
   "capability": "/31/32 White-label, dedicated IPs, EU/BYO cloud",
   "plan": "Enterprise",
   "evidence": "llms.txt and pricing page"
  },
  {
   "capability": "SOC 2 report",
   "plan": "Startup ($200/month)",
   "evidence": "llms.txt pricing"
  },
  {
   "capability": "Team seats",
   "plan": "Developer+ (2 seats)",
   "evidence": "pricing page"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Inboxes",
   "capability": "Create an email inbox for an agent",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/inboxes",
    "mcp": "create_inbox",
    "cli": "agentmail inboxes create",
    "ui": "Console > Inboxes"
   },
   "check": "GET /v0/inboxes/{inbox_id} returns the new inbox with its address",
   "source": "https://docs.agentmail.to/api-reference/inboxes/create; https://docs.agentmail.to/inboxes"
  },
  {
   "id": "cap-02",
   "group": "Messages",
   "capability": "Send an email from an inbox",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/inboxes/{inbox_id}/messages/send",
    "mcp": "send_message",
    "cli": "agentmail inboxes messages send",
    "ui": "Console"
   },
   "check": "GET /v0/inboxes/{inbox_id}/messages/{message_id} shows the sent message with labels including 'sent'",
   "source": "https://docs.agentmail.to/api-reference/inboxes/messages/send; https://docs.agentmail.to/messages"
  },
  {
   "id": "cap-03",
   "group": "Messages",
   "capability": "Receive incoming email into an inbox",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/inboxes/{inbox_id}/messages",
    "mcp": "list_messages",
    "cli": "agentmail inboxes messages list",
    "ui": "Console"
   },
   "check": "GET /v0/inboxes/{inbox_id}/messages lists the new inbound message shortly after an external email was sent to the inbox address",
   "source": "https://www.agentmail.to/; https://docs.agentmail.to/messages"
  },
  {
   "id": "cap-04",
   "group": "Messages",
   "capability": "Reply to a message (reply or reply-all) within its thread",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/inboxes/{inbox_id}/messages/{message_id}/reply and /reply-all",
    "mcp": "reply_to_message",
    "cli": "agentmail inboxes messages reply",
    "ui": "Console"
   },
   "check": "GET /v0/threads/{thread_id} shows the reply appended to the original thread",
   "source": "https://docs.agentmail.to/api-reference/inboxes/messages/reply; https://docs.agentmail.to/sending-receiving-email"
  },
  {
   "id": "cap-05",
   "group": "Messages",
   "capability": "Forward a message to new recipients",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/inboxes/{inbox_id}/messages/{message_id}/forward",
    "mcp": "forward_message",
    "cli": "agentmail inboxes messages forward",
    "ui": "Console"
   },
   "check": "GET /v0/inboxes/{inbox_id}/messages/{new_message_id} shows the forwarded message sent to the new recipient",
   "source": "https://docs.agentmail.to/api-reference/inboxes/messages/forward"
  },
  {
   "id": "cap-06",
   "group": "Threads",
   "capability": "View and manage threaded conversations across an inbox",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/inboxes/{inbox_id}/threads, GET /v0/threads/{thread_id}",
    "mcp": "list_threads, get_thread",
    "cli": "agentmail inboxes threads list",
    "ui": "Console > Threads"
   },
   "check": "GET /v0/threads/{thread_id} returns the messages array grouped as one conversation",
   "source": "https://docs.agentmail.to/threads; https://docs.agentmail.to/knowledge-base/threaded-conversations"
  },
  {
   "id": "cap-07",
   "group": "Attachments",
   "capability": "Send and download file attachments on messages",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST .../messages/send (attachments field); GET /v0/inboxes/{inbox_id}/messages/{message_id}/attachments/{attachment_id}",
    "mcp": "get_attachment",
    "cli": "agentmail inboxes messages send --attachment",
    "ui": "Console"
   },
   "check": "GET attachment endpoint returns a download URL and extracted text for the sent/received file",
   "source": "https://docs.agentmail.to/attachments"
  },
  {
   "id": "cap-08",
   "group": "Drafts",
   "capability": "Create, edit and send a draft email",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/inboxes/{inbox_id}/drafts, PATCH .../drafts/{draft_id}, POST .../drafts/{draft_id}/send",
    "mcp": "create_draft, update_draft, send_draft",
    "cli": "agentmail inboxes drafts create",
    "ui": "Console"
   },
   "check": "GET /v0/inboxes/{inbox_id}/drafts/{draft_id} shows draft content before send, then GET messages shows it as a sent message after send",
   "source": "https://docs.agentmail.to/drafts"
  },
  {
   "id": "cap-09",
   "group": "Drafts",
   "capability": "Schedule a draft to send at a future time",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/inboxes/{inbox_id}/drafts (sendAt field)",
    "mcp": "create_draft (sendAt)",
    "cli": "agentmail inboxes drafts create --send-at",
    "ui": "Console"
   },
   "check": "GET draft shows status scheduled with the given sendAt, then message appears as sent at that time",
   "source": "https://docs.agentmail.to/drafts; https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-10",
   "group": "Search",
   "capability": "Full-text search messages and threads in an inbox",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/inboxes/{inbox_id}/messages/search, /threads/search",
    "mcp": "search_messages, search_threads",
    "cli": "agentmail inboxes messages search",
    "ui": "Console"
   },
   "check": "search endpoint returns the known message ranked by relevance for a matching query term",
   "source": "https://docs.agentmail.to/api-reference/inboxes/messages/search"
  },
  {
   "id": "cap-11",
   "group": "Labels",
   "capability": "Apply and remove labels on messages/threads to track workflow state",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /v0/inboxes/{inbox_id}/messages/{message_id}, /threads/{thread_id}",
    "mcp": "update_message, update_thread",
    "cli": "agentmail inboxes messages update --labels",
    "ui": "Console"
   },
   "check": "GET message/thread shows the added label present and the removed label absent",
   "source": "https://docs.agentmail.to/labels"
  },
  {
   "id": "cap-12",
   "group": "Lists",
   "capability": "Manage allow/block lists controlling who an inbox can send to or receive from",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET/DELETE /v0/inboxes/{inbox_id}/lists",
    "mcp": "create_list_entry, list_list_entries, delete_list_entry",
    "cli": "agentmail inboxes lists create",
    "ui": "Console"
   },
   "check": "GET /v0/inboxes/{inbox_id}/lists shows the added address/domain entry, and a message to/from a blocked address is rejected",
   "source": "https://docs.agentmail.to/lists"
  },
  {
   "id": "cap-13",
   "group": "Webhooks",
   "capability": "Create and manage webhook endpoints for email events",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET/PATCH/DELETE /v0/webhooks",
    "mcp": null,
    "cli": "agentmail webhooks create",
    "ui": "Console > Webhooks"
   },
   "check": "GET /v0/webhooks/{webhook_id} shows the registered URL and event types; triggering event delivers a signed POST to that URL",
   "source": "https://docs.agentmail.to/webhooks-overview; https://docs.agentmail.to/api-reference/webhooks/create"
  },
  {
   "id": "cap-14",
   "group": "Realtime",
   "capability": "Stream inbox events in real time over WebSockets",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "WSS /v0/websockets",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Open the websocket connection and observe a message.received event delivered as a new email arrives, per the AsyncAPI spec",
   "source": "https://docs.agentmail.to/websockets; https://docs.agentmail.to/asyncapi.json"
  },
  {
   "id": "cap-15",
   "group": "Domains",
   "capability": "Connect and verify a custom sending domain (DKIM/SPF/DMARC)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v0/domains, POST /v0/domains/{domain_id}/verify",
    "mcp": null,
    "cli": "agentmail domains create",
    "ui": "Console > Domains"
   },
   "check": "GET /v0/domains/{domain_id} shows status verified after DNS records are added, and a sent message carries the custom domain address",
   "source": "https://docs.agentmail.to/custom-domains; https://docs.agentmail.to/managing-domains; https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-16",
   "group": "Multi-tenancy",
   "capability": "Create isolated Pods to segment inboxes/domains per customer or agent",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/pods, GET/DELETE /v0/pods/{pod_id}",
    "mcp": null,
    "cli": "agentmail pods create",
    "ui": "Console"
   },
   "check": "GET /v0/pods/{pod_id}/inboxes lists only inboxes created within that pod, isolated from other pods",
   "source": "https://docs.agentmail.to/documentation/core-concepts/pods"
  },
  {
   "id": "cap-17",
   "group": "API Keys",
   "capability": "Create scoped API keys with fine-grained permissions",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/api-keys",
    "mcp": null,
    "cli": "agentmail api-keys create",
    "ui": "Console > Settings > API Keys"
   },
   "check": "GET /v0/api-keys/{api_key_id} shows the configured permission set, and a call using that key succeeds/fails per scope",
   "source": "https://docs.agentmail.to/permissions; https://docs.agentmail.to/knowledge-base/getting-api-key"
  },
  {
   "id": "cap-18",
   "group": "Metrics",
   "capability": "Query email send/delivery events, usage and rate metrics",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/metrics/events, /v0/metrics/usage, /v0/metrics/rates",
    "mcp": null,
    "cli": null,
    "ui": "Console > Metrics"
   },
   "check": "GET /v0/metrics/usage reflects the increased message count after sending a test email",
   "source": "https://docs.agentmail.to/api-reference/metrics/query-events"
  },
  {
   "id": "cap-19",
   "group": "IMAP/SMTP",
   "capability": "Access an inbox via standard IMAP/SMTP clients",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Console > Inbox settings (IMAP/SMTP credentials)"
   },
   "check": "Connect a mail client with the issued IMAP/SMTP credentials and see the inbox's messages listed",
   "source": "https://docs.agentmail.to/imap-smtp"
  },
  {
   "id": "cap-20",
   "group": "AgentID",
   "capability": "Create an agent account at a third-party app/provider using an inbox as identity",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/apps/{app_id}/connect",
    "mcp": "connect_provider",
    "cli": "agentmail apps connect",
    "ui": null
   },
   "check": "GET /v0/accounts lists the new account entry linking the inbox to the app_id after sign-in completes",
   "source": "https://docs.agentmail.to/agentid-sign-in; https://docs.agentmail.to/agentid-in-assistants"
  },
  {
   "id": "cap-21",
   "group": "AgentID",
   "capability": "Browse the app/provider marketplace an agent can sign up for",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/apps, GET /v0/apps/search",
    "mcp": "list_providers, search_providers, get_provider",
    "cli": "agentmail apps list",
    "ui": null
   },
   "check": "GET /v0/apps returns a catalog of app entries with app_id and terms",
   "source": "https://docs.agentmail.to/api-reference/apps/list"
  },
  {
   "id": "cap-22",
   "group": "AgentID",
   "capability": "Register and manage public-key sign-in credentials for an agent",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET/PATCH/DELETE /v0/api-keys (type public_key)",
    "mcp": null,
    "cli": "agentmail api-keys create --public-key",
    "ui": null
   },
   "check": "GET /v0/api-keys/{api_key_id} shows status transition from pending to active after the sign-in is completed",
   "source": "https://docs.agentmail.to/agentid-public-key-authentication"
  },
  {
   "id": "cap-23",
   "group": "Export",
   "capability": "Fetch the raw RFC 822 source of a received message",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v0/inboxes/{inbox_id}/messages/{message_id}/raw",
    "mcp": null,
    "cli": "agentmail inboxes messages get-raw",
    "ui": null
   },
   "check": "GET raw endpoint returns the full MIME source matching the message headers shown in the normal message view",
   "source": "https://docs.agentmail.to/api-reference/inboxes/messages/get-raw"
  },
  {
   "id": "cap-24",
   "group": "Reliability",
   "capability": "Prevent duplicate sends/creates using idempotency keys",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Idempotency-Key header; client_id field",
    "mcp": null,
    "cli": "--idempotency-key",
    "ui": null
   },
   "check": "Repeating a send request with the same Idempotency-Key returns the original message instead of creating a second one",
   "source": "https://docs.agentmail.to/idempotency"
  },
  {
   "id": "cap-25",
   "group": "Content processing",
   "capability": "Automatic reply/quote stripping and attachment text extraction on received mail",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "message object fields extracted_text/extracted_html",
    "mcp": "get_message",
    "cli": null,
    "ui": null
   },
   "check": "GET message for a reply shows extracted_text containing only the new reply body, without quoted history",
   "source": "https://docs.agentmail.to/reply-extraction"
  },
  {
   "id": "cap-26",
   "group": "Organization",
   "capability": "Invite and manage organization team members/seats",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Console > Settings > Team"
   },
   "check": "Console team page lists the invited member with an assigned seat",
   "source": "https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-27",
   "group": "Branding",
   "capability": "Remove the 'Sent via AgentMail' footer from outgoing mail",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Console (plan-gated)"
   },
   "check": "A message sent on a Developer+ plan inbox has no AgentMail footer appended in its body",
   "source": "https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-28",
   "group": "Branding",
   "capability": "White-label the platform for Enterprise customers",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Enterprise onboarding"
   },
   "check": "Enterprise deployment shows the customer's own branding instead of AgentMail's",
   "source": "https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-29",
   "group": "Security",
   "capability": "Configure SSO (social SSO on all plans, OIDC/SAML on Enterprise)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Console > Settings > Security"
   },
   "check": "Console security settings show SSO provider configured and sign-in succeeds via that provider",
   "source": "https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-30",
   "group": "Compliance",
   "capability": "Access SOC 2 Type II audit report",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Console / sales request"
   },
   "check": "SOC 2 report document is provided to a Startup+ plan customer on request",
   "source": "https://docs.agentmail.to/documentation/resources/security-privacy/soc-2-compliance; https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-31",
   "group": "Deliverability",
   "capability": "Request dedicated sending IPs",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Enterprise / Contact sales"
   },
   "check": "Outgoing mail for the enterprise org originates from the assigned dedicated IP, confirmed via mail headers",
   "source": "https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-32",
   "group": "Deployment",
   "capability": "Deploy AgentMail in EU region cloud or bring-your-own cloud",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Enterprise onboarding"
   },
   "check": "Enterprise account's resources are confirmed hosted in the requested EU/BYO cloud region",
   "source": "https://www.agentmail.to/pricing"
  },
  {
   "id": "cap-33",
   "group": "Agent sign-up",
   "capability": "Sign up an unverified agent organization and verify it via a human email code",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /v0/agent/sign-up, POST /v0/agent/attach-human, POST /v0/agent/verify",
    "mcp": "agent_attach_human, agent_verify",
    "cli": null,
    "ui": null
   },
   "check": "Organization status moves from unverified to verified after submitting the 6-digit code, lifting send limits",
   "source": "https://docs.agentmail.to/api-reference/agent/sign-up; https://docs.agentmail.to/api-reference/agent/verify"
  }
 ],
 "attempts": [
  {
   "t": "02:21",
   "cap": "discovery",
   "task": "llms.txt, robots.txt",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://www.agentmail.to/llms.txt 200 (27.5 KB, agent sign-up steps at top); robots.txt: User-Agent * Allow / Disallow /internal/, no Content-Usage/Content-signal lines",
   "capability": "Docs"
  },
  {
   "t": "02:21",
   "cap": "discovery",
   "task": "MCP server/discover 2026-07-28",
   "route": "mcp",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "POST https://mcp.agentmail.to/mcp server/discover -> 401 {\"error\":\"Unauthorized\"}, WWW-Authenticate: Bearer resource_metadata=https://mcp.agentmail.to/.well-known/oauth-protected-resource/mcp (retry with key later)",
   "capability": "Docs"
  },
  {
   "t": "02:21",
   "cap": "discovery",
   "task": "MCP server card / AI catalog / A2A card",
   "route": "none",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "<mcp>/server-card 404; /.well-known/ai-catalog.json 404; /.well-known/mcp/server-card.json 200 application/json (older draft path, oauth2 via clerk.console.agentmail.to); agent-card.json 404; agent.json 404",
   "capability": "Docs"
  },
  {
   "t": "02:21",
   "cap": "discovery",
   "task": "OAuth PRM + AS metadata",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "PRM at /.well-known/oauth-protected-resource/mcp 200; AS clerk.console.agentmail.to: registration_endpoint (DCR), device_authorization_endpoint, device_code grant; client_id_metadata_document_supported absent (no CIMD)",
   "capability": "Docs"
  },
  {
   "t": "02:21",
   "cap": "discovery",
   "task": "Markdown docs",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "docs.agentmail.to/welcome with Accept: text/markdown -> 303 to /welcome.md, Vary: Accept; /welcome.md 200 text/markdown",
   "capability": "Docs"
  },
  {
   "t": "02:21",
   "cap": "discovery",
   "task": "OpenAPI",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://docs.agentmail.to/openapi.json 200 application/json, openapi 3.1.0, 113 paths, servers api/x402.api/mpp.api/api.agentmail.eu",
   "capability": "Docs"
  },
  {
   "t": "02:21",
   "cap": "docs",
   "task": "Find docs",
   "route": "none",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "docs.agentmail.to + llms.txt + OpenAPI; docs_pass.json verdict found getting started/auth/errors/examples",
   "capability": "Docs"
  },
  {
   "t": "02:21",
   "cap": "signup",
   "way": "api_signup",
   "task": "POST /v0/agent/sign-up with human_email",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 returned organization_id, inbox [redacted], api_key (am_us_••••)",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://docs.agentmail.to/api-reference/agent/sign-up"
   },
   "capability": "Sign up"
  },
  {
   "t": "02:21",
   "cap": "verify",
   "way": "api_signup",
   "task": "Read OTP mail, POST /v0/agent/verify",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "OTP mail arrived in ~5 s from yes-reply@agentmail.to; verify 200 {\"verified\":true}",
   "quality": {
    "docs_match": "match"
   },
   "capability": "Verify"
  },
  {
   "t": "02:21",
   "cap": "credentials",
   "way": "api_signup",
   "task": "API key from sign-up response",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "api_key returned in sign-up body; GET /v0/auth/me 200 credential_scope_type organization",
   "capability": "Key"
  },
  {
   "t": "02:21",
   "cap": "first_call",
   "way": "api_signup",
   "task": "GET /v0/inboxes",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 count 1, the sign-up inbox listed",
   "capability": "First call"
  },
  {
   "t": "02:40",
   "cap": "cap-01",
   "capability": "Create inbox",
   "way": "api_signup",
   "step": "create",
   "task": "POST /v0/inboxes username adt-cap01-a",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": false,
   "evidence": "200 {\"organization_id\": \"[redacted]\", \"pod_id\": \"[redacted]\", \"inbox_id\": \"adt-cap01-a@agentmail.to\", \"email\": \"adt-cap01-a@agentmail.to\", \"client_id\":",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/create",
    "docs_match": "match",
    "idempotent": "yes"
   }
  },
  {
   "t": "02:41",
   "cap": "cap-01",
   "capability": "Create inbox",
   "way": "api_signup",
   "step": "read",
   "task": "GET /v0/inboxes/{id}",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 email=adt-cap01-a@agentmail.to display_name=AgentDrives Test",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/create",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "02:42",
   "cap": "cap-01",
   "capability": "Create inbox",
   "way": "api_signup",
   "step": "update",
   "task": "PATCH display_name, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "PATCH 200; GET display_name=AgentDrives Test Updated",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/create",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "03:02",
   "cap": "first_action",
   "way": "api_signup",
   "task": "Create a second inbox via POST /v0/inboxes",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "adt-cap01-a@agentmail.to created 200 and read back via GET 200",
   "capability": "First action"
  },
  {
   "t": "03:19",
   "cap": "cap-02",
   "capability": "Send email",
   "way": "api_signup",
   "step": "create",
   "task": "Send mail with attachment to the agent's inbox the agent's inbox",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST send 200 message_id+thread_id; GET message labels [sent, adtest]; mail arrived at the agent's inbox 05:17:30 (token [redacted])",
   "notes": "body gets \"--\\nSent via AgentMail\" footer on free plan",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/send",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "03:31",
   "cap": "cap-07",
   "capability": "Attachments",
   "way": "api_signup",
   "step": "create",
   "task": "Send note.txt as base64 attachment",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "send 200; GET message lists attachment note.txt size 62",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/send",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "03:31",
   "cap": "cap-07",
   "capability": "Attachments",
   "way": "api_signup",
   "step": "read",
   "task": "GET attachment, download file and extracted text",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET attachment 200 with download_url + text_url (signed, expires 1h); both returned the exact file content (alpha-bravo-7731)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/get-attachment",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "03:57",
   "cap": "cap-03",
   "capability": "Receive email",
   "way": "api_signup",
   "step": "read",
   "task": "Mail sent over SMTP from inbox A to inbox B, list inbox B messages",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET /v0/inboxes/adt-cap01-a/messages after 15 s: count 1, labels [received, unread], subject \"Inbound test for \", SPF pass header (went via SES)",
   "notes": "sender is another AgentMail inbox of ours: we have no external sender; delivery went over SMTP (amazonses headers)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/list",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "03:57",
   "cap": "cap-01",
   "capability": "Create inbox",
   "way": "api_signup",
   "step": "use",
   "task": "Receive mail in the new inbox",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "adt-cap01-a received the mail (see)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/create",
    "docs_match": "match"
   }
  },
  {
   "t": "04:18",
   "cap": "cap-04",
   "capability": "Reply",
   "way": "api_signup",
   "step": "create",
   "task": "Reply from inbox B to the received message",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST reply 200 thread_id [id]; GET /v0/threads/[id] shows original + reply [sent]; sender inbox thread eea9db77 shows the reply [received] appended",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/reply",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "04:26",
   "cap": "cap-25",
   "capability": "Quote stripping / text extraction",
   "way": "api_signup",
   "task": "Read received reply: text vs extracted_text",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "received reply text contains \"On ... wrote: > Inbound body...\" quoted history; extracted_text holds only the new reply body (plus signature footer); attachment text_url gave extracted file text",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "04:34",
   "cap": "cap-04",
   "capability": "Reply",
   "way": "api_signup",
   "step": "use",
   "task": "reply-all back to inbox B",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST reply-all 200; inbox B thread now has 3 messages",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/reply-all",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:12",
   "cap": "cap-05",
   "capability": "Forward",
   "way": "api_signup",
   "step": "create",
   "task": "Forward the received message to the agent's inbox",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST forward 200; GET message to [the agent's inbox] labels [sent] subject \"Fwd: Inbound test for \"; arrived in the agent's inbox with fig-6060 and the original kiwi-5521 body",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/forward",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:12",
   "cap": "cap-06",
   "capability": "Threads",
   "way": "api_signup",
   "step": "read",
   "task": "List threads of inbox B, get thread",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET threads 200 count 1; GET /v0/threads/[id] earlier returned messages grouped as one conversation (original, reply, reply-all, forward)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/threads/list",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:15",
   "cap": "cap-06",
   "capability": "Threads",
   "way": "api_signup",
   "step": "update",
   "task": "PATCH thread add/remove labels, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "add -> labels ['received', 'unread', 'needs-followup', 'adtest', 'sent']; remove -> ['received', 'unread', 'adtest', 'sent']",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/threads/update",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:15",
   "cap": "cap-11",
   "capability": "Labels",
   "way": "api_signup",
   "task": "Add then remove a custom label on a thread",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "add -> ['received', 'unread', 'needs-followup', 'adtest', 'sent']; remove -> ['received', 'unread', 'adtest', 'sent']",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:24",
   "cap": "cap-11",
   "capability": "Labels",
   "way": "api_signup",
   "task": "PATCH message: remove unread, add processed",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "PATCH 200; GET labels ['received', 'adtest', 'processed']",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:34",
   "cap": "cap-10",
   "capability": "Search",
   "way": "api_signup",
   "task": "Search messages for \"zebra\" and threads for \"kiwi\"",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "messages/search?q=zebra 200 count 1 = the message; threads/search?q=kiwi 200 count 1 = the thread",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:35",
   "cap": "cap-08",
   "capability": "Drafts",
   "way": "api_signup",
   "step": "create",
   "task": "Create draft",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": false,
   "evidence": "200 draft_id [id]",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/create",
    "docs_match": "match"
   }
  },
  {
   "t": "05:35",
   "cap": "cap-08",
   "capability": "Drafts",
   "way": "api_signup",
   "step": "read",
   "task": "GET draft",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 text='Draft v1 lemon-1111'",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/create",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:37",
   "cap": "cap-08",
   "capability": "Drafts",
   "way": "api_signup",
   "step": "update",
   "task": "PATCH draft text, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "PATCH 200; GET text='Draft v2 lemon-2222'",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/update",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:46",
   "cap": "cap-08",
   "capability": "Drafts",
   "way": "api_signup",
   "step": "use",
   "task": "Send draft, read back as message",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST drafts/send 200; GET message labels ['sent'] text \"Draft v2 lemon-2222\"; GET draft afterwards 404 (draft consumed by send)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/send",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "05:58",
   "cap": "cap-09",
   "capability": "Schedule",
   "way": "api_signup",
   "step": "create",
   "task": "Create draft with send_at +3 min",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 send_status scheduled, labels [draft, scheduled], send_at 2026-10-14T05:23:12Z",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/create",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:00",
   "cap": "cap-08",
   "capability": "Drafts",
   "way": "api_signup",
   "step": "delete",
   "task": "Create + DELETE a draft, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 204; GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/delete",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:01",
   "cap": "cap-09",
   "capability": "Schedule",
   "way": "api_signup",
   "step": "update",
   "task": "PATCH send_at of a scheduled draft, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "PATCH 200; GET send_at 2026-10-14T06:50:26Z status scheduled",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/update",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:02",
   "cap": "cap-09",
   "capability": "Schedule",
   "way": "api_signup",
   "step": "delete",
   "task": "Cancel scheduled send by DELETE draft, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 204; GET 404",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:12",
   "cap": "cap-05",
   "capability": "Forward",
   "way": "api_signup",
   "step": "delete",
   "task": "DELETE the forwarded message, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 204; GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/delete",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:13",
   "cap": "cap-04",
   "capability": "Reply",
   "way": "api_signup",
   "step": "delete",
   "task": "DELETE the reply message, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 204; GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/delete",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:14",
   "cap": "cap-03",
   "capability": "Receive email",
   "way": "api_signup",
   "step": "delete",
   "task": "DELETE the received message, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 204; GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/delete",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:23",
   "cap": "cap-06",
   "capability": "Threads",
   "way": "api_signup",
   "step": "delete",
   "task": "DELETE thread, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 202; GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/threads/delete",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:24",
   "cap": "cap-02",
   "capability": "Send email",
   "way": "api_signup",
   "step": "delete",
   "task": "DELETE the sent message (with attachment), read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 204; GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/delete",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:24",
   "cap": "cap-07",
   "capability": "Attachments",
   "way": "api_signup",
   "step": "delete",
   "task": "Delete message, check attachment gone",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET attachment after message delete -> 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/messages/get-attachment",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "06:56",
   "cap": "credentials",
   "key": "create",
   "way": "api_signup",
   "task": "POST /v0/api-keys scoped read-only key (1st try, ~5 min after verify)",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "403 missing_permission; fix: \"organization has not completed agent verification ... If you just verified, the credential's cached permissions can lag for up to 5 minutes: wait and retry.\"",
   "quality": {
    "error_legibility": "clear",
    "recoverable": "yes",
    "docs_match": "match"
   },
   "capability": "Key"
  },
  {
   "t": "06:56",
   "cap": "cap-17",
   "capability": "Scoped API keys",
   "way": "api_signup",
   "task": "Create read-only key (1st try)",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "403 missing_permission, cached permissions lag after verify (documented in the fix text)",
   "quality": {
    "error_legibility": "clear",
    "recoverable": "yes",
    "docs_match": "match"
   }
  },
  {
   "t": "07:28",
   "cap": "cap-12",
   "capability": "Allow/block lists",
   "way": "api_signup",
   "task": "Block send to our own address, try a send, unblock",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST lists/send/block 200; GET lists count 1; send to blocked address -> 403 message_rejected with fix naming the DELETE path; DELETE 204; GET count 0",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes",
    "error_legibility": "clear"
   }
  },
  {
   "t": "07:50",
   "cap": "cap-13",
   "capability": "Webhooks",
   "way": "api_signup",
   "task": "Create webhook, read back, PATCH event_types+enabled, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /v0/webhooks 200 (secret returned); GET url+events match; PATCH 200 -> events ['message.bounced', 'message.received', 'message.sent'] enabled False. Delivery not observed: we have no public receiver.",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "09:57",
   "cap": "cap-09",
   "capability": "Schedule",
   "way": "api_signup",
   "step": "use",
   "task": "Wait for the scheduled draft to send",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "send_at 05:23:12Z; draft gone (404) and message \"AgentDrives scheduled test\" in sent at 05:23:42Z; arrived in an inbox inbox: True",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/create",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "09:57",
   "cap": "cap-08",
   "capability": "Drafts",
   "way": "api_signup",
   "step": "use",
   "task": "Draft send delivered to the agent's inbox",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "lemon-2222 (draft v2 text) arrived at an inbox: True",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/send",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "09:57",
   "cap": "cap-14",
   "capability": "WebSockets",
   "way": "api_signup",
   "task": "TS SDK websockets.connect, subscribe inbox, send mail into it",
   "route": "sdk",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "WS frames: subscribed, then event (message.received) with subject \"WS test \" within seconds of the send",
   "quality": {
    "docs_url": "https://docs.agentmail.to/websockets",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "09:57",
   "cap": "cap-13",
   "capability": "Webhooks",
   "way": "api_signup",
   "task": "Polling webhook: create, read events with Svix AutoConfigConsumer",
   "route": "sdk",
   "documented": true,
   "result": "partial",
   "verified": false,
   "evidence": "POST /v0/webhooks/polling 200 with token; consumer.receive returned done:true, 0 events ~1 min after a message.received in the covered inbox (WS saw it)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/webhook-polling",
    "docs_match": "drift"
   }
  },
  {
   "t": "10:16",
   "cap": "credentials",
   "key": "create",
   "way": "api_signup",
   "task": "POST /v0/api-keys read-only key (retry ~8 min after verify)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 api_key_id c042f563…, permissions inbox_read+message_read only; GET /v0/api-keys/{id} 200",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/api-keys/create",
    "docs_match": "match",
    "verify_route": "yes"
   },
   "capability": "Key"
  },
  {
   "t": "10:16",
   "cap": "credentials",
   "key": "use",
   "way": "api_signup",
   "task": "Use scoped key: list inboxes (allowed), create inbox (not allowed)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET /v0/inboxes 200 count 2; POST /v0/inboxes 403 missing_permission naming inbox_create; used_at set on the key",
   "quality": {
    "error_legibility": "clear"
   },
   "capability": "Key"
  },
  {
   "t": "10:16",
   "cap": "cap-17",
   "capability": "Scoped API keys",
   "way": "api_signup",
   "task": "Create read-only key, use it within and outside scope",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "create 200; GET key 200; read 200, create 403 missing_permission",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/api-keys/create",
    "docs_match": "match",
    "verify_route": "yes",
    "error_legibility": "clear"
   }
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "mcp",
   "claim": "create_inbox",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call create_inbox on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to'}",
   "capability": "Docs claim: Create an email inbox for an agent",
   "task": "create_inbox",
   "route": "mcp",
   "evidence": "tools/call create_inbox on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to'}"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-02",
   "surface": "mcp",
   "claim": "send_message",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call send_message on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df08cf-[id]-000000@email.amazonses.com>', 'threadId': '76626cb",
   "capability": "Docs claim: Send an email from an inbox",
   "task": "send_message",
   "route": "mcp",
   "evidence": "tools/call send_message on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df08cf-[id]-000000@email.amazonses.com>', 'threadId': '76626cb"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-03",
   "surface": "mcp",
   "claim": "list_messages",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call list_messages on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'count': 2, 'limit': 10, 'messages': [{'inboxId': 'adt-mcp-1@agentmail.to', 'threadId': 'e223f1d5-9b4d-4a22-8633-ac1c77",
   "capability": "Docs claim: Receive incoming email into an inbox",
   "task": "list_messages",
   "route": "mcp",
   "evidence": "tools/call list_messages on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'count': 2, 'limit': 10, 'messages': [{'inboxId': 'adt-mcp-1@agentmail.to', 'threadId': 'e223f1d5-9b4d-4a22-8633-ac1c77"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-04",
   "surface": "mcp",
   "claim": "reply_to_message",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call reply_to_message on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df85a4-[id]-000000@email.amazonses.com>', 'threadId': 'e223f1d",
   "capability": "Docs claim: Reply to a message (reply or reply-all) within its thread",
   "task": "reply_to_message",
   "route": "mcp",
   "evidence": "tools/call reply_to_message on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df85a4-[id]-000000@email.amazonses.com>', 'threadId': 'e223f1d"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-05",
   "surface": "mcp",
   "claim": "forward_message",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call forward_message on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df8b16-[id]-000000@email.amazonses.com>', 'threadId': 'e223f1d",
   "capability": "Docs claim: Forward a message to new recipients",
   "task": "forward_message",
   "route": "mcp",
   "evidence": "tools/call forward_message on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df8b16-[id]-000000@email.amazonses.com>', 'threadId': 'e223f1d"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-06",
   "surface": "mcp",
   "claim": "list_threads",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call list_threads on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'count': 1, 'limit': 10, 'threads': [{'inboxId': 'adt-mcp-1@agentmail.to', 'threadId': 'e223f1d5-9b4d-4a22-8633-ac1c770",
   "capability": "Docs claim: View and manage threaded conversations across an inbox",
   "task": "list_threads",
   "route": "mcp",
   "evidence": "tools/call list_threads on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'count': 1, 'limit': 10, 'threads': [{'inboxId': 'adt-mcp-1@agentmail.to', 'threadId': 'e223f1d5-9b4d-4a22-8633-ac1c770"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-06",
   "surface": "mcp",
   "claim": "get_thread",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call get_thread on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'threadId': '[id]', 'labels': ['received', 'unread",
   "capability": "Docs claim: View and manage threaded conversations across an inbox",
   "task": "get_thread",
   "route": "mcp",
   "evidence": "tools/call get_thread on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'threadId': '[id]', 'labels': ['received', 'unread"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-07",
   "surface": "mcp",
   "claim": "get_attachment",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call get_attachment on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'attachmentId': '[id]', 'filename': 'a.txt', 'size': 62, 'contentType': 'text/plain', '",
   "capability": "Docs claim: Send and download file attachments on messages",
   "task": "get_attachment",
   "route": "mcp",
   "evidence": "tools/call get_attachment on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'attachmentId': '[id]', 'filename': 'a.txt', 'size': 62, 'contentType': 'text/plain', '"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-08",
   "surface": "mcp",
   "claim": "create_draft",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call create_draft on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'draftId': '[id]', 'labels': ['draft'], 'to': ['dr",
   "capability": "Docs claim: Create, edit and send a draft email",
   "task": "create_draft",
   "route": "mcp",
   "evidence": "tools/call create_draft on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'draftId': '[id]', 'labels': ['draft'], 'to': ['dr"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-08",
   "surface": "mcp",
   "claim": "update_draft",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call update_draft on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'draftId': '[id]', 'labels': ['draft'], 'to': ['dr",
   "capability": "Docs claim: Create, edit and send a draft email",
   "task": "update_draft",
   "route": "mcp",
   "evidence": "tools/call update_draft on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'draftId': '[id]', 'labels': ['draft'], 'to': ['dr"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-08",
   "surface": "mcp",
   "claim": "send_draft",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call send_draft on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df9d2e-[id]-000000@email.amazonses.com>', 'threadId': '1fead67",
   "capability": "Docs claim: Create, edit and send a draft email",
   "task": "send_draft",
   "route": "mcp",
   "evidence": "tools/call send_draft on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'messageId': '<010001a138df9d2e-[id]-000000@email.amazonses.com>', 'threadId': '1fead67"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-09",
   "surface": "mcp",
   "claim": "create_draft (sendAt)",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "tools/call create_draft (sendAt) on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'draftId': '[id]', 'labels': ['draft', 'scheduled'",
   "capability": "Docs claim: Schedule a draft to send at a future time",
   "task": "create_draft (sendAt)",
   "route": "mcp",
   "evidence": "tools/call create_draft (sendAt) on https://mcp.agentmail.to/mcp (2026-07-28, x-api-key) -> {'inboxId': 'adt-mcp-1@agentmail.to', 'draftId': '[id]', 'labels': ['draft', 'scheduled'"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "api",
   "claim": "POST /v0/inboxes",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "create 200, GET read back",
   "capability": "Docs claim: Create an email inbox for an agent",
   "task": "POST /v0/inboxes",
   "route": "api",
   "evidence": "create 200, GET read back"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-02",
   "surface": "api",
   "claim": "POST /v0/inboxes/{inbox_id}/messages/send",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "200, delivered to an inbox",
   "capability": "Docs claim: Send an email from an inbox",
   "task": "POST /v0/inboxes/{inbox_id}/messages/send",
   "route": "api",
   "evidence": "200, delivered to an inbox"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-03",
   "surface": "api",
   "claim": "GET /v0/inboxes/{inbox_id}/messages",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "lists received mail",
   "capability": "Docs claim: Receive incoming email into an inbox",
   "task": "GET /v0/inboxes/{inbox_id}/messages",
   "route": "api",
   "evidence": "lists received mail"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-04",
   "surface": "api",
   "claim": "POST .../reply and /reply-all",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "both 200, threaded",
   "capability": "Docs claim: Reply to a message (reply or reply-all) within its thread",
   "task": "POST .../reply and /reply-all",
   "route": "api",
   "evidence": "both 200, threaded"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-05",
   "surface": "api",
   "claim": "POST .../forward",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "200, delivered",
   "capability": "Docs claim: Forward a message to new recipients",
   "task": "POST .../forward",
   "route": "api",
   "evidence": "200, delivered"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-06",
   "surface": "api",
   "claim": "GET /v0/inboxes/{inbox_id}/threads, GET /v0/threads/{thread_id}",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "both 200",
   "capability": "Docs claim: View and manage threaded conversations across an inbox",
   "task": "GET /v0/inboxes/{inbox_id}/threads, GET /v0/threads/{thread_id}",
   "route": "api",
   "evidence": "both 200"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-07",
   "surface": "api",
   "claim": "send attachments + GET attachment",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "download_url and text_url work",
   "capability": "Docs claim: Send and download file attachments on messages",
   "task": "send attachments + GET attachment",
   "route": "api",
   "evidence": "download_url and text_url work"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-08",
   "surface": "api",
   "claim": "POST/PATCH drafts, POST drafts/send",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "all 200",
   "capability": "Docs claim: Create, edit and send a draft email",
   "task": "POST/PATCH drafts, POST drafts/send",
   "route": "api",
   "evidence": "all 200"
  },
  {
   "t": "11:27",
   "kind": "claim",
   "cap": "cap-09",
   "surface": "api",
   "claim": "POST drafts send_at",
   "doc_url": "https://docs.agentmail.to/api-reference",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "scheduled, sent 30 s after send_at",
   "capability": "Docs claim: Schedule a draft to send at a future time",
   "task": "POST drafts send_at",
   "route": "api",
   "evidence": "scheduled, sent 30 s after send_at"
  },
  {
   "t": "11:40",
   "cap": "cap-01",
   "capability": "Create inbox",
   "way": "api_signup",
   "step": "delete",
   "task": "DELETE inbox adt-cap01-a, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 202; GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/delete",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "cli",
   "claim": "agentmail inboxes create",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'created_at': '2026-10-14T05:26:06.665Z', 'display_name': 'AgentDrives CLI', 'email': 'adt-cli-1@ag",
   "capability": "Docs claim: Create an email inbox for an agent",
   "task": "agentmail inboxes create",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'created_at': '2026-10-14T05:26:06.665Z', 'display_name': 'AgentDrives CLI', 'email': 'adt-cli-1@ag"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-02",
   "surface": "cli",
   "claim": "agentmail inboxes messages send --attachments",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'message_id': '<010001a138e01f88-[id]-000000@email.amazonses.com>', | map names \"--attachment\"; the real flag is --attachments <JSON_OBJECT>",
   "capability": "Docs claim: Send an email from an inbox",
   "task": "agentmail inboxes messages send --attachments",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'message_id': '<010001a138e01f88-[id]-000000@email.amazonses.com>', | map names \"--attachment\"; the real flag is --attachments <JSON_OBJECT>"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-03",
   "surface": "cli",
   "claim": "agentmail inboxes messages list",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'count': 6, 'messages': [{'attachments': [{'attachment_id': '[id]',",
   "capability": "Docs claim: Receive incoming email into an inbox",
   "task": "agentmail inboxes messages list",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'count': 6, 'messages': [{'attachments': [{'attachment_id': '[id]',"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-04",
   "surface": "cli",
   "claim": "agentmail inboxes messages reply",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'message_id': '<010001a138e05279-[id]-000000@email.amazonses.com>',",
   "capability": "Docs claim: Reply to a message (reply or reply-all) within its thread",
   "task": "agentmail inboxes messages reply",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'message_id': '<010001a138e05279-[id]-000000@email.amazonses.com>',"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-05",
   "surface": "cli",
   "claim": "agentmail inboxes messages forward",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'message_id': '<010001a138e055c8-[id]-000000@email.amazonses.com>',",
   "capability": "Docs claim: Forward a message to new recipients",
   "task": "agentmail inboxes messages forward",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'message_id': '<010001a138e055c8-[id]-000000@email.amazonses.com>',"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-06",
   "surface": "cli",
   "claim": "agentmail inboxes threads list",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'count': 2, 'threads': [{'attachments': [{'attachment_id': '[id]',",
   "capability": "Docs claim: View and manage threaded conversations across an inbox",
   "task": "agentmail inboxes threads list",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'count': 2, 'threads': [{'attachments': [{'attachment_id': '[id]',"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-07",
   "surface": "cli",
   "claim": "agentmail inboxes messages get-attachment",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'attachment_id': '[id]', 'content_disposition': 'attachment', 'cont",
   "capability": "Docs claim: Send and download file attachments on messages",
   "task": "agentmail inboxes messages get-attachment",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'attachment_id': '[id]', 'content_disposition': 'attachment', 'cont"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-08",
   "surface": "cli",
   "claim": "agentmail inboxes drafts create",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'created_at': '2026-10-14T05:26:29.563Z', 'draft_id': '[id]', 'inbo",
   "capability": "Docs claim: Create, edit and send a draft email",
   "task": "agentmail inboxes drafts create",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'created_at': '2026-10-14T05:26:29.563Z', 'draft_id': '[id]', 'inbo"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-09",
   "surface": "cli",
   "claim": "agentmail inboxes drafts create --send-at",
   "doc_url": "https://docs.agentmail.to/integrations/cli",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "agentmail-cli 1.9.0 (npm), exit 0: {'created_at': '2026-10-14T05:26:29.939Z', 'draft_id': '[id]', 'inbo",
   "capability": "Docs claim: Schedule a draft to send at a future time",
   "task": "agentmail inboxes drafts create --send-at",
   "route": "cli",
   "evidence": "agentmail-cli 1.9.0 (npm), exit 0: {'created_at': '2026-10-14T05:26:29.939Z', 'draft_id': '[id]', 'inbo"
  },
  {
   "t": "12:11",
   "kind": "claim",
   "cap": "cap-02",
   "surface": "sdk",
   "claim": "client.inboxes.messages.send (TypeScript SDK agentmail)",
   "doc_url": "https://docs.agentmail.to/websockets",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "sent \"WS test \", received in the target inbox",
   "capability": "Docs claim: Send an email from an inbox",
   "task": "client.inboxes.messages.send (TypeScript SDK agentmail)",
   "route": "sdk",
   "evidence": "sent \"WS test \", received in the target inbox"
  },
  {
   "t": "14:07",
   "cap": "cap-01",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 2)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "create 200 GET 200; DELETE 202 GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Create an email inbox for an agent"
  },
  {
   "t": "14:07",
   "cap": "cap-02",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 2)",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": false,
   "evidence": "send 429; GET labels None",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Send an email from an inbox"
  },
  {
   "t": "14:07",
   "cap": "cap-03",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 2)",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": false,
   "evidence": "received after polling: False",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Receive incoming email into an inbox"
  },
  {
   "t": "14:07",
   "cap": "cap-08",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 2)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "create 200 update 200 text v2 send 200",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Create, edit and send a draft email"
  },
  {
   "t": "14:07",
   "cap": "cap-09",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 2)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "create 200 status scheduled send_at 2026-10-14T05:30:28Z (send checked later)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Schedule a draft to send at a future time"
  },
  {
   "t": "15:01",
   "cap": "cap-01",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 3)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "create 200 GET 200; DELETE 202 GET 404",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Create an email inbox for an agent"
  },
  {
   "t": "15:01",
   "cap": "cap-02",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 3)",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": false,
   "evidence": "send 429; GET labels None",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Send an email from an inbox"
  },
  {
   "t": "15:01",
   "cap": "cap-03",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 3)",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": false,
   "evidence": "received after polling: False",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Receive incoming email into an inbox"
  },
  {
   "t": "15:01",
   "cap": "cap-08",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 3)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "create 200 update 200 text v2 send 200",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Create, edit and send a draft email"
  },
  {
   "t": "15:01",
   "cap": "cap-09",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh objects (trial 3)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "create 200 status scheduled send_at 2026-10-14T05:31:22Z (send checked later)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Schedule a draft to send at a future time"
  },
  {
   "t": "15:54",
   "cap": "cap-04",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 2); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "reply 200; thread msgs 2",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Reply to a message (reply or reply-all) within its thread"
  },
  {
   "t": "15:54",
   "cap": "cap-05",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 2); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "forward 200; GET 200 to ['the agent's inbox']",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Forward a message to new recipients"
  },
  {
   "t": "15:54",
   "cap": "cap-06",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 2); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "thread get 200 msgs 3",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "View and manage threaded conversations across an inbox"
  },
  {
   "t": "15:54",
   "cap": "cap-07",
   "trial": 2,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 2); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "attachment GET 200; download matches True",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Send and download file attachments on messages"
  },
  {
   "t": "16:06",
   "cap": "cap-04",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 3); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "reply 200; thread msgs 2",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Reply to a message (reply or reply-all) within its thread"
  },
  {
   "t": "16:06",
   "cap": "cap-05",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 3); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "forward 200; GET 200 to ['the agent's inbox']",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Forward a message to new recipients"
  },
  {
   "t": "16:06",
   "cap": "cap-06",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 3); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "thread get 200 msgs 3",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "View and manage threaded conversations across an inbox"
  },
  {
   "t": "16:06",
   "cap": "cap-07",
   "trial": 3,
   "way": "api_signup",
   "task": "Repeat core task, fresh message (trial 3); sender is a fresh inbox, recipient an inbox already mailed (sending ramp)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "attachment GET 200; download matches True",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference",
    "docs_match": "match"
   },
   "capability": "Send and download file attachments on messages"
  },
  {
   "t": "16:46",
   "cap": "cap-16",
   "capability": "Pods",
   "way": "api_signup",
   "task": "Create pod, inbox in pod, list pod inboxes, delete",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "POST /v0/pods 200; POST /v0/pods/{id}/inboxes 200; GET pod inboxes lists only adt-pod-inbox; DELETE inbox 202, DELETE pod 204, GET pod 404",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "16:53",
   "cap": "cap-18",
   "capability": "Metrics",
   "way": "api_signup",
   "task": "GET metrics usage/events/rates",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "all 200; events shows message.sent count 26, message.received 13, message.delivered present, matching the drive's activity; rates bounce/complaint empty",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "17:01",
   "cap": "cap-23",
   "capability": "Raw MIME",
   "way": "api_signup",
   "task": "GET message raw, download .eml",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET raw 200 returns size 4961 + signed download_url (not inline MIME); .eml downloaded (4885 bytes) with headers ['From: AgentMail <adt-trial-4@agentmail.to>', 'Subject: trial 3 r', 'Message-ID: <010001a138e3e1fe-[id]-000000@email.amazonses.com>']",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "17:30",
   "cap": "cap-24",
   "capability": "Idempotency",
   "way": "api_signup",
   "task": "Send twice with Idempotency-Key; create inbox twice with client_id",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "send x2 same Idempotency-Key -> both 200 with the same message_id, search shows one message; changed body with same key -> 409 conflict with fix. Inbox create x2 same client_id -> same inbox; a changed username with same client_id silently returned the original inbox (200). Quoted SF-string key form (\"...\") rejected 400 with clear character rule.",
   "quality": {
    "docs_match": "match",
    "idempotent": "yes",
    "verify_route": "yes"
   }
  },
  {
   "t": "18:25",
   "cap": "cap-15",
   "capability": "Custom domain",
   "way": "api_signup",
   "task": "POST /v0/domains amtest.agentdrives.com",
   "route": "api",
   "documented": true,
   "result": "plan_gated",
   "verified": true,
   "evidence": "403 limit_exceeded \"Your plan's domain limit is 0 ... Developer raises it to 10 for $20.00/month\", upgrade_url console.agentmail.to/dashboard/upgrade"
  },
  {
   "t": "18:26",
   "cap": "cap-21",
   "capability": "App catalog",
   "way": "api_signup",
   "task": "GET /v0/apps and /v0/apps/search",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET /v0/apps 200 count 5 with app_id, slug, name (Firecrawl first) and next_page_token; search q=firecrawl count 1; q=search count 0",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   },
   "notes": "MCP tools are list_apps/search_apps/get_app (map names list_providers/search_providers/get_provider)"
  },
  {
   "t": "18:26",
   "cap": "cap-20",
   "capability": "Create account at third-party app (AgentID)",
   "way": "api_signup",
   "task": "POST /v0/apps/{app_id}/connect",
   "route": "api",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not tested: connecting creates an account at another company's product (e.g. Firecrawl): outside this drive's scope (only account at AgentMail). Endpoint and MCP tool connect_app exist in OpenAPI / tools/list."
  },
  {
   "t": "18:41",
   "cap": "cap-22",
   "capability": "Public-key credentials",
   "way": "api_signup",
   "task": "Register P-256 JWK via POST /v0/api-keys, read, delete",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "200 type public_key with fingerprint; GET 200; DELETE 204; GET 404. No pending/active status field seen (map check mentions one); the AgentID sign-in with it was not exercised (third-party app).",
   "quality": {
    "docs_match": "drift",
    "verify_route": "yes"
   }
  },
  {
   "t": "18:59",
   "cap": "cap-19",
   "capability": "IMAP/SMTP",
   "way": "api_signup",
   "task": "Connect over IMAP with inbox id + API key, list messages",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "IMAP4_SSL imap.agentmail.to:993 login(adt-mcp-1@agentmail.to, API key) OK; select INBOX OK; 1 messages; last Subject: For MCP claims",
   "notes": "docs: credentials are the inbox id + an API key, so no console visit is needed (the map lists it as UI-only)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/imap-smtp",
    "docs_match": "match"
   }
  },
  {
   "t": "19:32",
   "cap": "cap-19",
   "capability": "IMAP/SMTP",
   "way": "api_signup",
   "task": "Compare IMAP INBOX with the API list",
   "route": "api",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "IMAP INBOX showed 1 message; GET messages?labels=received lists 5 for the same inbox (4 arrived after the first one, minutes before). Docs say a missing permission stops updates; our key is unrestricted.",
   "quality": {
    "docs_url": "https://docs.agentmail.to/imap-smtp",
    "docs_match": "drift"
   }
  },
  {
   "t": "19:32",
   "cap": "cap-26",
   "capability": "Team seats",
   "way": "api_signup",
   "task": "Check against docs/pricing",
   "route": "none",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "pricing: Free \"Team Members\" listed; Developer 2 organization seats, Startup 10; console-only, no API route in OpenAPI",
   "notes": "https://www.agentmail.to/pricing"
  },
  {
   "t": "19:32",
   "cap": "cap-27",
   "capability": "Remove footer",
   "way": "api_signup",
   "task": "Check against docs/pricing",
   "route": "none",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "pricing table row \"Sent via AgentMail\" footer (free plan carries it: our sent mail had \"--\\nSent via AgentMail\"); removal on paid plans",
   "notes": "https://www.agentmail.to/pricing"
  },
  {
   "t": "19:32",
   "cap": "cap-28",
   "capability": "White-label",
   "way": "api_signup",
   "task": "Check against docs/pricing",
   "route": "none",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "llms.txt + pricing: \"White-label platform\" in Enterprise (custom pricing, contact)",
   "notes": "https://www.agentmail.to/pricing"
  },
  {
   "t": "19:32",
   "cap": "cap-29",
   "capability": "SSO",
   "way": "api_signup",
   "task": "Check against docs/pricing",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "pricing: \"Social SSO\" on all plans; llms.txt: OIDC/SAML SSO on Enterprise; console settings only, not tried (console sign-in not used on this drive)",
   "notes": "https://www.agentmail.to/pricing"
  },
  {
   "t": "19:32",
   "cap": "cap-30",
   "capability": "SOC 2 report",
   "way": "api_signup",
   "task": "Check against docs/pricing",
   "route": "none",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "docs page soc-2-compliance.md: 2025 SOC 2 Type II completed, 2026 audit with A-LIGN; report on Startup ($200/mo)",
   "notes": "https://www.agentmail.to/pricing"
  },
  {
   "t": "19:32",
   "cap": "cap-31",
   "capability": "Dedicated IPs",
   "way": "api_signup",
   "task": "Check against docs/pricing",
   "route": "none",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "pricing: \"Dedicated IPs: Contact us\" (Enterprise)",
   "notes": "https://www.agentmail.to/pricing"
  },
  {
   "t": "19:32",
   "cap": "cap-32",
   "capability": "EU / BYO cloud",
   "way": "api_signup",
   "task": "Check against docs/pricing",
   "route": "none",
   "documented": true,
   "result": "plan_gated",
   "verified": false,
   "evidence": "llms.txt + pricing: EU region cloud, BYO cloud on Enterprise; OpenAPI lists server https://api.agentmail.eu (eu-prod)",
   "notes": "https://www.agentmail.to/pricing"
  },
  {
   "t": "19:32",
   "cap": "cap-33",
   "capability": "Agent sign-up + human OTP verify",
   "way": "api_signup",
   "task": "POST /v0/agent/sign-up, OTP mail, POST /v0/agent/verify",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "sign-up 200 (unverified org, send limited to the human email); OTP arrived in seconds; verify 200 verified:true; sends to other recipients then worked (after which the 3-recipient first-hour ramp applies)",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "20:15",
   "cap": "cap-13",
   "capability": "Webhooks",
   "way": "api_signup",
   "task": "Polling webhook: receive again ~10 min later",
   "route": "sdk",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "Svix AutoConfigConsumer.receive returned 6 events (message.sent x5, message.received \"Re: For MCP claims\"), committed; first receive minutes earlier had returned 0 (events queue with delay)",
   "quality": {
    "docs_url": "https://docs.agentmail.to/webhook-polling",
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "22:58",
   "cap": "signup",
   "way": "pay_per_call",
   "task": "x402/MPP pay-per-call inbox create without account",
   "route": "api",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "over_cap",
   "evidence": "pay_tx.json: x402 v2 402 on https://x402.api.agentmail.to/v0/inboxes asks 2 USDC (exact, eip155:8453), over our $1 per-payment cap, refused by us, nothing paid",
   "capability": "Sign up"
  },
  {
   "t": "22:58",
   "cap": "signup",
   "way": "sso_agent",
   "task": "Sign in with AgentID at AgentMail",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "same_as",
   "evidence": "AgentID is AgentMail's product for agents signing in to OTHER apps; the console sign-up shows only Google and email/password, no AgentID button. Not a way into AgentMail itself.",
   "capability": "Sign up"
  },
  {
   "t": "22:58",
   "cap": "signup",
   "way": "email_password",
   "task": "Console sign-up with email+password (the agent's inbox)",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "cause": "check",
   "evidence": "https://console.agentmail.to/sign-up: after Continue the form is replaced by a Cloudflare Turnstile \"Verify you are human\" widget (Clerk bot protection). Not solved, not retried.",
   "capability": "Sign up"
  },
  {
   "t": "22:58",
   "cap": "signup",
   "way": "stripe_projects",
   "task": "Stripe Projects",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "not_tried": "no_kit",
   "evidence": "Listed in the Stripe Projects catalog (door_probe, lead); our agent has no Stripe Projects account",
   "capability": "Sign up"
  },
  {
   "t": "22:58",
   "cap": "credentials",
   "way": "oauth_consent",
   "task": "MCP OAuth (DCR + authorize, PKCE, resource)",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "cause": "check",
   "evidence": "DCR at /oauth/register 200 (client_id issued). /oauth/authorize redirects to accounts.console.agentmail.to/sign-in, which shows a Cloudflare \"Performing security verification\" interstitial that did not clear after 15 s; and the agent-created org has no console user to consent with. MCP with x-api-key works instead.",
   "capability": "Key"
  },
  {
   "t": "22:58",
   "cap": "signup",
   "way": "sso_enterprise",
   "task": "OIDC/SAML SSO",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "assisted_only",
   "evidence": "Enterprise plan only (llms.txt)",
   "capability": "Sign up"
  },
  {
   "t": "22:58",
   "cap": "signup",
   "way": "person_key",
   "task": "Human creates key in console",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "not_tried": "assisted_only",
   "evidence": "llms.txt Step 2 fallback: developer generates a key at console.agentmail.to",
   "capability": "Sign up"
  },
  {
   "t": "22:58",
   "cap": "pay",
   "task": "Public pay probes",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "x402 v2 on x402.api.agentmail.to (PAYMENT-REQUIRED header, 2 USDC exact on Base eip155:8453 + Avalanche/Polygon/Solana/eip155:196; realm api.paysponge.com) and MPP on mpp.api.agentmail.to (WWW-Authenticate: Payment method=\"tempo\" intent=\"charge\", 2000000 of token 0x20C0…b50 on chainId 4217, problem+json body). OpenAPI servers list both. No billing/subscription endpoint in OpenAPI (113 paths). GET /v0/organizations: billing_plan_id free. Domain create 403 names upgrade_url console.agentmail.to/dashboard/upgrade ($20/mo Developer). Pricing: Free plan, no card.",
   "capability": "Pay"
  },
  {
   "t": "22:58",
   "cap": "pay",
   "step": "checkout",
   "task": "Walk to the last click: console.agentmail.to/dashboard/upgrade",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Upgrade URL redirects to accounts.console.agentmail.to/sign-in behind a Cloudflare interstitial that does not clear; our agent-made org has no console user, and console sign-up shows Turnstile. Checkout not reached; processor unknown.",
   "capability": "Pay"
  },
  {
   "t": "22:58",
   "cap": "cancel",
   "task": "Cancel plan",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Nothing to cancel: free plan, no trial, nothing paid. Docs/OpenAPI show no billing API; plan changes are in the console.",
   "capability": "Cancel"
  },
  {
   "t": "23:07",
   "cap": "cap-09",
   "trial": 2,
   "step": "use",
   "way": "api_signup",
   "task": "Scheduled draft sends (trial 2)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "send_at 2026-10-14T05:30:28Z; draft GET 404; sent message [('trial sched 2', ['sent'], '2026-10-14T05:30:44.868Z')]",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/create",
    "docs_match": "match"
   },
   "capability": "Schedule a draft to send at a future time"
  },
  {
   "t": "23:08",
   "cap": "cap-09",
   "trial": 3,
   "step": "use",
   "way": "api_signup",
   "task": "Scheduled draft sends (trial 3)",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "send_at 2026-10-14T05:31:22Z; draft GET 404; sent message [('trial sched 3', ['sent'], '2026-10-14T05:31:42.830Z')]",
   "quality": {
    "docs_url": "https://docs.agentmail.to/api-reference/inboxes/drafts/create",
    "docs_match": "match"
   },
   "capability": "Schedule a draft to send at a future time"
  },
  {
   "t": "23:22",
   "cap": "credentials",
   "key": "revoke",
   "way": "api_signup",
   "task": "DELETE /v0/api-keys/{id}, use the key again",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "DELETE 204; GET /v0/inboxes with the revoked key -> 403 {'message': 'Forbidden'}",
   "capability": "Key"
  },
  {
   "t": "23:29",
   "cap": "cap-13",
   "capability": "Webhooks",
   "way": "api_signup",
   "step": "delete",
   "task": "DELETE webhook and polling webhook, read back",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "webhook DELETE 204 GET 404; polling DELETE 204 GET 404",
   "quality": {
    "docs_match": "match",
    "verify_route": "yes"
   }
  },
  {
   "t": "23:31",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "mcp",
   "claim": "delete_inbox",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "failed",
   "verified": false,
   "documented": true,
   "notes": "tools/call delete_inbox -> GET inbox 409",
   "capability": "Docs claim: Create an email inbox for an agent",
   "task": "delete_inbox",
   "route": "mcp",
   "evidence": "tools/call delete_inbox -> GET inbox 409"
  },
  {
   "t": "23:47",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "mcp",
   "claim": "delete_inbox",
   "doc_url": "https://docs.agentmail.to/integrations/mcp",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "read back: GET inbox -> 409 resource_deleting \"Inbox is being deleted\" (asynchronous delete, DELETE answers 202); list no longer shows it",
   "capability": "Docs claim: Create an email inbox for an agent",
   "task": "delete_inbox",
   "route": "mcp",
   "evidence": "read back: GET inbox -> 409 resource_deleting \"Inbox is being deleted\" (asynchronous delete, DELETE answers 202); list no longer shows it"
  },
  {
   "t": "24:11",
   "cap": "delete",
   "way": "api_signup",
   "task": "Delete account: delete all inboxes, webhooks, keys; look for an org delete",
   "route": "api",
   "documented": true,
   "result": "partial",
   "verified": true,
   "left": "stuck",
   "evidence": "No documented account/organization delete (OpenAPI 113 paths: /v0/organizations is GET only; docs and llms.txt name none; privacy policy lists a right to request deletion, no route). Deleted every inbox (DELETE 202, GET 404, list count 0), both webhooks, the scoped key, then the org's own key: DELETE 204, next call 401 unknown_api_key. The empty organization (agent-type, the agent's inbox) stays; the console that might delete it is behind Cloudflare checks and the org has no console user.",
   "quality": {
    "error_legibility": "clear"
   },
   "capability": "Delete"
  }
 ],
 "stale": false,
 "icon": "/logos/agentmail.png",
 "monitored": false,
 "verdict": "Runs on its own, L4: our agent got in, confirmed its inbox code and ran every core email task through the API, the official MCP server and the CLI, headless, with clear errors and working idempotency. Paying stopped it first: AgentMail's own agent-payable rails sell inbox creation per call, but the price sat over our drive's cap. The monthly plan sits behind a console sign-in with a Cloudflare check our agent-made org has no human to clear. It removed every inbox, webhook and key on its own but found no route to delete the organization itself.",
 "page": "https://agentdrives.com/tools/agentmail?via=api"
}