Browse the docs
Start here
Introduction to Inboundr
Inboundr is an inbound email API. It receives mail on your own domain and gives it to your code or AI agent as parsed, threaded JSON.
Sending email from an app is well served. Receiving it is the harder part: you have to run a mail server or poll a mailbox, decode MIME, and work out which messages belong to the same conversation.
Inboundr handles the receiving side of email for software. Point a domain at Inboundr and every address on it becomes an inbox your code can read. Each message is parsed into JSON and grouped into threads, and you can get it by webhook, over a REST API, or through MCP tools that an AI agent calls directly.
An agent can do everything over MCP: create addresses, read whole threads, fetch attachments and manage Shield filter rules. You don't need to write glue code between the agent and the inbox.
One inbox, three ways to read it#
Inboundr sits between your code and the people who email you. Mail from any number of senders arrives in one parsed, threaded inbox. Your software reads it over whichever of the three interfaces suits it, and you can combine them: an address that posts to a webhook still keeps its mail available over REST and MCP.
Every address on your domain accepts mail without being created first, and each message is parsed and attached to a thread when it arrives. See Receiving email for the details.
A signed email.received event as soon as mail arrives. Suits servers and
automations.
List and filter mail through a small JSON API. Suits scripts and backends.
List, read and thread mail as tools, and filter it with Shield. Suits agents that act on demand.
What you get instead of raw email#
Text and HTML bodies, attachment metadata, and SPF, DKIM and spam verdicts, so you never decode a MIME message yourself.
Inbound mail is grouped into conversations using the standard threading headers, so one call returns a whole exchange.
You keep your domain and your addresses. A catch-all route means any address works without being created first.
Signed webhooks, retries with backoff, and a log of every delivery attempt in the console.
How an integration fits together#
Most Inboundr projects follow the same loop, which these docs call the agent inbox loop:
Mail arrives
Someone emails an address on your verified domain. Inboundr parses the message and adds it to a thread.
Your code reads it
A webhook fires, or your agent calls
list_emailsorget_thread.Your code acts on it
Route it, file it or raise an alert. To stop some mail before it arrives at all, add a Shield rule.
The rest of these docs cover each step of that loop in detail.