# AI Inbx vs Nylas for email in your product (2026)

AI Inbx vs Nylas for Gmail and Outlook products: threads without reply headers, inline answers, out-of-office return dates, opt-outs, pacing and pricing.

[Pau Kraft](https://paukraft.com)

Founder, AI Inbx · [@paukraft on X](https://x.com/paukraft)

5 November 2026 · 15 min read Updated 6 November 2026

TL;DR

I think AI Inbx is the better email API for a product that reads and answers its users' Gmail and Outlook mail, or sends from its own and its customers' domains. Here is what AI Inbx does that Nylas's docs leave to your code or don't describe:

-   **Threads that hold.** On AI Inbx a reply without reply headers, or from a colleague's address, still joins its conversation, with one thread model across Gmail, Outlook and your domains. Nylas returns each provider's own threads and links Agent Account replies by reply headers. More
-   **Reply text with inline answers.** AI Inbx's `stripped_text` keeps an answer typed inside the quote under the line it answers. More
-   **Automated mail read for you.** AI Inbx gives out-of-office return dates, verification codes and opt-out replies as fields and events. More
-   **Sending rules.** On AI Inbx you set sending hours and send limits that hold mail instead of rejecting it. More
-   **Billed by email.** AI Inbx accepts mail for any address on a verified domain with nothing created first, and bills by email volume. Nylas charges for each connected account and each Agent Account. More
-   **Built for volume.** Fewer tokens per reply, no search to find a conversation, no model call on automated mail, and pacing rules that hold at platform size. More

Nylas is the better pick when you need providers beyond Gmail and Outlook, IMAP or SMTP, tracking on mail from your users' own mailboxes, a shared Google app, a SOC 2 report or a free plan. On price, AI Inbx costs less in three of the four bills below. Nylas costs less on its free plan and when each mailbox moves more than about 2,000 emails a month.

*I'm Pau, and I founded AI Inbx, so I'm not neutral, but I believe I've portrayed Nylas fairly, including where it's the better pick. Everything said here about Nylas is from its public docs and pricing as of November 2026, linked where it's used.*

I built AI agent systems on top of email for enterprise customers in the sourcing industry, thousands of emails a month, before I built AI Inbx. Connecting the mailboxes was the easy part. The months went into what came after: replies landing on the wrong conversation in edge cases nobody plans for, quotes cut in the wrong place, automatic replies read as answers. That is the part this comparison is about.

## Connected accounts, Agent Accounts or every address?

**On Nylas**, each user's mailbox is a connected account (a grant), and each address Nylas hosts for you is an [Agent Account](https://developer.nylas.com/docs/v3/agent-accounts/), [created per address](https://developer.nylas.com/docs/v3/agent-accounts/provisioning/) and counted against the plan, cumulatively per month, so one deleted mid-month still counts ([usage limits](https://developer.nylas.com/docs/v3/agent-accounts/send-limits/)). Nylas's docs don't say what happens to mail for an address that has none. A customer subdomain is registered as its own domain with MX and TXT records, and plans include 1 (Essentials), 10 (Pro) or 20 (Pro Annual) custom sending domains ([pricing](https://www.nylas.com/pricing/)).

**On AI Inbx**, your users connect Gmail or Google Workspace and Outlook or Microsoft 365 over OAuth, through your own Google or Microsoft app ([mailboxes guide](https://docs.aiinbx.com/guides/mailboxes)). Their mail arrives as the same `email.received` events and threads as mail on your domains, and replies go out from their own account.

On your domains, [every address receives](https://docs.aiinbx.com/guides/receiving) once the MX record resolves, so `reply+ord_8812@mail.yourapp.com` works the first time you use it. Verify `*.yourapp.com` once, and each [customer subdomain](/features/wildcard-domains) is created through the API with no DNS of its own and doesn't count against the domain limit. Domains and mailboxes are unlimited from $29 a month (Growth).

For a platform, I think the connected account is the wrong thing to bill. A per-account price grows with how many users sign up, not with how much mail they move, and most users of a self-serve product move modest mail. The full argument is in [why inboxes are the wrong primitive](/blog/why-inboxes-are-the-wrong-primitive).

## What happens to the mail you receive

Most of the work in an email product starts after the send: replies that lose their thread, half-read replies, autoresponders and opt-outs. AI Inbx turns each of these into a field, an event or a rule.

### Threads without reply headers

**Nylas** [returns the provider's own threads](https://developer.nylas.com/docs/v3/email/threads/) for Google and Microsoft accounts: Gmail threads for Gmail users, Outlook conversations for Outlook users, and its own grouping for IMAP mail. A product serving Gmail and Outlook users gets threads grouped by two different provider rules, and Agent Account replies grouped by reply headers. Agent Account replies are [linked through](https://developer.nylas.com/docs/v3/agent-accounts/email-threading/) the `In-Reply-To` and `References` headers, and Nylas's docs don't describe what happens to a reply that arrives without them. Real mail often arrives that way: a colleague answers from their own address, a client drops the headers, the subject changes. Threading on headers alone splits those replies off.

**On AI Inbx** those replies still land on [their conversation](https://docs.aiinbx.com/guides/receiving#threading), whether the mail came through a connected Gmail or Outlook mailbox or a domain of yours. A shared subject alone never merges two conversations, so two unrelated "Re: Invoice" emails stay apart, and a reply that could belong to either starts a thread of its own.

Think of how a person files mail. Shown a reply with no reply headers, they read it, recognise the conversation it continues and put it there. AI Inbx does that for every inbound email, before your code sees it. With threading on reply headers alone, that work moves to your agent: for each reply that arrives without them, it has to search earlier mail to find out whether a conversation already exists, and that costs tokens and time on every message.

To answer, AI Inbx's [`threads.reply`](https://docs.aiinbx.com/guides/threads#replying) takes the thread ID and the text and fills in sender, recipients, subject and reply headers. It follows Reply-To, keeps colleagues on a reply-all, and `email_id` pins the message being answered. When a Reply-To names only your own addresses, it fails with `no_recipients` instead of mailing yourself. **On Nylas** a send with `reply_to_message_id` gets the reply headers added, and [the caller sets the recipients and subject](https://developer.nylas.com/docs/cookbook/email/threads/reply-to-a-thread/).

### Answers typed inside the quote

**On AI Inbx**, `stripped_text` keeps each answer typed between the quoted lines under the line it answers, and drops the rest of the quote and repeated signatures. `segments` lists the written, quoted and signature parts in order, and `stripped_html` is there for rendering ([what was written](https://docs.aiinbx.com/guides/receiving#what-was-written)).

**Nylas** [Clean Conversations](https://developer.nylas.com/docs/v3/email/parse-messages/) "removes any reply and forward content from the message, and returns only the latest message in the thread". Nylas's docs don't say whether answers typed inside the quote are kept, and its [cookbook](https://developer.nylas.com/docs/cookbook/email/clean-messages/) says "Cleaning is heuristic". Nylas "currently detects English-language conclusion phrases only", so sign-offs in other languages may stay in the cleaned text.

### Out-of-office replies and verification codes

**On AI Inbx** every inbound email has a [`category`](/solutions/auto-reply-detection), such as `human`, `out_of_office` or `auto_reply`, so an autoresponder never counts as a person's answer. An away reply also carries `unavailable`, so a sequence can pause until `back_on` or turn to the colleague the reply names ([what automated mail asks for](https://docs.aiinbx.com/guides/receiving#what-automated-mail-asks-for)):

```
{
  "category": "out_of_office",
  "unavailable": {
    "reason": "absent",
    "back_on": "2026-11-13",
    "contacts": ["anna.wright@hartley-steel.co.uk"]
  }
}
```

None of the other 14 email APIs we compared documents a return date or named contact on out-of-office replies.

A sign-up confirmation carries `verification.code` and `verification.link`, so an agent finishes a sign-up without parsing the email.

**Nylas** [automated reply detection](https://developer.nylas.com/docs/v3/email/send-email/) works on Google and Microsoft grants, for replies to mail sent through Nylas, and reports them as a `message.bounce_detected` event with type `automated_reply`. It reads automated-reply headers, and Nylas's docs warn: "Not receiving a notification doesn't mean a person wrote the reply." Autoresponders without those headers, and replies Nylas can't match to one sent message, arrive as ordinary `message.created` messages. The docs also say "Detection doesn't extract return dates from out-of-office messages." For codes, the Nylas CLI has [`nylas otp get`](https://developer.nylas.com/docs/cookbook/cli/extract-otp-codes/) for 6-digit codes; API messages carry no code field.

### Opt-out replies

**On AI Inbx**, a recipient who writes back asking you to stop is suppressed for you and reported as [`email.unsubscribed` with `source: "reply"`](https://docs.aiinbx.com/guides/suppressions#reacting-to-the-events), next to link and one-click unsubscribes, complaints and bounces that show an address is dead. Lists are per space and manageable through the API.

**Nylas** [says it doesn't ship](https://developer.nylas.com/docs/cookbook/email/sendgrid-alternative/) "unsubscribe handling, segmentation, suppression lists"; Agent Accounts can block sends to addresses you add to a List. An opt-out nobody reads means you keep mailing someone who asked you to stop. None of the other 14 APIs we compared documents opt-out replies being suppressed for you.

### Attachments as text, scans included

**On AI Inbx**, PDFs, documents and spreadsheets [arrive as Markdown or text](/features/attachments), prepared as the email is received, so the text is normally ready when `email.received` reaches you ([timing](https://docs.aiinbx.com/guides/attachments#timing)). Scanned PDF pages are read too, counted per page with an allowance on every plan ([billing](https://docs.aiinbx.com/guides/billing)). Your code reads a quote or invoice without running a parser or OCR. **Nylas** [returns raw bytes](https://developer.nylas.com/docs/cookbook/email/parse-email-attachments/), and its own recipe passes PDFs and images to your model.

## Sending hours and send limits

**On AI Inbx**, pacing rules keep a connected Gmail or Outlook mailbox under its provider's sending ceiling. [Limit rules](https://docs.aiinbx.com/guides/pacing#rate-limits) cap sends per rolling window for each sending address, sending domain, recipient or recipient domain, and [hours rules](https://docs.aiinbx.com/guides/pacing#sending-hours) set weekly windows in an IANA timezone, for example recipients matching `*@*.co.uk` Monday to Friday, 9 to 17 Europe/London; none of the other 14 APIs we compared documents a sending-hours setting. Mail outside a rule waits in a queue you can read and release instead of being rejected. Without limits like these, one customer's burst can get a mailbox throttled or flagged.

**On Nylas**, a send the provider throttles returns `429` right away, without a retry, for every provider, and your code decides when to try again ([sending](https://developer.nylas.com/docs/v3/email/send-email/)). Agent Accounts are the exception: a send over the per-second rate limit can be queued and return `202 Accepted`. A [policy](https://developer.nylas.com/docs/v3/agent-accounts/policies-rules-lists/) sets a daily quota per account, and sends over it also return `429`. Scheduling is per message with `send_at`, and a new send time means [cancelling and rescheduling](https://developer.nylas.com/docs/v3/email/scheduled-send/); on AI Inbx a [scheduled email](https://docs.aiinbx.com/guides/scheduling) can be moved or edited until it goes.

## A reputation for each customer

**On Nylas**, [Workspaces](https://developer.nylas.com/docs/dev-guide/platform/workspaces/) group grants and Agent Account policies per customer, and bounce and complaint rates are [tracked and sending paused per sending domain](https://developer.nylas.com/docs/v3/agent-accounts/send-limits/), so keeping customers apart takes a domain each: 10 on Pro, 20 on Pro annual.

**On AI Inbx**, a [space](/features/spaces) holds one customer's domains, mailboxes, pacing rules, suppression lists and sending reputation. Domains are unlimited from Growth, and one customer's bounces don't pause another's mail.

## Tracking and bot opens

**On AI Inbx**, mail sent from your domains can be tracked, and every [open and click event](https://docs.aiinbx.com/webhooks/events/email-opened#bot-detection) carries `bot` and `bot_reason` (`privacy_proxy` for Apple Mail Privacy Protection), so a machine's open or a scanner's click doesn't trigger a follow-up. Mail sent through a connected mailbox goes out as written, and asking to track it fails with [`tracking_unavailable`](https://docs.aiinbx.com/guides/sending#tracking).

**Nylas** [tracks opens, link clicks and thread replies](https://developer.nylas.com/docs/v3/email/message-tracking/), also on mail sent from a connected account. Its docs [say](https://developer.nylas.com/docs/cookbook/use-cases/build/track-email-opens/) Apple Mail Privacy Protection may report an open the recipient never made, and advise treating opens as a soft signal.

## Built for agents at volume

I built AI Inbx for email agents at scale. The same API serves an agent that sends a few emails a day and a platform whose agents send thousands, and every part is meant to keep the work per email small as the volume grows:

-   **Fewer tokens per reply.** `stripped_text` drops the quoted history and repeated signatures and keeps answers typed inside the quote. On a long thread the agent reads what is new, not the whole conversation again with every reply. I think it is the best reply stripping you can get from an email API.
-   **No search for the conversation.** Every email arrives with its `thread_id`, matched the way a person would match it, so the agent spends no calls going through earlier mail.
-   **No model call on mail that needs none.** `category` marks out-of-office replies, auto-replies, bounces and verification mail, so your code hands only mail from people to the agent.
-   **Attachments read once.** Their text arrives with the email, so no agent parses the same PDF again.
-   **Rules at platform size.** Pacing rules are checked on every send, up to 100 on Developer, 1,000 on Growth and no limit on Scale. [Spaces](https://docs.aiinbx.com/guides/spaces) keep each customer's rules, suppression lists and reputation apart under your workspace-wide limits.

## Feature by feature

Each cell links its source.

### Where they differ

| Feature | AI Inbx | Nylas |
| --- | --- | --- |
| Receiving |
| **Threads that hold without reply headers** Replies join their conversation even when they arrive without reply headers: a colleague answering from another address, a client that drops them, a changed subject. Partial: threads are grouped by reply headers, or by the mailbox provider's own threading, and nothing more is documented. | **Yes** Every email belongs to a thread, including replies that arrive without reply headers, from a colleague's address or under a changed subject; threads are listed, read and replied to through the API. Replies join their conversation even when a client mangles or drops the reply headers, a colleague answers from another address or the subject changes; a shared subject alone never merges two conversations. [1](https://docs.aiinbx.com/guides/threads) [2](https://docs.aiinbx.com/guides/receiving#threading) [3](https://aiinbx.com/features/threading) | **Partial** For Google and Microsoft accounts the Threads API returns the provider's own Gmail threads and Outlook conversations; Nylas groups IMAP mail itself, and Agent Account replies are linked by In-Reply-To and References, with replies without those headers not described. [1](https://developer.nylas.com/docs/v3/email/threads/) [2](https://developer.nylas.com/docs/v3/agent-accounts/email-threading/) |
| **Reply text, inline answers kept** Each inbound message comes with the newly written text separated from quoted history and signatures, and answers typed inside the quote are kept. Partial: the quote is removed or marked, but answers inside it are not kept or not documented as kept. | **Yes** Each email carries stripped\_text and stripped\_html without the quoted conversation, keeping answers typed inline into the quote, and segments marking written, quoted and signature parts; a sender's signature is kept the first time they use it in a thread. stripped\_text keeps answers typed into the quote next to the lines they answer, also when the mail client leaves the quote unmarked, as long as the answered message is on the thread. [1](https://docs.aiinbx.com/guides/receiving#what-was-written) [2](https://aiinbx.com/solutions/email-reply-parser) | **Partial** Clean Conversations (PUT /messages/clean or the message.created.cleaned webhook) removes reply and forward content and signatures and returns the latest message; Nylas calls the cleaning heuristic, and whether answers typed inside the quote are kept is not described. [1](https://developer.nylas.com/docs/v3/email/parse-messages/) [2](https://developer.nylas.com/docs/cookbook/email/clean-messages/) [3](https://developer.nylas.com/docs/reference/notifications/messages/message-created-cleaned/) |
| **Out-of-office with return date** Out-of-office and other automatic replies are flagged on the message, with the day the sender is back and the colleague they name as fields. Partial: automatic replies are flagged, without those details. | **Yes** Every inbound email has a category such as human, out\_of\_office or auto\_reply, and an away reply carries the reason, return day and named contacts when it states them. An out\_of\_office or auto\_reply email carries unavailable with the reason (absent, left or unmonitored), back\_on for the first day back and the contacts the reply names, each when the reply states it. [1](https://docs.aiinbx.com/guides/receiving#categories) [2](https://aiinbx.com/solutions/auto-reply-detection) [3](https://docs.aiinbx.com/guides/receiving#what-automated-mail-asks-for) | **Partial** Automated replies to mail sent through Nylas are reported on Google and Microsoft grants as a message.bounce\_detected event with type automated\_reply, not a flag on the message, and Nylas states that detection doesn't extract return dates. [1](https://developer.nylas.com/docs/v3/email/send-email/) |
| **Verification codes as fields** A verification email comes with its one-time code or confirmation link as fields on the message. | **Yes** A verification email carries verification.code and verification.link, both written in the email, on the email and its email.received event. [1](https://docs.aiinbx.com/guides/receiving#what-automated-mail-asks-for) | **Partial** The Nylas CLI's otp get and otp watch commands return a 6-digit code found in recent mail; API messages carry no code field, and Nylas's Agent Account recipe extracts codes in your own code with regex and an LLM fallback. [1](https://developer.nylas.com/docs/cookbook/cli/extract-otp-codes/) [2](https://developer.nylas.com/docs/cookbook/agent-accounts/extract-otp-code/) |
| **Attachments as text, scans included** PDFs, documents and spreadsheets arrive with their content as text or Markdown, ready for an LLM, and scanned or image-only PDF pages are read too. Partial: text is extracted only from a PDF's text layer, only for some file types, or only on a separate request. | **Yes** PDFs, documents and spreadsheets come with prepared Markdown or text; scanned pages are read too and count against a monthly page allowance. [1](https://docs.aiinbx.com/guides/attachments) [2](https://docs.aiinbx.com/guides/billing#advanced-attachment-processing) | **No** Attachments download as raw bytes; Nylas's own recipe passes PDFs and images to your model to extract their content. [1](https://developer.nylas.com/docs/cookbook/email/parse-email-attachments/) |
| Mailboxes |
| **Any address on a domain** Mail to any address on a receiving domain is accepted without creating each address first. | **Yes** Once the inbound MX record resolves, mail to any address on the domain is accepted, plus addresses such as reply+ord\_8812@ included, with nothing registered per address. [1](https://docs.aiinbx.com/guides/receiving#receiving-on-a-domain) | **Not documented** Agent Accounts are created per address; the docs don't say what happens to mail for an address on the domain with no Agent Account. [1](https://developer.nylas.com/docs/v3/agent-accounts/provisioning/) |
| **Subdomains for each customer** Each of your customers can get their own subdomain to send and receive on, without them editing DNS. | **Yes** After one wildcard domain such as \*.saas.com is verified, each customer's subdomain is created through the API with no DNS of its own, and can be placed in that customer's space. [1](https://docs.aiinbx.com/guides/domains#wildcards-and-subdomains) [2](https://aiinbx.com/features/wildcard-domains) | **Partial** Each customer subdomain is registered as its own domain with MX and TXT records that you publish, and plans include 1 (Essentials), 10 (Pro) or 20 (Pro annual) custom sending domains; nylas.email trial subdomains need no DNS and are documented for prototyping and demos. [1](https://developer.nylas.com/docs/v3/agent-accounts/dns-provider-setup/) [2](https://developer.nylas.com/docs/v3/agent-accounts/provisioning/) [3](https://www.nylas.com/pricing/) |
| **IMAP and SMTP** Connect mailboxes over IMAP, or send and read through SMTP/IMAP credentials. | **No** AI Inbx is an HTTP API with no SMTP relay, and mailboxes connect over Google and Microsoft OAuth, not IMAP. [1](https://aiinbx.com/solutions/send-email-api) [2](https://docs.aiinbx.com/guides/mailboxes) | **Yes** Connected IMAP accounts are read over IMAP and sent through SMTP, and Agent Accounts can be opened in mail clients over IMAP and SMTP submission on paid plans. [1](https://developer.nylas.com/docs/provider-guides/imap/) [2](https://developer.nylas.com/docs/v3/agent-accounts/mail-clients/) |
| Sending |
| **Reply by thread** Reply to a conversation by its ID; recipients, subject and reply headers are filled in for you. | **Yes** threads.reply takes a thread ID and the text; sender, recipients (following Reply-To), subject and In-Reply-To/References are filled in from the thread, and email\_id pins the reply to one message. [1](https://docs.aiinbx.com/guides/threads#replying) | **Partial** A send with reply\_to\_message\_id gets In-Reply-To and References added by Nylas; per Nylas's reply guide, the caller sets the to recipients and the subject. [1](https://developer.nylas.com/docs/v3/email/send-email/) [2](https://developer.nylas.com/docs/v3/agent-accounts/email-threading/) [3](https://developer.nylas.com/docs/cookbook/email/threads/reply-to-a-thread/) |
| **Configurable send limits** You set limits such as N per hour per sending address or per recipient domain, and the provider holds mail back to keep to them. | **Yes** Limit rules cap sends per rolling window for the rule, each sending address, sending domain, recipient or recipient domain, and hold the rest until there is room; plans set how many active rules a workspace holds. [1](https://docs.aiinbx.com/guides/pacing#rate-limits) [2](https://aiinbx.com/features/pacing) | **Partial** For Agent Accounts a policy sets a daily send quota per account, and sends over it return HTTP 429 rather than being held; connected mailboxes follow their provider's limits. [1](https://developer.nylas.com/docs/v3/agent-accounts/policies-rules-lists/) [2](https://developer.nylas.com/docs/v3/agent-accounts/send-limits/) |
| **Sending hours** You set the hours mail may go out, for example weekdays 9–17 in a timezone, and mail outside them waits. | **Yes** Hours rules set weekly sending windows in an IANA timezone, optionally opening and closing at a varying minute each day; mail outside them waits. [1](https://docs.aiinbx.com/guides/pacing#sending-hours) [2](https://aiinbx.com/features/sending-hours) | **Not documented** The docs describe per-message send\_at scheduling; no setting for allowed sending hours was found. [1](https://developer.nylas.com/docs/v3/email/scheduled-send/) |
| **Suppression lists** Addresses that bounced, complained or unsubscribed are blocked from later sends, manageable through the API. | **Yes** Bounces that show an address is dead, complaints and unsubscribes (link, one-click or a reply asking to stop) are suppressed automatically, on named lists per campaign and per space, managed through the API. [1](https://docs.aiinbx.com/guides/suppressions) [2](https://aiinbx.com/features/suppressions) | **No** Nylas states it doesn't ship suppression lists and its bounce guide says to add permanently failed addresses to your own; Agent Account outbound block rules with address Lists can stop sends to addresses you add. [1](https://developer.nylas.com/docs/cookbook/email/sendgrid-alternative/) [2](https://developer.nylas.com/docs/v3/agent-accounts/policies-rules-lists/) [3](https://developer.nylas.com/docs/cookbook/use-cases/build/handle-bounced-email/) |
| **Opt-out replies suppressed** A reply asking not to be emailed again is recognised and the address is suppressed without your code reading it. | **Yes** A reply asking to stop is recognised as an opt-out and suppressed automatically, reported as email.unsubscribed with source reply. [1](https://docs.aiinbx.com/guides/suppressions#reacting-to-the-events) [2](https://docs.aiinbx.com/webhooks/events/email-unsubscribed) | **No** Nylas states it doesn't ship unsubscribe handling or suppression lists. [1](https://developer.nylas.com/docs/cookbook/email/sendgrid-alternative/) |
| **Open and click tracking** Opens and clicks are reported per message. | **Yes** Open and click tracking is set per domain and can be overridden per send; it is not available on mail sent through a connected mailbox. [1](https://docs.aiinbx.com/guides/sending#tracking) [2](https://docs.aiinbx.com/webhooks/events/email-opened) | **Yes** tracking\_options reports opens, link clicks and thread replies per message by webhook, and is not available to Sandbox applications. [1](https://developer.nylas.com/docs/v3/email/message-tracking/) |
| **Bot opens filtered** Opens from privacy proxies and security scanners (such as Apple Mail Privacy Protection) are marked or separated from human opens. | **Yes** Every open and click event carries bot and bot\_reason, marking Apple Mail Privacy Protection fetches, security scanners and other automated hits. [1](https://docs.aiinbx.com/webhooks/events/email-opened#bot-detection) [2](https://docs.aiinbx.com/webhooks/events/email-clicked) [3](https://aiinbx.com/solutions/email-open-tracking) | **No** Nylas's docs say Apple Mail Privacy Protection preloads the pixel, so Nylas may report an open the recipient never made, and advise treating opens as a soft signal. [1](https://developer.nylas.com/docs/cookbook/use-cases/automate/automate-customer-onboarding/) [2](https://developer.nylas.com/docs/cookbook/use-cases/build/track-email-opens/) |
| **Templates and email builder** Hosted templates or a visual editor for designing emails. | **No** There are no hosted templates or visual editor; the TypeScript SDK and CLI render React Email components from your own code. [1](https://docs.aiinbx.com/integrations/react-email) [2](https://aiinbx.com/terms#service) | **Yes** The Templates API stores Handlebars templates at application or grant level, used in sends and in Workflows. [1](https://developer.nylas.com/docs/v3/email/templates-workflows/) |
| Platform |
| **SOC 2 report** A SOC 2 Type II report is available to customers. | **No** No SOC 2 report is published; the DPA offers security documentation, questionnaire responses and one customer audit a year. [1](https://aiinbx.com/dpa#assistance) | **Yes** The SOC 2 Type II report is available under NDA to current and prospective customers through the Nylas Trust Center. [1](https://www.nylas.com/security/) |
| Policy |
| **No charge per address** The price doesn't depend on how many addresses, inboxes or mailboxes you use; it follows email volume or a flat fee. | **Yes** Price follows emails per month; addresses are never counted or charged. Developer ($5/month) caps custom domains at 50 and connected mailboxes at 100; both are unlimited from Growth ($29/month). [1](https://aiinbx.com/pricing) [2](https://docs.aiinbx.com/guides/billing#domains-mailboxes-and-pacing-rules) | **No** Plans include a set number of connected accounts and Agent Accounts, and each additional connected account is charged (+$2.25 per account on Essentials, +$2.00 on Pro monthly). [1](https://www.nylas.com/pricing/) |

Checked 5 November 2026 from each product's public docs and pricing. Spotted a mistake? Email [me@paukraft.com](mailto:me@paukraft.com).

### Where they match

| Feature | AI Inbx | Nylas |
| --- | --- | --- |
| Receiving |
| **Receive email over an API** Mail to an address on your domain (or one the provider gives you) reaches your app as a webhook or API event, parsed. | **Yes** Mail to any address on a domain with the inbound MX record, or to a connected Gmail or Outlook mailbox, arrives parsed as an email.received webhook and through the emails and threads endpoints. [1](https://docs.aiinbx.com/guides/receiving) [2](https://docs.aiinbx.com/webhooks/events/email-received) | **Yes** Mail to an Agent Account on your domain or a nylas.email trial domain, or to a connected mailbox, fires a message.created webhook with the parsed message. [1](https://developer.nylas.com/docs/v3/agent-accounts/) [2](https://developer.nylas.com/docs/v3/agent-accounts/supported-endpoints/) |
| Mailboxes |
| **Your own domains** Send and receive on domains you own, verified through DNS. | **Yes** Domains are added through the API and verified through SPF, DKIM, DMARC, return-path and inbound MX records, with a diagnostics call that reports what the live DNS zone is missing. [1](https://docs.aiinbx.com/guides/domains) | **Yes** Agent Accounts send and receive on a domain you verify with MX and TXT records; custom sending domains are included from the Essentials plan (1), with the Free plan on a nylas.email trial domain. [1](https://developer.nylas.com/docs/v3/agent-accounts/dns-provider-setup/) [2](https://www.nylas.com/pricing/) |
| **Connect users' Gmail** Read and send from a user's existing Gmail or Google Workspace mailbox after they grant access. | **Yes** Users connect Gmail or Google Workspace over OAuth through your own Google OAuth app, from a hosted page, a link or the API; mail syncs in and can be sent as the account and its Send-as aliases. [1](https://docs.aiinbx.com/guides/mailboxes) [2](https://aiinbx.com/features/mailboxes) | **Yes** A Google connector lets users grant OAuth access to Gmail. [1](https://developer.nylas.com/docs/provider-guides/google/) |
| **Connect users' Outlook** Read and send from a user's existing Outlook or Microsoft 365 mailbox after they grant access. | **Yes** Users connect Outlook or Microsoft 365 over OAuth through your own Microsoft Entra app, from a hosted page, a link or the API; mail syncs in and can be sent as the account. [1](https://docs.aiinbx.com/guides/mailboxes) [2](https://aiinbx.com/features/mailboxes) | **Yes** The Microsoft connector covers Microsoft 365, Exchange Online, Exchange Server 2003+ and personal Outlook.com accounts, and an EWS connector covers Exchange on-prem. [1](https://developer.nylas.com/docs/provider-guides/microsoft/) [2](https://developer.nylas.com/docs/provider-guides/exchange-on-prem/) |
| Sending |
| **Send over an API** Send email with an HTTP API call. | **Yes** POST /v2/emails sends a message and returns it with its thread, any suppressed recipients and whether pacing holds it. [1](https://docs.aiinbx.com/guides/sending) | **Yes** POST /v3/grants/{grant\_id}/messages/send sends from a connected mailbox or an Agent Account; Transactional Send from a verified domain is in beta. [1](https://developer.nylas.com/docs/v3/email/send-email/) [2](https://developer.nylas.com/docs/v3/getting-started/transactional-send/) |
| **Scheduled sends** Schedule an email for later, and change or cancel it before it goes. | **Yes** Sends, replies and forwards take scheduled\_at up to 30 days ahead; until it goes, a scheduled email can be moved, edited or cancelled. [1](https://docs.aiinbx.com/guides/scheduling) [2](https://aiinbx.com/solutions/scheduled-email-api) | **Yes** send\_at schedules a message 1 minute to 30 days ahead (no maximum when stored as a Google or Microsoft draft) and DELETE cancels it; scheduled drafts on Google and Microsoft can be edited, and a new send time means cancelling and rescheduling. [1](https://developer.nylas.com/docs/v3/email/scheduled-send/) |
| **Drafts for approval** Create a draft through the API that a person or process approves before it is sent. | **Yes** draft: true stores a send, reply or forward unsent with a review\_url; it can be edited and sent from the console or through the API. [1](https://docs.aiinbx.com/guides/drafts) | **Yes** The Drafts API creates, updates and sends drafts, and Nylas recommends the draft-first path when a person reviews before sending. [1](https://developer.nylas.com/docs/v3/email/send-email/) [2](https://developer.nylas.com/docs/v3/agent-accounts/supported-endpoints/) |
| Platform |
| **Separation per customer** Your customers' domains, mailboxes and settings are kept apart inside one account (sub-accounts, pods, spaces or similar). | **Yes** Spaces keep each customer's domains, mailboxes, mail, pacing rules, suppression lists and sending reputation apart inside one workspace; API keys and webhook endpoints are workspace-wide. [1](https://docs.aiinbx.com/guides/spaces) [2](https://aiinbx.com/features/spaces) | **Yes** Workspaces group an application's grants per customer organization, and for Agent Accounts carry the policy and rules (Agent Account workspace isolation is not on the Free plan). [1](https://developer.nylas.com/docs/dev-guide/platform/workspaces/) [2](https://developer.nylas.com/docs/v3/agent-accounts/workspaces/) [3](https://www.nylas.com/pricing/) |
| **Sending reputation per customer** Each of your customers' sending reputation is kept apart, so one customer's bounces or complaints don't pause another's mail. | **Yes** Each space sends on its own reputation: bounces and complaints count against the space the mail left from, and a space over the line is paused by itself; mailbox providers still judge every subdomain of one wildcard as that one domain. [1](https://docs.aiinbx.com/guides/spaces#one-reputation-per-space) [2](https://docs.aiinbx.com/concepts#space) | **Yes** Nylas tracks bounce and complaint rates and pauses sending per sending domain, and documents one Agent Account per customer on the customer's own domain with its own sender reputation; connected mailboxes send through each user's own provider. [1](https://developer.nylas.com/docs/v3/agent-accounts/send-limits/) [2](https://developer.nylas.com/docs/v3/agent-accounts/) [3](https://developer.nylas.com/docs/cookbook/email/choosing-an-email-api/) |
| **Webhooks** Events are pushed to your endpoint. | **Yes** Signed webhooks for received mail, delivery outcomes, opens, clicks, unsubscribes, threads, domains and mailboxes, with retries, replays and per-endpoint routing rules. [1](https://docs.aiinbx.com/webhooks) [2](https://docs.aiinbx.com/webhooks/events) | **Yes** Webhooks cover messages, threads, folders and grants, plus delivered, bounced and complaint events for Agent Accounts; Google Pub/Sub and Amazon SNS are also supported. [1](https://developer.nylas.com/docs/v3/notifications/) [2](https://developer.nylas.com/docs/v3/agent-accounts/supported-endpoints/) |
| **Official SDKs** Maintained SDKs in at least TypeScript/JavaScript and Python. | **Yes** Official TypeScript and Python SDKs cover the same API surface. [1](https://docs.aiinbx.com/sdks) | **Yes** Official SDKs for Node.js, Python, Ruby and Kotlin/Java. [1](https://developer.nylas.com/docs/v3/sdks/) |
| **MCP server** An official MCP server so AI assistants and agents can use the product directly. | **Yes** Two remote MCP servers: one runs the whole workspace, the other gives an agent one address to send from and read. [1](https://docs.aiinbx.com/mcp) [2](https://docs.aiinbx.com/guides/agent-inbox) | **Yes** A hosted Nylas MCP server (mcp.us.nylas.com and mcp.eu.nylas.com) gives agents email tools. [1](https://developer.nylas.com/docs/dev-guide/mcp/) |
| **CLI** An official command-line tool. | **Yes** The aiinbx CLI runs every API operation, forwards webhook events to localhost and waits for an email to arrive. [1](https://docs.aiinbx.com/cli) [2](https://aiinbx.com/features/cli) | **Yes** The open-source Nylas CLI handles setup, email, webhooks and Agent Account provisioning, and installs the MCP server. [1](https://developer.nylas.com/docs/v3/getting-started/cli/) [2](https://developer.nylas.com/docs/v3/agent-accounts/supported-endpoints/) [3](https://developer.nylas.com/docs/dev-guide/mcp/) |

Checked 5 November 2026 from each product's public docs and pricing. Spotted a mistake? Email [me@paukraft.com](mailto:me@paukraft.com).

## How much does each cost?

**AI Inbx** bills by email volume, sent and received, with no charge per address, mailbox or account. **Nylas** bills per connected account and per Agent Account.

I don't pitch AI Inbx as the cheap option. I think our pricing is fair: it follows what email costs to send, receive and store, and at these prices AI Inbx runs as a healthy business. Keeping a connected account in sync does cost something, but a flat fee per account charges a mailbox that moves 10 emails a month the same as one that moves 2,000; in my view the price should follow the mail.

As of November 2026, from each provider's pricing page:

|  | AI Inbx | Nylas |
| --- | --- | --- |
| Free plan | No | Free: 5 connected accounts, 3 Agent Accounts, 3,000 Agent Account emails a month |
| Entry plan | Developer, $5/month: 5,000 emails, 50 domains, 100 mailboxes | Essentials, $15/month: 10 connected accounts, 10 Agent Accounts, 10,000 Agent Account emails, 1 custom domain |
| Mid plan | Growth, $29/month: 30,000 emails, unlimited domains and mailboxes | Pro, $49/month ($43 annual): 25 connected accounts, 50 Agent Accounts, 50,000 Agent Account emails, 10 custom domains (20 annual) |
| Next plan | Scale, $99/month: 100,000 emails | Enterprise: custom pricing (contact sales) |
| What's metered | Every email, in or out; past the plan $0.001 each if you turn extra usage on | Connected accounts ($2.00 each past 25 on Pro, $1.75 annual); Agent Accounts ($0.40, $0.20 annual); emails sent from Agent Accounts (from $0.80 per 1,000, $0.70 annual); storage and bandwidth |
| Billing | Monthly only | Monthly or annual |

From [aiinbx.com/pricing](/pricing), [docs.aiinbx.com/guides/billing](https://docs.aiinbx.com/guides/billing), [nylas.com/pricing](https://www.nylas.com/pricing/) and [Nylas's usage limits](https://developer.nylas.com/docs/v3/agent-accounts/send-limits/), November 2026. USD, excluding tax.

On AI Inbx a received email counts the same as a sent one. For a connected mailbox that means everything it receives, newsletters and notifications included, mail sent from its own Gmail or Outlook client, and the history imported when it connects: 7 days by default, set per connection from 0 to 90 days, where 0 skips the import. On Nylas, connected accounts aren't metered on mail at all, and Agent Accounts are metered on emails sent, with received mail counting towards bandwidth only. The AI Inbx bills below assume extra usage is on; without it, sending stops at the plan's allowance and receiving continues.

### A CRM with 100 connected mailboxes

100 sales reps connect Gmail or Outlook, and each mailbox moves 600 emails a month in and out (about 30 a working day), everything it receives included: 60,000 emails.

```
AI Inbx, Growth                                  $29.00
Extra emails: 60,000 - 30,000 = 30,000 x $0.001  $30.00
Total                                            $59.00

Nylas, Pro monthly                               $49.00
Extra accounts: 100 - 25 = 75 x $2.00           $150.00
Total                                           $199.00

Nylas, Pro annual                                $43.00
Extra accounts: 75 x $1.75                      $131.25
Total                                   $174.25 a month
```

### A product with 2,000 lightly used mailboxes

A self-serve product where 2,000 users connect Gmail or Outlook, and each mailbox moves 200 emails a month on average, everything it receives included: 400,000 emails.

```
AI Inbx, Growth                                     $29.00
Extra emails: 400,000 - 30,000 = 370,000 x $0.001  $370.00
Total                                              $399.00

Nylas, Pro monthly                                  $49.00
Extra accounts: 2,000 - 25 = 1,975 x $2.00       $3,950.00
Total                                            $3,999.00

Nylas, Pro annual                                   $43.00
Extra accounts: 1,975 x $1.75                    $3,456.25
Total                                    $3,499.25 a month
```

These are Nylas's self-serve list prices; at this size its Enterprise plan, which lists volume band pricing, is worth a quote.

### An outreach tool sending from its customers' domains

10 customer domains, 200 sending addresses (Agent Accounts on Nylas), 60,000 emails sent and 15,000 replies received a month, storage and bandwidth inside Nylas Pro's 50 GB.

```
AI Inbx, Growth                                     $29.00
Extra emails: 75,000 - 30,000 = 45,000 x $0.001     $45.00
Total                                               $74.00

Nylas, Pro monthly                                  $49.00
Extra Agent Accounts: 200 - 50 = 150 x $0.40        $60.00
Extra sent: 60,000 - 50,000 = 10,000 x $0.80/1,000   $8.00
Total                                              $117.00

Nylas, Pro annual                                   $43.00
Extra Agent Accounts: 150 x $0.20                   $30.00
Extra sent: 10,000 x $0.70/1,000                     $7.00
Total                                        $80.00 a month
```

On annual billing the two are within $6.

### Where Nylas costs less

500 connected mailboxes at 3,000 emails a month each (about 136 a working day): 1,500,000 emails.

```
AI Inbx, Scale                                                $99.00
Extra emails: 1,500,000 - 100,000 = 1,400,000 x $0.001     $1,400.00
Total                                                      $1,499.00

Nylas, Pro monthly                                            $49.00
Extra accounts: 500 - 25 = 475 x $2.00                       $950.00
Total                                                        $999.00

Nylas, Pro annual                                             $43.00
Extra accounts: 475 x $1.75                                  $831.25
Total                                                $874.25 a month
```

Nylas is cheaper here, by $500 a month (about $625 on annual billing). An extra Nylas Pro account costs $2.00, the price of 2,000 AI Inbx emails ($1.75 and 1,750 emails on annual billing), so mailboxes that move more than about 2,000 emails a month each cost less on Nylas, and fewer cost less on AI Inbx.

## When is Nylas the better pick?

If one of these decides it, Nylas does it today and AI Inbx doesn't:

-   **Providers beyond Gmail and Outlook.** Nylas connects [Exchange Server 2003 and later](https://developer.nylas.com/docs/provider-guides/microsoft/), [Exchange on-premises over EWS](https://developer.nylas.com/docs/provider-guides/exchange-on-prem/), [iCloud](https://developer.nylas.com/docs/cookbook/email/messages/list-messages-icloud/), [Yahoo](https://developer.nylas.com/docs/cookbook/email/messages/list-messages-yahoo/) and [any IMAP account](https://developer.nylas.com/docs/provider-guides/imap/).
-   **IMAP and SMTP.** Agent Accounts can be [opened over IMAP and SMTP](https://developer.nylas.com/docs/v3/agent-accounts/mail-clients/) on paid plans.
-   **Tracking on your users' own mailboxes.** Nylas tracks mail sent from a connected account (tracking).
-   **A shared Google app.** Nylas's $2,400-a-year [Accelerator Package](https://www.nylas.com/pricing/), an add-on for Pro Annual and included in Enterprise, comes with a shared, CASA-verified Google OAuth app, so your product can connect Gmail without registering and verifying its own.
-   **Compliance paperwork.** A [SOC 2 Type II report](https://www.nylas.com/security/) under NDA, ISO 27001 and ISO 27701 certificates, and a pre-signed HIPAA BAA on request on every paid plan ([pricing FAQ](https://www.nylas.com/pricing/)).
-   **A free plan.** Nylas Free is $0 with 5 connected accounts and 3 Agent Accounts, and annual billing lowers Pro from $49 to $43 a month. AI Inbx starts at $5, billed monthly.

AI Inbx also has no hosted templates (Nylas has a [Templates API](https://developer.nylas.com/docs/v3/email/templates-workflows/); on AI Inbx you render React Email components in your code). Connected mailboxes are Gmail and Outlook, through your own OAuth app, and SDKs are TypeScript and Python (Nylas adds [Ruby and Kotlin/Java](https://developer.nylas.com/docs/v3/sdks/)).

## Moving from Nylas to AI Inbx

The email side maps one to one:

| Nylas | AI Inbx |
| --- | --- |
| Grant for a Google or Microsoft account | Mailbox (`mbx_…`), connected through your OAuth app |
| Agent Account on your domain | Any address on a verified domain, nothing to create |
| Workspace | Space (`spc_…`) |
| `message.created` webhook | `email.received` webhook |
| Clean Conversations | `stripped_text` on every email |
| Send with `reply_to_message_id` | `threads.reply` with the thread ID |
| `message.bounce_detected` with `automated_reply` | `category` of `out_of_office` or `auto_reply`, with `unavailable` |
| Daily send quota policy | Pacing limit and hours rules |

Every mailbox reconnects through [your own OAuth app](https://docs.aiinbx.com/guides/mailboxes#connecting-a-mailbox), so each user approves access once more. [`backfill_days`](https://docs.aiinbx.com/guides/mailboxes#api) imports 0 to 90 days of history, so open conversations are on their threads from the start. Imported mail counts as received: 90 days of a mailbox moving 600 emails a month is about 1,800 emails, so 100 such mailboxes add about 180,000, a one-off $180 at the extra-usage rate. Import what open conversations need. To answer mail older than that, [send with `in_reply_to` and `references`](https://docs.aiinbx.com/guides/sending#replying-to-mail-ai-inbx-hasnt-seen).

This webhook handler pauses a sequence until an away sender is back, and answers people on their thread:

```
import AIInbx from "aiinbx"
import { verifyWebhookRequest } from "aiinbx/webhooks"

const aiinbx = new AIInbx()

export async function POST(request: Request) {
  const event = await verifyWebhookRequest(
    request,
    process.env.AI_INBX_WEBHOOK_SECRET!
  )

  if (event.type === "email.received") {
    const { email_id, thread_id, category, unavailable } = event.data

    if (unavailable?.back_on) {
      await pauseSequenceUntil(thread_id, unavailable.back_on)
    } else if (category === "human") {
      const email = await aiinbx.emails.retrieve(email_id)

      await aiinbx.threads.reply(
        thread_id,
        { email_id, text: await draftAnswer(email.stripped_text) },
        { idempotencyKey: `reply-${email_id}` }
      )
    }
  }

  return new Response(null, { status: 204 })
}
```

-   `pauseSequenceUntil` and `draftAnswer` are your own code. `draftAnswer` gets the text the sender wrote, inline answers included, without the quoted thread.
-   The reply goes to the right person with the right subject and headers; nothing in the call sets them.
-   The idempotency key means a webhook delivered twice still sends one reply ([idempotency](https://docs.aiinbx.com/guides/sending#idempotency)).
-   In production, [store the event durably before acknowledging](https://docs.aiinbx.com/guides/production#receive-events-durably) and do the work in a worker.

To try it, start with the [quickstart](https://docs.aiinbx.com/quickstart). For more options, read [Nylas alternatives](/blog/nylas-alternatives) and [email APIs for AI agents](/blog/best-email-api-for-ai-agents).

*Last checked: 6 November 2026. Work at Nylas and spotted something wrong? Email [pau@aiinbx.com](mailto:pau@aiinbx.com) with a link and I'll correct it.*

Written by

[Pau Kraft](https://paukraft.com)

[@paukraft on X](https://x.com/paukraft)

Before AI Inbx, Pau built email agents that run in production for enterprises in the sourcing industry, processing thousands of emails a month, where a single reply filed on the wrong conversation is not acceptable. AI Inbx is built on what those systems taught him: the threading edge cases, the replies cut in the wrong place, the email that went out at 02:30 on a Sunday.

## Questions

### Does AI Inbx replace Nylas?

Yes, if your product uses Nylas for email, your users are on Gmail or Outlook, and you want replies threaded without reply headers, cut to what was written and labelled, with pacing, sending hours and suppression lists built in. No, if you need Exchange on-premises, iCloud, Yahoo or IMAP accounts, IMAP access, open and click tracking on mail sent from your users' own mailboxes, a free plan or a SOC 2 report.

### How much does Nylas cost?

As of November 2026 Nylas Free is $0 (5 connected accounts, 3 Agent Accounts). Essentials is $15 a month (10 connected accounts, +$2.25 each extra). Pro is $49 a month or $43 billed annually (25 connected accounts, +$2.00 or +$1.75 each extra; 50 Agent Accounts and 50,000 Agent Account emails included). Enterprise is custom.

### Which is cheaper, Nylas or AI Inbx?

For products that connect many mailboxes, AI Inbx: 2,000 mailboxes moving 200 emails a month each cost $399 a month on AI Inbx and $3,999 at Nylas Pro list price. Nylas is cheaper once each mailbox moves more than about 2,000 emails a month (1,750 on annual billing), counting everything it receives.

### Does Nylas detect out-of-office replies?

Yes, on Google and Microsoft grants, for replies to mail sent through Nylas, as a message.bounce\_detected event with type automated\_reply. Its docs say detection doesn't extract return dates. On AI Inbx an out-of-office reply carries the first day back (back\_on) and the colleague it names (contacts).

### Does AI Inbx support Exchange, iCloud, Yahoo or IMAP accounts?

No. AI Inbx connects Gmail and Google Workspace, and Outlook and Microsoft 365 (Exchange Online included), over OAuth through your own Google or Microsoft app. It has no IMAP or SMTP access. Nylas covers Exchange on-premises, iCloud, Yahoo and IMAP accounts.

### Do I need my own Google OAuth app for AI Inbx?

Yes. Every Gmail and Outlook mailbox connects through an OAuth app you register with Google or Microsoft, plus a Pub/Sub topic of your own for Gmail push notifications, so the consent screen shows your product's name. Nylas offers a shared, CASA-verified Google OAuth app in its $2,400-a-year Accelerator Package.

### Is AI Inbx SOC 2 compliant?

AI Inbx has no SOC 2 report. Its DPA offers security documentation, questionnaire responses and one customer audit a year. Nylas makes a SOC 2 Type II report available under NDA and lists ISO 27001 and ISO 27701 certificates.

Keep reading

## More from the blog

[All posts](/blog)

-   [5 November 2026ComparisonsThe best Nylas alternatives (2026)Aurinko, Unipile, EmailEngine and AI Inbx vs Nylas for Gmail and Outlook products: threading, reply text, out-of-office dates, opt-outs, cost per account.Pau Kraft](/blog/nylas-alternatives)
-   [5 November 2026ComparisonsBest email APIs for AI agents (2026)Why I think AI Inbx is the best email API for products that give agents email, the bugs it saves you from, and when AgentMail, Nylas or Postmark fit better.Pau Kraft](/blog/best-email-api-for-ai-agents)
-   [5 November 2026ComparisonsBest email APIs for cold outreach tools (2026)What a cold-outreach product needs from its email API, and how 12 providers compare on terms, send limits, sending hours, replies and per-customer separation.Pau Kraft](/blog/email-api-for-cold-outreach-tools)

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

[Get started](/signup)
