Pigeonhole
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.

TimeSubjectStatus
  1. 14:02:11Your receiptCLICKED
  2. 09:41:03Password resetOPENED
  3. 09:40:58Invoice 2214DELIVERED
  4. 08:12:44Weekly digestBOUNCED

Your receipt · sam@acme.com

  1. 14:02:11SENDAccepted by SES · transactional
  2. 14:02:12DELIVERYmx1.acme.com · 1.4s
  3. 14:09:47OPENFirst open
  4. 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.

  1. 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.

  2. 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.

  3. 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.

100,000 emails a monthList price
  • 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.
Create an account

Signing up creates your organization. Connect an AWS account and the rest of the dashboard comes to life.