Build on Pidgeon.
The API, the SDKs, the CLI and the MCP server, and an inbox for every one of your users.
- API
- REST, with an OpenAPI document
- SDKs
- TypeScript, Python and a CLI
- MCP
- Hosted, with sign-in
Let the agent sign itself up. It reads one file, makes the account with two calls, and asks you for a six-digit code.
pidgeon.ai/skill.mdTypeScript. The SDK, typed end to end.
npm i @pidgeon-ai/sdkPython. The same API, in Python.
pip install pidgeonThe command line. Every call, from a terminal.
npm i -g @pidgeon-ai/cliThe MCP server. Hosted, with sign-in, for Claude, ChatGPT, Cursor and every MCP client.
pidgeon.ai/api/mcpThe REST API. One OpenAPI document; the SDKs are generated from it.
The quickstart. An address, a message and a reply, in five minutes.
Wait for the next message. One call returns it, with the verification code and links already taken out.
Webhooks. Signed, and retried when your endpoint fails.
WebSockets. Every mail event over one open connection.
An event stream. Read and replay what happened, for 90 days.
Idempotency on every send. A retry never sends twice.
Search. Full text, across every address a key can reach.
Test mode. Test keys for CI: the whole pipeline runs, nothing leaves, and bounces happen on demand.
Browser and RPA platforms. An inbox per session: every run signs up with an address of its own.
Agent builders. An address for each agent your customers build.
Vertical agents. An inbox per client, kept apart from every other customer’s.
A reputation per customer. Mail sent from a pod lands on that pod’s own sending reputation: one customer’s bounces never touch another’s delivery.
Numbers per customer. Sent, delivered, bounced and received, per pod.
A key per user. It reaches its pod and nothing else, so you can hand it to the user’s agent.
One call per user. The pod, its address and its key, made together or not at all.
How do I give each of my users an email inbox? One call per user. POST /v1/pods with an address and a key makes a pod for that user, an address in it and a key that reaches only that pod. All three are made or none is, and an Idempotency-Key makes a retry safe.
Can one customer’s bad sending hurt the others? No. Mail sent from a pod lands on that pod’s own sending reputation, so bounces and complaints are counted against that customer alone. GET /v1/metrics with a pod_id shows each one’s numbers.
What happens when a user leaves? Either keep the record or remove it. Suspending their addresses keeps the mail; deleting the pod with delete_addresses=true revokes its keys and deletes its addresses with all their mail.
How is it priced for thousands of inboxes? Talk to us. Inboxes are unlimited on every plan, so a platform pays for sending, domains and team members, and volume pricing for platforms is set with you. The published plans are on the pricing page.
Where is the mail stored? In the EU, on every plan. Mail, the API and your data are stored and processed there.
Move your startup’s email to Pidgeon.
You, your team and your agents, in one inbox. Free to start.