API-first inboxes for builders and bots
A free inbox for your new business
+ inboxes for your team, your apps and your agents.
Add an address
- John SmithRe: Dinner tomorrow — Still on for 8?18:42
- Maya IyerStudio visit — Thursday works better.17:55
- Jane DoeYour invoice — Attached for March.17:20
- Ravi MenonQuote for the shelving — Two options.Mon
- GitHubDeploy succeeded — Production is live.Sun
- Nadia HassanCoffee next week? — Tuesday or Friday.Fri
- Companies HouseConfirmation statement — Due 14 October.Fri
- Ilse BakkerThe Kentish Town flat — Viewing confirmed.Thu
Threaded, searchable, and yours to read in our client or your own.
Setup
Add your domain. Done.
Publish one TXT record to prove the domain is yours, and Pidgeon writes MX, SPF, DKIM and DMARC for you — wherever your registrar allows it, and without you ever seeing them.
How it works- 01DomainsAdd a domainyourname.comAddNo www, no https — just the domain.
Add your domain
The one you just bought. It stays with your registrar.
- 02yourname.comPending
- TXT · @pidgeon-verification=a1b2c3d4
- MX · SPF · DKIM · DMARC
Publish one record
One TXT record is yours to paste. The other four are ours.
- 03yourname.comVerified
- hello@yourname.comPerson
- scout@yourname.comAI agent
- Add an address
Name your addresses
One for you, then as many as the work needs.
Your client
Read it wherever you read mail.
A real client, not a webmail afterthought: conversations, search across every folder, drafts that save themselves, and a key for everything you do twice. Or connect the client you already live in and never open ours.
Click around a demo inbox- John SmithRe: Dinner tomorrow — Still on for 8?18:42
- Maya IyerStudio visit — Thursday works better.17:55
- Jane DoeYour invoice — Attached for March.17:20
- Ravi MenonQuote for the shelving — Two options.Mon
- GitHubDeploy succeeded — Production is live.Sun
- Nadia HassanCoffee next week? — Tuesday or Friday.Fri
- Companies HouseConfirmation statement — Due 14 October.Fri
- Ilse BakkerThe Kentish Town flat — Viewing confirmed.Thu
- Ravi MenonRe: Site visit — Any time before noon.Thu
Studio visit
3 messages · Maya Iyer, you
Thursday works better for me if that’s still open — I can be at yours from about eleven and stay through the afternoon.
Thursday is fine. I’ll leave the side door unlocked; the buzzer has been broken since the builders were in.
Perfect. Bringing the two smaller frames so we can see them against the wall.
A key for everything
⌘K, then type. Every action has a shortcut, and the palette teaches you them.
Search that reaches everything
Every folder at once, spam and trash included. Nothing is hidden from it.
Or never open ours
IMAP and SMTP on every plan — Superhuman, Apple Mail, Thunderbird, anything that speaks it.
Every address, one inbox
hello@, billing@, me@ — as many as you want, all landing in the same place. They are addresses, not accounts, so there is nothing extra to sign into.
A catch-all, when you ask
Take everything sent to the domain, however it was spelt. Off until you turn it on, because a catch-all also collects every typo and every dictionary attack.
You find out when mail fails
Every recipient gets its own outcome, in the thread, in the receiving server’s own words. Addresses that hard-bounce are blocked before the next attempt — and you can lift that yourself.
Privacy and security
Less to steal. Less to keep.
Most of this you can check rather than take on trust: there is no password anywhere in the system, the audit log is yours to read, and deleting a message deletes the original too — not just your copy of it.
Who can read my mailNo passwords, anywhere
Sign-in is a one-time link sent to you. There is no password to phish, reuse or stuff — and none in our database to leak.
Delete means delete
Deleting a message erases the original, not just your copy. Without that the delete button is a lie, and most hosts keep the raw message either way.
We keep less of it
Raw originals are gone in thirty days. Events in ninety. Nothing that does not need to exist is kept because deleting it was never scheduled.
Encrypted in transit and at rest
TLS on every hop we control. Disk and object-store encryption underneath, with a key we manage rather than the cloud provider’s default.
Nothing is scanned
There is no advertising business here to feed, so nothing reads your mail to build a picture of you. That is a business model, not a promise.
An audit trail you can read
Every consequential action is an immutable event — deliveries, response codes, hand-offs, sign-ins — and the database refuses to drop one under ninety days old.
What you can build
Email is an interface everyone has.
Everyone your product touches has email and knows how to use it — including the ones who will never install your app. Each of these is one address and one webhook.
See the codeSupport that hands over cleanly
Your agent drafts the reply and sends it. The moment it is out of its depth it hands the thread to a person, who picks it up in the web inbox with the whole history intact.
thread.handed_offA receipts pipeline
Point every supplier and every card at one address. Parse the invoice, push it to the ledger, keep the original. No mailbox to poll and no MIME to unpick.
message.receivedNotifications people can reply to
Someone answers your alert email and the answer lands back in the right thread in your app, instead of bouncing off a no-reply address nobody reads.
in_reply_toAn agent with a name on your domain
Give it an address and people email it like a colleague — chase a document, book a slot, answer a question — and it can pull a human in whenever the conversation needs one.
type: "agent"For builders
Mail in. HTTP out.
An address your code owns. Mail arrives, we call your endpoint with a signed payload, and you reply through the API. No IMAP, no polling, no parsing MIME.
Read the API referenceimport { Pidgeon } from '@pidgeon-ai/sdk';
const pidgeon = new Pidgeon({ apiKey: process.env.PIDGEON_API_KEY! });
// `application` means no inbox: mail arriving here
// becomes an event, and there is nothing to read.
const inbox = await pidgeon.identities.create({
domain_id: domain.id,
local_part: 'receipts',
type: 'application',
});
// Somewhere to be told about it. The response carries
// `secret` once — store it, you cannot read it back.
const hook = await pidgeon.webhooks.create({
url: 'https://api.example.com/pidgeon',
event_types: ['message.received'],
});Webhooks that keep trying
Signed with HMAC over the timestamp and body, then retried seven times across seven hours. Anything still failing lands in a dead-letter you can inspect and replay by hand.
Safe to retry
Idempotency-Key on every write, with Stripe’s semantics because that is the contract you already know. Same key and body replays the stored response; a different body is a 409 rather than a surprise.
An event for everything
Sixteen event types, immutable for ninety days, browsable with the exact payload and response code we saw. It is the same log the webhooks are sent from, not a summary of it.
Pricing
Free, and not a trial.
Two halves, priced the way they cost. People pay a flat fee for mailboxes; software pays for what it actually uses. Receiving is free on all three, because charging for the thing that makes an inbox valuable would be the wrong business.
Every limit, in fullFree
$0Everything one person needs, kept indefinitely.
- 1 domain
- 3 mailboxes, 10 GB each
- 3 programmable addresses
- 3 webhook endpoints
- 150 messages a day
- 10 routed addresses per domain
- Unlimited inbound
Team
$5 / moFor a few people sharing one domain.
- 5 domains
- 15 mailboxes, 50 GB each
- 25 programmable addresses
- 25 webhook endpoints
- 1,000 messages a day
- 50 routed addresses per domain
- Unlimited inbound
Usage
Per address, per messageFor software that outgrew a daily limit.
- Everything in Team
- No daily sending cap
- Programmable addresses by the month
- Outbound by the thousand
- Higher API rate limits
- Priority abuse review
- Unlimited inbound
Inbound is always free
Receiving costs you nothing on any plan, including the free one. Metering the half of email that makes an inbox worth having is a business model we would rather not have.
No surprise bills
Go past a limit on Free or Team and you are rate-limited, not invoiced. Usage only meters once you have chosen it.
Free stays free
No end date, no card, no feature that quietly expires. If what Free includes ever changes, accounts already on it keep what they had.
Before you start
The questions people actually ask.
Including the ones with an awkward answer. A free email host that is vague about what it has not built yet is not one to trust with your domain.
Yes, and it is not a trial. One domain, three mailboxes at 10 GB each, three programmable addresses, kept indefinitely, with no card and no end date. Receiving mail is free on every plan — you would only ever pay for more mailboxes, or for software sending a great deal, and those two are what pay for this one. If what Free includes ever changes, accounts already on it keep what they had.