- From
- Your AWS account
- Via
- Amazon SES
Amazon sends the email. Pigeonhole is everything else.
Templates, a delivery timeline for every message, domain setup that publishes its own DNS, inbound mail, and an API your code and your agents can call — all on the AWS account you already own, under your own sending reputation.
Free while you send from one domain. No card.
- 14:02:11sam@acme.comYour receiptCLICKED
- 09:41:03dana@northwind.coPassword resetOPENED
- 09:40:58finance@vendor.ioInvoice 2214DELIVERED
- 08:12:44old@gone.exampleWeekly digestBOUNCED
Your receipt · sam@acme.com
- 14:02:11SENDAccepted by SES · transactional
- 14:02:12DELIVERYmx1.acme.com · 1.4s
- 14:09:47OPENFirst open
- 14:10:03CLICKexample.com/orders/8812
Every message keeps this. A bounce or a complaint lands in the same place, with the reason Amazon gave.
- $0.10per 1,000 emails
- Billed by Amazon, to your own AWS account. We add nothing per message.
- $20per person, per month
- Billed by us. The dashboard, the API, the SDK, the CLI, the agent server.
- Freefor one sending domain
- No message cap, no feature held back, no trial to run out.
One place for everything email touches.
SES is a pile of APIs and a lot of DNS. These are the eight things you actually wanted from it, each with a screen of its own.
Send
Write a one-off message or send a saved template. Previews render through SES itself, so what you see is what the recipient gets.
Track
Every message keeps its own timeline — delivered, opened, clicked, bounced, complained — with the reason Amazon gave for each.
Stay healthy
Bounce and complaint gauges scaled to the rates that put an AWS account under review, so you see trouble the same day Amazon does.
Domains
Add a domain and Pigeonhole reads your DNS, shows exactly which records are missing, and adds only those. Nothing existing is ever changed.
Receive
Inbound mail lands in your own S3 bucket and reads like an inbox here, with the original file and its attachments to download.
Warm up
Ramp a new domain on a schedule instead of by hand, and the ramp freezes itself if bounces start climbing.
Automate
A REST API, a TypeScript SDK, a command line, and an MCP server — all built from one spec, all under the same key.
Team
Invite people with roles. Members can send mail and edit templates without ever seeing an AWS credential.
Three steps to your first timeline.
Connect your AWS account
Paste an access key, pick your regions, and press Test. You get back the account, whether it can send, and how much it may send today — before you rely on it.
Add your domain
Connected to Cloudflare, Route 53, Vercel, Porkbun, or Namecheap? Pigeonhole publishes the records for you. Hosted anywhere else, they are listed with a copy button.
Send, and watch
From the compose screen, from your code, or from an agent. It all lands in the same message list, with the same timeline.
One API. Four ways to call it.
73 endpoints, one OpenAPI document, and every client built from it — so the SDK, the command line, and the tools your agents see cannot drift from what the server actually does.
Bearer key, minted at /settings/api-keys
curl -X POST https://your-host/api/v1/send \ -H "Authorization: Bearer $PIGEONHOLE_KEY" \ -d '{ "from": "hello@acme.com", "to": "sam@example.com", "subject": "Your receipt", "html": "<p>Thanks for your order.</p>" }'- HTTP API
- Browsable docs at /api/v1/docs. Keys you scope to the job they do, and errors carrying a code you can branch on instead of prose you have to parse.
- TypeScript SDK
- Typed responses and typed errors, paging that walks itself, retries that never repeat a send, and one call to verify Amazon's webhook signatures.
- Command line
- Every endpoint has a command. Clean JSON on stdout, exit codes that name the kind of failure, and profiles so staging and production never mix.
- MCP server
- Point Claude or any other agent at it and it gets the same tools, under the same key, inside the same limits.
You pay Amazon for the mail. You pay us for everything else.
Two bills, and neither one is a surprise. Volume never changes what Pigeonhole costs, because Pigeonhole never touches the volume.
- Amazon SES$10
- Resend$90
- Postmark$115
- Mailgun$215
- SendGrid$249
List prices as published, August 2026. Amazon charges per message with no minimum and no tier to outgrow, so ten thousand and ten million are priced the same way.
Free
$0
no card
One sending domain. Every feature, every screen, every API route, and as much mail as Amazon will carry.
Pro
$20
per person, per month
The same product with no ceiling on sending domains. Seats follow your team, so removing someone lowers the bill.
The only thing the free plan holds back is how many domains you can verify. There is no message cap, no feature behind an upgrade, and no trial to run out.
Your AWS bill is separate and always goes to Amazon, whichever plan you are on.
It is your account. We keep it that way.
- Your keys are encrypted
- AWS credentials are encrypted before they are stored and never rendered back into a form — not for us, not for you.
- We hold no mail account
- Pigeonhole has no sending identity of its own. Every message goes out through your account, down to the invitations you send your own team.
- Organizations never overlap
- Connections, messages, and keys belong to one organization, and no screen or API call reads across them.
Signing up creates your organization. Connect an AWS account and the rest of the dashboard comes to life.