If your platform spawns businesses or fleets of agents, you hit the same wall sooner or later: every one of them needs email. A spawned business usually gets the same roster of sales@, support@, billing@, ops@ and ceo@, so 200 businesses means 1,000 inboxes. Then there are the inboxes nobody plans for. Setting up a business means signing up for a payment provider, a registrar and a dozen SaaS tools, and each one sends a code or a magic link to an address that might only matter for an hour.
We priced every option we could find at 1,000 inboxes. The spread runs from a few dollars to $14,000 a month, and the cheap end isn't a trick: there are real products down there. Price just turns out to be the wrong number to sort by. Full disclosure: we run one of these, and we're not the cheapest.
Mailboxes built for people
The first instinct is a Google account per agent. Workspace costs $7–14 a seat, which is $7,000–14,000 a month at 1,000 inboxes. The same idea gets much cheaper elsewhere: Exchange Online Kiosk is $2 a seat, Zoho Mail Lite is $1, and Migadu charges a flat $29–99 a month for unlimited mailboxes.
They all share one problem: they were built for a person who logs in. Creating a mailbox is an admin task, not an API call you make when an agent is born. Inbound arrives over IMAP or a Gmail watch you have to renew, and the send limits assume a human pace (Migadu's plans cap sending at 500–2,000 emails a day across the whole account). Google also takes a dim view of software behaving like a person in Gmail; we wrote up what happens when it suspends an agent.
One domain, a catch-all and your own code
The cheapest serious option skips inboxes entirely. Point a domain's mail at Cloudflare Email Service, route every address to a Worker, and sales@ and support@ are just strings you match on. Receiving is free and unlimited; sending is $0.35 per 1,000 after the first 3,000, on a $5 Workers plan. Cloudflare pitches exactly this for agents, and for one product with a handful of agents it's hard to beat. Amazon SES with S3 and Lambda is the same shape at $0.10 per 1,000 emails. We use SES under the hood ourselves.
What you save on inboxes, you spend on code. Neither service knows what a thread is, which messages are unread, or which of your 200 businesses a reply belongs to, so the parser, the thread store and the routing are yours to write. The harder part is isolation. Put 200 businesses behind one account and they share one reputation: on SES, a single agent stuck in a bounce loop can get sending paused for every customer at once. Splitting domains, keys and limits per tenant is a quarter of infra work that has nothing to do with your product.
Email APIs built for agents
This category barely existed a year ago and now has six contenders. All of them give you inboxes you create by API, with inbound delivered as events and replies grouped into threads. They differ on price far more than on that core:
AgentMail, Resend and OpenMail charge per inbox: $2, $1 and €1 past what the plan includes, which lands each of them around $1,000–1,900 a month at 1,000 inboxes. Nylas Agent Accounts is also per inbox but at $0.40, so $429. mails.ai charges a flat $99 for unlimited agents with capped email volume, and OpenEmail (open.email, no relation to us despite the name) has no inbox fee at all, just $20 a month plus usage.
All twelve, side by side
List prices from each vendor's pricing page in November 2026, at monthly billing unless noted, for 1,000 inboxes. Email volume is extra almost everywhere.
| Option | Pricing | 1,000 inboxes | You still build |
|---|---|---|---|
| Mailboxes built for people | |||
| Google Workspace | $7–14 a seat | $7,000–14,000 | Inbox API, inbound wiring |
| Exchange Online Kiosk | $2 a seat, yearly | $2,000 | Inbox API, inbound wiring |
| Zoho Mail Lite | $1 a seat, yearly | $1,000 | Inbox API, inbound wiring |
| Migadu | Flat, unlimited mailboxes | $29–99 | Inbox API; sending capped at 500–2,000 a day |
| One domain plus your own code | |||
| Cloudflare Email Service | Free inbound, $0.35 per 1,000 sent | ~$5 + sends | Threads, storage, tenant isolation |
| Amazon SES | $0.10 per 1,000 emails | Pennies + sends | Threads, storage, tenant isolation, inbound pipeline |
| Email APIs for agents | |||
| AgentMail Startup | $200 for 150, then $2 each | $1,900 | — |
| Resend Pro + Inboxes | $20 for 3, then $1 each | $1,017 | — |
| OpenMail Pro | €9 for 10, then €1 each | €999 | — |
| Nylas Agent Accounts Pro | $49 for 50, then $0.40 each | $429 | — |
| mails.ai Scale | $99 flat, capped email volume | $99 | — |
| OpenEmail Pro (open.email, not us) | $20 + per email, no inbox fee | $20 + usage | — |
Fig. 1 — Monthly cost of 1,000 agent inboxes
What a platform should actually compare
Once you're choosing between agent APIs, the per-inbox price stops being the interesting number. These are the questions that decide whether it holds up at 200 tenants:
Can one business hurt another? Each business should own its domain, its sending reputation and its API key, so a leaked key or a runaway agent stays inside one tenant.
What happens when an agent loops? Agents fail differently from people: a bad prompt can send 5,000 emails before anyone looks. Look for per-tenant limits, rules on who an inbox may email, and a hard spending cap that pauses rather than bills.
Where do the limits bite? Flat plans cap volume, and some per-inbox plans ship with low default send limits you have to ask to raise. Work out your busiest day, not your average one.
Can the agent read what arrives? Half of business email is attachments: invoices, contracts, scans. Raw MIME means another parser on your side.
Where does the data live? If your tenants are European businesses, their customers' email falls under GDPR, and the hosting region is part of the answer.
Where OpenMail fits
We built OpenMail around those questions rather than the price column. Each business gets a pod, addressed by your own ID, holding its inboxes and its own domain. Keys can be scoped to one pod or one inbox.
Sender rules decide who an inbox may email, per pod or per inbox, and a spending limit is on by default, with an optional auto-pause that stops sending and inbox creation once it's hit. Attachments arrive as text, mail is delivered over a webhook or WebSocket, and everything runs in the EU.
Here's a business's whole email life in one file:
import { OpenMail } from "@openmail/sdk";
import { agent } from "./agent";
const openmail = new OpenMail(); // reads OPENMAIL_API_KEY
// Your platform just spawned a business
export async function onBusinessSpawned(biz: Business) {
// One pod per business, addressed by your own ID
const pod = await openmail.pods.create({ clientId: biz.id, name: biz.name });
// Role inboxes on the business's own domain
const inboxes = await Promise.all(
["sales", "support", "billing", "ops", "ceo"].map((role) =>
pod.inboxes.create({ mailboxName: role, domain: biz.domain }),
),
);
// A key that can only ever touch this business
const key = await pod.apiKeys.create({ name: `${biz.id}-agent` });
return { inboxes, token: key.token };
}
// Replies arrive threaded, attachments already turned into text
openmail.on("message.received", async ({ message, thread }) => {
const answer = await agent.respond(thread.messages);
await message.reply({ text: answer });
});
// Business shut down: its inboxes, threads and keys go with it
export const onBusinessClosed = (id: string) =>
openmail.pods.delete(id, { cascade: true });Fig. 3 — How it could look
Which one
It mostly comes down to how many businesses you expect to run.
A few agents on one product: Cloudflare Email Service costs almost nothing, as long as you're happy to write the threading and storage yourself. If you'd rather not, OpenMail's free plan covers 3 inboxes and 3,000 emails a month, and Pro is €9 for 10 inboxes on your own domain.
Hundreds of businesses, each with its own domain and agents: the per-inbox price matters less than the isolation work you'd otherwise build. That's the case we designed OpenMail for, and Enterprise pricing takes over past a few thousand inboxes.