Compare
AgentiSend vs AgentMail
Yes, for outbound mail an agent sends under a budget. No, when the job is an inbox per agent. A Free plan that does not expire: 5,000 emails a month, 170 a day, 3 domains, no card. Then plans from $9 a month (Starter, 30,000 emails). No daily cap on paid plans; delivery paced per inbox provider. Or 40% off paid yearly.
Pick AgentMail when the job is an inbox and an identity per agent, a SOC 2 report on the $200 plan, or an EU region on Enterprise; pick AgentiSend when the risk is outbound and you want a per-key budget, a kill switch and a published enforcement ladder. The figures below are from AgentMail pages fetched on 20 October 2026 and from this product's pricing table and published API.
| What matters | AgentiSend | AgentMail |
|---|---|---|
| An inbox object per agent | Receiving is a switch on each verified domain: publish one MX record and mail to that domain is stored on your account, with extracted_text beside the raw body, a clear or review label on every message, an optional hold until a person releases it, and allow and block rules per domain. There is no inbox object; the domain is the address. | Inboxes are the product: 3 on Free, 10 on Developer, 150 on Startup. Threads, labels, attachments and drafts are on every plan. Team members are 2 on Free, 2 on Developer and 10 on Startup. Custom domains are absent on Free. |
| Price at 10,000 emails a month | $9 a month on Starter, which covers 30,000 emails, so $0.30 per 1,000 at the inclusion. | Developer is $20 a month for 10 inboxes, 10,000 emails, 1,000 a day, 100 every 5 minutes, 10 custom domains and 10 GB. Add-ons on Developer and Startup are $2 a month per extra inbox, $2 a month per extra domain, $2 a month per extra 1,000 emails, and $5 a month per extra seat. |
| A spending limit per key | Every key is created with a send budget. The send path refuses with agent_budget_exceeded when it is spent, and a key cannot raise its own. The plan inclusion is a second ceiling (plan_limit_reached). | Plan caps are on the pricing page: 100 a day on Free, 1,000 a day and 100 every 5 minutes on Developer, 15,000 a day and 1,500 every 5 minutes on Startup. A per-key send budget is not. |
| A retry never sends twice | Idempotency-Key is accepted on every endpoint that changes something and remembered for 7 days. | Idempotency-Key on send expires 24 hours after the send completes. Create calls can also take a client_id, and a repeat returns the first resource. |
| What a refusal tells you | Every refused request carries code, message, fix (the call that repairs it), docs_url and retryable. | The error reference says most responses include a code, a message, a docs link and a fix that names the next action. The sending refusal message_rejected carries a fix that states which case applies: a recipient on a send block list, a recipient missing from a send allow list, or an attachment the server could not fetch. |
| How long the log keeps a message | 7 days on Free, 30 on Starter, 90 on Pro, 180 on Scale. It is part of the plan and there is no add-on to buy. | Storage is 3 GB on Free and 10 GB on Developer. The Startup storage cell is blank. Message expiry is optional and off by default: when an organization turns it on, access to each message ends 24 hours after it was recorded. |
| What the model can call | A hosted MCP server with 92 MCP tools (46 listed by default, the rest named by list_more_tools). An agent gets the same budget and kill switch over MCP as over the API. | A hosted server at mcp.agentmail.to/mcp, with OAuth or an x-api-key header. The page lists 39 tools, and OAuth sessions also receive 2 organization-selection tools. The groups include inbox, message, thread, draft and attachment tools. |
| Audited security reports | None yet. No SOC 2 report and no penetration-test letter exist, and /security says so. | A SOC 2 report is included on Startup at $200 a month, and on Enterprise. |
| Where the data sits, and a dedicated address | Not offered. Customer data is processed in the United States. Dedicated IP on request. Once one is assigned, the published ramp is 20% of volume to day 7, 40% to day 14, 60% to day 21, 80% to day 28, then all of it, on GET /dedicated-ips/ramp. | EU region cloud and dedicated IPs are Enterprise. The deliverability table marks dedicated IPs as not on Free, Developer or Startup. |
| Received-mail extraction | GET /emails/receiving/{id} returns extracted_text and extracted_html beside the text and HTML that arrived: the reply with quoted history, signatures and footers removed. So does the email.received webhook. Attachment reads carry a text_url for PDF, Word, Excel, CSV, JSON, HTML and plain text, capped at 10 MB in and 250,000 characters out. | Every message carries extracted_text and extracted_html with quoted history and trailing boilerplate removed, on the single-message read, on each message in a thread, and on message.received. Attachment reads can include a text_url for PDF, Word, Excel and plain text. |
| A link a person opens to publish DNS | POST /domains/{id}/setup-link returns a page the person who owns DNS opens without signing in: every record with a copy button, the zone file, the detected DNS host and a Check again button. It lasts 7 days and shows nothing beyond that one domain. The records are still added by hand at the DNS host. | GET /v0/domains/{domain_id}/setup-link builds a Domain Connect URL when the DNS host supports it and carries their template. Opening the URL lets the domain owner approve the records, and the host writes them. When the host does not support it, supported is false and the records are added by hand. |
| Scanning received mail for instructions | The received body is served as inert data. Nothing scans it for an attempt to instruct an agent, and nothing holds a message back for that reason. | Agent Armor, in Labs and free while it is there, scans mail an inbox receives and marks a verdict of clear or review. Labs is available on US production, not on EU production. An admin turns it on under Settings, then Labs. |
Sources
- An inbox object per agent. Ours: the published API, /pricing and /security. Theirs: https://www.agentmail.to/pricing (captured 2026-10-20).
- Price at 10,000 emails a month. Ours: the published API, /pricing and /security. Theirs: https://www.agentmail.to/pricing (captured 2026-10-20).
- A spending limit per key. Ours: the published API, /pricing and /security. Theirs: https://www.agentmail.to/pricing (captured 2026-10-20).
- A retry never sends twice. Ours: the published API, /pricing and /security. Theirs: https://docs.agentmail.to/idempotency (captured 2026-10-20).
- What a refusal tells you. Ours: the published API, /pricing and /security. Theirs: https://docs.agentmail.to/errors (captured 2026-10-20).
- How long the log keeps a message. Ours: the published API, /pricing and /security. Theirs: https://docs.agentmail.to/message-expiry and https://www.agentmail.to/pricing (captured 2026-10-20).
- What the model can call. Ours: the published API, /pricing and /security. Theirs: https://docs.agentmail.to/integrations/mcp (captured 2026-10-20).
- Audited security reports. Ours: the published API, /pricing and /security. Theirs: https://www.agentmail.to/pricing (captured 2026-10-20).
- Where the data sits, and a dedicated address. Ours: the published API, /pricing and /security. Theirs: https://www.agentmail.to/pricing (captured 2026-10-20).
- Received-mail extraction. Ours: the published API, /pricing and /security. Theirs: https://docs.agentmail.to/reply-extraction (captured 2026-10-20).
- A link a person opens to publish DNS. Ours: the published API, /pricing and /security. Theirs: https://docs.agentmail.to/api-reference/domains/get-setup-link (captured 2026-10-20).
- Scanning received mail for instructions. Ours: the published API, /pricing and /security. Theirs: https://docs.agentmail.to/agent-armor (captured 2026-10-20).