# Email API for conversations.

For agents and anything else that holds a conversation. Replies arrive threaded, cleaned and tagged. You build the agent.

[Start sending](/signup)
[Read the docs](https://docs.aiinbx.com)

From $5 a month with 5,000 emails. Every feature on every plan.

Receiving

## Every reply arrives ready for your code

Mail to your domains and connected inboxes reaches your webhook matched to its thread, cut to what the person wrote and labelled with what it is.

### [Addresses](https://docs.aiinbx.com/guides/receiving#receiving-on-a-domain)

Publish one MX record and every address on the domain receives mail. Give each customer or conversation an address of its own and read it back when the answer comes.

### [Threading](/features/threading)

A colleague answering from another address or under a new subject stays on the thread.

### [Reply text](/solutions/email-reply-parser)

stripped\_text holds what the person typed, including answers written between the quoted lines.

### [Categories](/solutions/auto-reply-detection)

Out-of-office replies, bounces and newsletters are labelled, so your code only runs for people.

Example: an email arrives with Quote-4471.pdf, Prices-2026.xlsx and Agreement-scan.pdf, a six-page scan read by OCR. All three are LLM-ready: the quote reads as Markdown with its line items as a table.

### [Attachments](/features/attachments)

PDFs, spreadsheets and scans arrive with their content already extracted as Markdown.

Sending

## Sending that keeps your domains trusted

Set the hours mail may leave, how fast it goes out and who never hears from you again. The rules then hold for every send your product makes.

### [Sending hours](/features/sending-hours)

Mail sent outside the hours you set is held and goes out when the next window opens.

Example: a limit of 30 a day per sending address on \*@yourapp.com. A list of 150 leads queued on Monday goes out 30 a day, Monday to Friday, while the rest wait their turn.

### [Pacing](/features/pacing)

Limits per sender, per recipient or across the account. Mail over a limit waits its turn in a queue.

Example: Iris Kaplan replies “Not for us, please take me off your list.” She is added to your suppressions, and the next campaign, on the new 4mm range, is blocked for her.

### [Suppressions](/features/suppressions)

Unsubscribe links, one-click headers and replies asking to stop all end on your suppression list.

Example: the intro, “Brushed 3mm sheet for Lind Metall”, is sent Tue 09:14, and its follow-up, “Just bumping this”, is already scheduled for Fri 09:00.

### [Scheduling](/solutions/scheduled-email-api)

Pass a timestamp and the email goes out then. Move it or cancel it while it is scheduled.

A list's complaint rate over the last 30 days, here 0.34%. Gmail asks bulk senders for under 0.1%, and past 0.3% providers filter the whole domain.

### [Complaint rate](/features/suppressions)

Each list shows its complaint rate against the thresholds mail providers filter a domain at.

Connect

## Your domains and your mailboxes, through one API

Mail goes out and comes in on domains you verify and in Gmail or Outlook mailboxes you connect. Both use the same send call, the same threads and the same webhooks.

Example: mail.yourapp.com is verified. Its DNS records (DKIM as TXT, SPF as TXT, DMARC as TXT, Return path as MX, Inbound as MX) are all found; the inbound MX record is only needed for receiving.

### [Domains](https://docs.aiinbx.com/guides/domains)

Publish the DNS records once and every address on the domain sends and receives. A live check names the record that is wrong.

### [Mailboxes](/features/mailboxes)

Connect a Gmail or Outlook mailbox over OAuth, and mail goes out and comes in as that account.

Platforms

## Built for products with customers of their own

Each of your customers gets a space holding their domains, addresses, mailboxes, rules and sending reputation. You keep one API key and one webhook endpoint for all of them.

### [Spaces](/features/spaces)

A customer's mail, threads, hours and limits stay in their space, and every webhook event carries its space\_id.

Example: \*.yourapp.com is connected once, and every customer gets a subdomain under it (harbourly.yourapp.com, rheinbau.yourapp.com, lindmetall.yourapp.com, werkhaus.yourapp.com) that sends and receives from the moment it exists, with 1,248 more, each created by one API call at signup.

### [Wildcard domains](/features/wildcard-domains)

Connect \*.yourapp.com once and every customer gets a subdomain that sends and receives without a new DNS record.

Example: agents.yourapp.com is your domain, verified once. harbourly@agents.yourapp.com is assigned to Harbourly’s space, rheinbau@agents.yourapp.com is assigned to Rheinbau’s space, lindmetall@agents.yourapp.com is assigned to Lindmetall’s space, each by one API call and without a DNS change.

### [Assigned addresses](https://docs.aiinbx.com/guides/spaces#single-addresses-of-one-domain)

A customer who needs one or a few addresses gets them on a domain you already have, like harbourly@agents.yourapp.com, each assigned to their space by one API call.

Example: tom@harbourly.com at Harbourly and jana@rheinbau.de at Rheinbau are connected through Yourapp, your own OAuth app, each in its customer’s space.

### [Mailboxes](/features/mailboxes)

Your customers connect Gmail or Outlook through your OAuth app, and their mail arrives as the same events and threads.

Developers

## Two calls and you’re live

One to send. One webhook to hear back.

[Follow the quickstart](https://docs.aiinbx.com/quickstart)
[API reference](https://docs.aiinbx.com/api)

TypeScript

```
const email = await aiinbx.emails.send({
  from: "nora@yourapp.com",
  to: "dana@lindmetall.de",
  subject: "RFQ 4471: 3mm brushed sheets",
  text: draft,
  suppression_key: "q4-outbound",
})

// Sunday, 02:47. A pacing rule holds it until Monday morning.
email.status                    // "queued"
email.pacing.estimated_send_at  // "2026-08-31T07:00:00Z"
email.pacing.held_by            // { kind: "hours", rule_id: "pace_…" }
```

Sent on a Sunday night. The response says which rule held it, and until when.

-   [SDKsTyped clients for TypeScript and Python, with webhook verification built in.`npm install aiinbx`](https://docs.aiinbx.com/sdks)
-   [CLIEvery API call from a terminal or a script, as one binary.`npm install -g @aiinbx/cli`](/features/cli)
-   [MCP serverClaude, ChatGPT and Cursor set up and run your workspace through the same API.`https://mcp.aiinbx.com/mcp`](/features/mcp)
-   [Agent skillsYour coding agent wires sending and receiving into your app and tests it.`npx skills add aiinbx/skills`](https://docs.aiinbx.com/skills)

Console

## See what your product sent and what came back

Threads, the pacing queue, your customers' spaces and your suppression lists each have a page in the console. Everything you do there, you can also do through the API, the CLI and the MCP server.

The console's thread page shows all four messages of the thread in order, each labelled with its category (out of office, human). Under each smart-matched message it says why it belongs to this thread, such as Marco covering for Dana and Dana confirming the price.

Also included

## Everything else, handled

The parts every email API needs, done properly so you never think about them.

-   Domains: Add a domain and we tell you exactly which DNS record is wrong.
-   Regions: EU or US, chosen per domain and per mailbox. Mail is sent, received and processed in that region.
-   Webhooks: Signed, retried for 24 hours, and replayable for when your server was down.
-   Sending: Attachments, cc, bcc, and retries that never double-send.
-   Scheduled send: Pass a timestamp and it sends then, unless a pacing rule holds it. Move or cancel it until it goes.
-   Drafts: Your code writes the email and a person reads it, edits it and sends it, in the console or in your own UI.
-   Sender checks: Mail to your domains carries its SPF, DKIM, DMARC and spam verdicts.
-   Metrics: Spot bounces and complaints before a provider throttles you.
-   Tracking: Opens and link clicks, in the metrics and on your webhook.

Use cases

## Built for software that runs the conversation

The same API sits under agents that answer mail, outreach tools that send it and platforms that give every customer an address.

-   [AI email agentSoftware that holds the conversation end to end.](/use-cases/ai-email-agent)
-   [Cold outreachSequences at a pace a domain survives.](/use-cases/cold-outreach)
-   [Multi-tenant SaaSAn inbox and a domain for every customer.](/use-cases/multi-tenant-saas)

Pricing

## Every feature on every plan

From $5 a month with 5,000 emails. Plans differ in how many emails you send and receive a month, and in how many domains, mailboxes and pacing rules you can add.

[See pricing](/pricing)

-   Developer$5a month, 5,000 emails
-   Growth$29a month, 30,000 emails
-   Scale$99a month, 100,000 emails

## Give your product an inbox. The hard parts are already handled.

[Get started](/signup)
