Inbound email API · webhooks, REST, MCP
An email inbox your AI agent can run.
Inboundr receives email on your own domain and turns every message into parsed, threaded JSON. It posts each one to your app as a signed webhook, and your code or agent can read the inbox over REST or MCP.
Connecting an agent takes one command.
email.received
Webhook 200Refund for order #4821
- From
- dana@example.com
- Customer, first message
- To
- support@acme.dev
- Created by the agent
- Verdicts
- SPF pass · DKIM pass
- Spam: not spam
- Thread
- 3 messages
- Threaded by In-Reply-To
There's no mail server to run and no MIME to parse.
Use cases
Receive email at any address on your domain
Point your domain's MX record at Inboundr and every address on it starts receiving mail. You don't create addresses first: support@, invoices@ and any address an agent invents all work.
Inbound: Every address is an inbox
Mail to any address on the domain is accepted, then parsed and threaded before your code sees it.
Read the receiving guideCapabilities
What the inbound email API handles for you
Accepting mail is the simple part. Parsing it, retrying failed deliveries, filtering senders and storing attachments is where the work goes.
Webhooks
Parsed email arrives as a signed webhook
Each message is parsed into JSON and POSTed to your endpoint with an HMAC signature, so you can verify it came from Inboundr.
REST API
Read the inbox over the REST API
Mail to an address with no webhook is stored for you. List and fetch it over REST, or let your agent read it over MCP.
Shield
Filter mail before it lands
Block, allow, route or quarantine mail by sender, subject or domain. Rules run before anything reaches your webhook.
Delivery
Webhook retries and a delivery log
Failed webhooks retry on a backoff you configure, and every attempt is logged with its response so you can replay it.
Routing
Catch-all routing for a whole domain
One catch-all rule routes every address you haven't set up yet, so agents can create addresses as they need them.
Attachments
Attachments with no storage to set up
Each attachment gets a short-lived download link over REST or MCP. You don't need a storage bucket of your own.
Threads
Every reply lands in the right conversation
Messages are grouped into threads from their Message-ID, In-Reply-To and References headers, so your app or agent can fetch a whole conversation in one call.
Model Context Protocol
An email MCP server with eleven tools
Add the server to Claude Code or any other MCP client and your agent can create inboxes, read threads, fetch attachments and manage filter rules on its own. Search the tools below.
Domains & inboxes
- list_domainsSee your domains and whether they're verified.
- create_inboxMint a new address on your domain, live instantly.
- list_inboxesEvery address the agent owns, at a glance.
Reading
- list_emailsScan the inbox newest-first, filtered and paginated.
- get_emailOne message in full: bodies, attachments, verdicts.
- get_threadThe whole conversation, oldest first.
- get_attachmentA short-lived download link for any attachment.
Shield
- create_shield_ruleBlock, allow, route or quarantine inbound mail.
- list_shield_rulesThe filter rules, in the order they fire.
- list_shield_blocksWhat got dropped, and which rule caught it.
- delete_shield_ruleRetire a rule; its senders flow again.
How it works
Set up inbound email in three steps
Setup takes about five minutes, from adding DNS records to the first parsed email.
Step 1
Point your domain
Add your domain and copy the MX, SPF and DKIM records we generate into your DNS. We check them and verify the domain automatically.
Step 2
Connect your agent
Add the MCP server with one command and your agent can use all eleven tools. To call it from your own code instead, use the REST API with a Bearer key.
Step 3
Let it run the inbox
New mail arrives as parsed, signed JSON. Your agent reads the thread, creates new addresses when it needs them and sets its own filter rules.
Pricing
Pricing based on the email you receive
Each plan includes a monthly number of received emails. There are no charges per seat, per inbox or per agent.
Free
For trying it out.
- 200 emails / mo
- Unlimited inboxes
- 1 domain
- 50 emails / day
- No attachment storage
- 3 Shield rules
- Stops at the allotment
Basic
For one app or agent in production.
then $0.60 per 1,000
Get started- 6,000 emails / mo
- Unlimited inboxes
- 3 domains
- No daily limits
- 10 MB attachments
- 10 Shield rules
- Pay-as-you-go past the allotment
Pro
Most popularFor teams running several agents.
then $0.60 per 1,000
Get started- 50,000 emails / mo
- Unlimited inboxes
- 50 domains
- No daily limits
- 25 MB attachments
- 50 Shield rules
- Pay-as-you-go past the allotment
Scale
For high-volume inbound mail.
then $0.60 per 1,000
Get started- 150,000 emails / mo
- Unlimited inboxes
- 500 domains
- No daily limits
- 50 MB attachments
- Unlimited Shield rules
- Pay-as-you-go past the allotment
The fine print
Receiving gets its own monthly allotment, and stops at 100%. Turning on pay-as-you-go keeps mail flowing, up to a monthly limit you set.
- Off by default
- Nothing above your plan price until you enable it
- Capped by default
- And the cap is the gap to the next plan, so it can never cost more than upgrading
- Warned first
- We email at 80% and 90%, before anything stops
- Every plan
- MCP, REST API, webhooks, unlimited inboxes, 15-day history
Monthly billing, cancel anytime.
What do I need to set up to receive email?
A domain you control. Add it in the console, copy the MX, SPF and DKIM records we generate into your DNS, and we verify them automatically. Most people receive their first parsed email within five minutes. You don't run a mail server or write a MIME parser.
Do I have to use MCP?
No. Everything the MCP server does is also available as a REST API with a Bearer key, and new mail arrives as a signed webhook either way. You can start with webhooks or REST and add MCP later without changing anything else.
Can agents create their own addresses?
Yes. An agent calls create_inbox on any verified domain and starts receiving mail at that address immediately. Inboxes are unlimited on every plan, including Free, so you can create one per customer, per task or per agent.
Does Inboundr send email?
Not at the moment. Inboundr handles receiving: parsing, threading and routing mail to your webhook, REST API or MCP agent. Keep sending through the provider you already use; nothing changes on that side.
What does an inbound email look like to my code?
JSON. Each message includes the text and HTML bodies, attachment metadata, threading headers and the SPF, DKIM and spam verdicts, so you never handle raw MIME. You get it over REST or MCP, or as a webhook signed with HMAC so you can check it came from Inboundr.
What happens when I hit my plan's limit?
We email you at 80% and 90% of your monthly allotment. At 100%, receiving pauses until your cycle resets. On paid plans you can turn on pay-as-you-go instead, billed per 1,000 emails on that month's invoice. It stays off until you enable it, and it comes with a monthly spending limit, set by default to the difference between your plan and the next one up, so it never costs more than upgrading. You can change or remove the limit at any time.
When does my allotment reset?
On the day your plan started, not the 1st of the month. If you start on 12 July, your cycles run from 12 July to 12 August, then to 12 September, matching your invoices. Unused emails don't carry over.
How does Inboundr compare to the alternatives?
Each one has its own comparison page, and each page ends with the cases where the alternative is the better choice: sending platforms with inbound attached, forwarders and building it yourself. See all the comparisons.
How do I cancel?
In the Stripe billing portal, whenever you like. Billing is monthly with no annual contract, and your domain and addresses stay yours. After cancelling you move to the Free plan, and your domain keeps receiving mail within the Free allotment.
Free tier open
Stop building the email layer
Add your domain, connect the MCP server or a webhook, and the first parsed email arrives in about five minutes. The Free plan includes one domain.
Free plan · No credit card