Inbound email API

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.

Start freeSee pricing

Free plan · No credit card

inboundr · agent session
you › take over support on acme.dev
agent › created support@acme.dev · watching
agent › new mail: refund question. filed as ticket #482.
you › block anything from that vendor's domain
agent › done. shield rule set.
you ›

Connecting an agent takes one command.

email.received

Webhook 200

Refund for order #4821

Received 14:32:07Delivered 14:32:08
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.

5 minutesfrom pointing a domain to the first parsed email
3 ways ina signed webhook, the REST API, or eleven MCP tools
Unlimitedinboxes on every plan, including Free

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 guide

Capabilities

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.

11 tools

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.

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

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

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

$0/mo

Get started
  • 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.

$4/mo

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 popular

For teams running several agents.

$19/mo

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.

$55/mo

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.

Your allotmentBlocks of 1,000 at $0.60, charged on entryYour limit
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.

FAQ

Questions before you start

Setup, limits, billing and leaving.

Read the docs

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