Skip to content
Blog / Engineering

7 Email APIs for One Support Mailbox (2026)

Binoy Perera

Compare 7 email APIs for an AI support agent on one address: how inbound arrives, who keeps the thread, retention, and what a single support inbox costs a month.

  • support
  • email
  • agents
  • roundup

TL;DR

A support agent that answers one address needs the whole conversation, not a stream of separate messages. This roundup compares seven ways to give it one, from send-first APIs like Postmark and Resend to the Gmail API and AgentMail. By the end you will know where each option keeps thread history and what a single support inbox costs per month.

Imagine a startup with one support address and an agent that drafts the first reply. A customer writes in, the agent answers, and two days later the customer replies with a screenshot and the words "still broken". The agent now needs the earlier messages, in order, without a quoted copy of every previous email stacked underneath.

Most email services were built to send. They can receive too. But receiving usually means a webhook that hands you one message at a time and forgets it soon after. Threading, storage and the reply address become your code. That's fine for a notification pipeline and a lot of work for a support conversation.

The sections below compare seven services on the parts of inbound email a support agent actually depends on. The verdict per job comes first. After it, a table lines up all seven, and each option gets its own section with the limits that matter for support.

Which email API works best for a support agent on one address?

The best email API for a support agent on one address is the one that keeps the conversation for you. That rules out most of the field. Send-first APIs deliver each inbound message to a webhook and leave threading and history to your app.

One agent answering support@ on its own: an API mailbox like AgentMail, where the thread comes with the inbox. A human team in Gmail with an agent drafting beside them: the Gmail API. Support mail as a side channel next to product email you already send through Postmark or Resend: their inbound webhooks, as long as you store the thread yourself.

The wider field of email APIs for AI agents is ranked in a separate roundup. Everything here is narrowed to a single support address.

How do the 7 options compare for one support inbox?

The seven options split on one question: who stores the conversation. The table puts that first, then retention and the setup one address needs.

OptionInbound arrives asThread historyMessage retentionSetup for one addressBest for
AgentMailWebhook, WebSocket or IMAPThread object kept by the inboxPlan storage, 3 GB on FreeOne API call per inboxOne agent holding support conversations
PostmarkJSON webhookYour app groups by headers45 days default, up to 365Inbound server plus webhook URLPostmark senders adding customer replies
ResendWebhook event, body fetched by APIYour app sets In-Reply-To30 daysMX record plus receiving webhookProduct email teams already on Resend
MailgunRoute forwards or briefly storesYour app1 day on Foundation, 7 on ScaleMX records plus a routeRule-based routing across many addresses
Twilio SendGridInbound Parse multipart POSTYour appYour own storageMX on a dedicated hostname plus URLCompanies already sending on SendGrid
Amazon SESReceipt rule to S3, SNS or WorkMailYour appYour S3 bucketMX, receipt rule, S3 or SNSAWS teams that own the stack
Gmail APIPub/Sub push, then fetch changesGmail threadsThe Workspace mailboxWorkspace user, Pub/Sub topic, OAuth, watchAgents assisting a human Gmail team

Five of the seven hand you messages. Two hand you conversations. The Gmail API does it at the cost of a Workspace seat and a watch you renew every week. AgentMail does it because the inbox is the API object.

What does a support agent need from inbound email?

A support agent needs four things from inbound mail, and only the first is about receiving. Delivery means the message reaches your code within seconds, by webhook or a held connection. The thread is the second. When a customer replies, the agent needs every earlier message in order. Mail clients link them with In-Reply-To, the header that names the message being answered, and References, which lists the chain before it.

Clean text is the third. Replies carry the full quoted history underneath, plus signatures and "Sent from my iPhone" lines. An agent that reads all of it pays for old text on every turn. Worse, it can mistake a quoted request for a new one. The fourth is the reply itself, sent from the same support address with threading headers set so it lands in the same conversation.

Retention matters more than it looks. A customer who replies after a week needs the earlier messages to still exist. If the provider drops message content after a day, your database is the only copy. The hands-on version of this loop, with a running agent, is in how to give your support agent an email inbox.

Send-first APIs that added an inbound webhook

Postmark, Resend, Mailgun and Twilio SendGrid were built to send product email and added receiving beside it. Each one parses the message and POSTs it to your URL, and each one leaves the conversation to you. A broader look at inbound email APIs for AI agents covers more providers in this category.

Postmark

Postmark. Part of ActiveCampaign, with inbound email processing on its Pro and Platform plans. Mail sent to a hash@inbound.postmarkapp.com address, or to your own domain through inbound forwarding, arrives at your webhook as a JSON object. Full message content is kept for 45 days by default, and Pro can stretch that to as long as 365 days.

For a support agent the gap is state. Postmark stores each message on its own. There is no thread object, so your app groups messages by headers and keeps its own copy past day 45. Postmark fits teams that already send through it and want customer replies to land in the same account. The trade-offs against an agent inbox are laid out in AgentMail vs Postmark.

Resend

Resend. Receives at a Resend-managed .resend.app subdomain, or at your verified domain once you add the MX record. A new message fires an email.received webhook carrying metadata such as the message ID and sender. Your code then fetches the body through the Receiving API. To reply in thread, you send a new email with In-Reply-To set to that message ID and a subject starting with "Re:".

Two details matter for support. Received mail counts against the same quota as sent mail, so a busy support address eats into your product email allowance. Email data is kept 30 days on the Free, Pro and Scale plans. Resend fits teams that already send product email through it, and the head-to-head is in AgentMail vs Resend.

Mailgun

Mailgun. Receiving runs on routes. A route matches incoming mail, then forwards it to a URL or another address, or stores it on Mailgun's servers for a short time. The free plan includes 1 inbound route and Basic raises that to 5. Full inbound routing starts on Foundation, which keeps message content for 1 day, while Scale keeps it for up to 7 days.

That retention window is the number to watch. One day is short. A reply on day three refers to messages Mailgun has already dropped. Your database has to hold the thread from the first message. Mailgun fits teams that route many addresses by rule into different systems.

Twilio SendGrid

Twilio SendGrid. Inbound Parse needs an MX record on a dedicated hostname pointing at mx.sendgrid.net. SendGrid then POSTs each message to your URL as multipart/form-data, with the parsed fields, the attachments and the SPF and DKIM results. Pick that hostname once, because changing its MX record later stops it from receiving mail.

Parse delivers each message to your endpoint and the job ends there. It is a pipe. Threading, storage and the reply address all live in your code, from the first message a customer sends to the last reply the agent writes back. Twilio SendGrid fits companies that already send on it and need inbound on a subdomain they control.

Raw infrastructure: Amazon SES receipt rules

Receipt rules decide everything once Amazon SES accepts mail for your domain. A rule can write the raw message to an S3 bucket, publish it to an SNS topic, or hand it to Amazon WorkMail. Receiving only works in AWS Regions where SES supports it, so check the Region before you plan around it.

The fee is tiny and the build is not. MIME parsing, threading, storage, quoted-text stripping and reply headers are all yours to build and run. SES fits teams already on AWS who want to own every layer and have someone to maintain it.

A person's mailbox through the Gmail API

A Workspace mailbox gives an agent real threads, because it is the same mailbox a person reads. Push notifications go through Cloud Pub/Sub. You create a topic, grant Gmail permission to publish to it, and call watch on the mailbox. That watch must be renewed at least every 7 days or updates stop. Google's push guide recommends calling it once a day.

The address is a Google Workspace user. Workspace caps sending at 2,000 messages a day per user, and every call runs on OAuth scopes granted to that account. None of this is hard, but it's a lot of moving parts for one address that no person reads.

This fits a team that already answers support in Gmail and wants an agent drafting beside the humans. It's a heavier fit when the agent answers alone. You pay for a seat and keep a watch alive for a mailbox built around a person.

An API mailbox: AgentMail

Here the inbox is the API object, built for agents rather than people. You create the support inbox with one call. Every message that arrives joins a thread automatically, and so does every reply the agent sends. The whole conversation comes back in one request.

Each received message carries extracted_text next to the full text. That field holds only the new part of the reply, with quoted history and signature lines removed. New mail reaches you by webhook or over a WebSocket, and a person can open the same inbox over IMAP and SMTP. The reply extraction docs show every field.

Create the inbox once. The domain below has to be verified on your account first, and client_id makes the call safe to retry.

Python

# create the support inbox on your verified domain (agentmail==2.0.12)import osfrom agentmail import AgentMailfrom agentmail.inboxes.types import CreateInboxRequestclient = AgentMail(api_key=os.environ["AGENTMAIL_API_KEY"])inbox = client.inboxes.create(    request=CreateInboxRequest(        username="support",        domain="northwind.dev",        display_name="Northwind Support",        client_id="northwind-support-v1",    ))print(inbox.inbox_id)# support@northwind.dev

When a message arrives, load its thread and give the model only the new text from each turn. Then reply to the last message. It goes out from support@ with the threading headers set for you.

Python

# rebuild the conversation from new text only, then reply in the same threadthread = client.inboxes.threads.get(    inbox_id="support@northwind.dev",    thread_id=thread_id,)transcript = "\n\n".join(    f"{m.from_}: {m.extracted_text or m.text or ''}" for m in thread.messages)answer = draft_reply(transcript)  # your model callsent = client.inboxes.messages.reply(    inbox_id="support@northwind.dev",    message_id=thread.messages[-1].message_id,    text=answer,)print(sent.thread_id == thread.thread_id)# True

The same pattern runs a shared support inbox read by one agent. The inbox does the bookkeeping that the send-first options leave to you.

What does one support inbox cost per month?

On paper, one support inbox costs between $0 and $20 a month on every option here. The real difference is how much code you run beside it.

Resend's free plan covers 3,000 emails a month and 100 a day, counting sent and received together. Pro is $20 a month for 50,000. Mailgun's free plan allows 100 emails a day with 1 inbound route. Basic is $15 a month for 10,000 emails, and Foundation is $35 for 50,000.

Postmark lists inbound processing on Pro at $16.50 a month for 10,000 emails. Basic, at $15, does not list it. Twilio SendGrid's free trial allows 100 emails a day for 60 days. After that, Essentials starts at $19.95 a month and Pro at $89.95.

On à la carte pricing, Amazon SES charges per message. Receiving is $0.10 per 1,000 emails, plus $0.09 per 1,000 incoming chunks of 256 KB. Sending is $0.10 per 1,000. At 3,000 received messages a month, the receiving fee is $0.30 before chunk charges. The Gmail API runs on a Google Workspace seat, and Business Starter lists at $7 per user per month.

On AgentMail, the free plan includes 3 inboxes, 3,000 emails a month and 100 a day on agentmail.to addresses. Developer is $20 a month for 10 inboxes, 10,000 emails and 10 custom domains. A support@ address on your own domain needs that plan. Extra inboxes are $2 a month each.

The sticker price is the small number. Every option except AgentMail needs code that strips quoted text before the model reads a reply. All but two need a database that holds the thread past the provider's retention window. That code is usually what breaks first.

Should you trust a Twilio SendGrid recommendation for an agent product?

Trust a Twilio SendGrid recommendation for outbound mail and test it for inbound. If your product already sends through it, Inbound Parse on a subdomain is a reasonable first step. Every message will reach your endpoint.

What the recommendation usually skips is the rest of the support loop. Parse is a webhook, so the thread, the stored history and the clean reply text are code you write and run. Ask whoever suggested it where the conversation lives. If the answer is "your database", price in that work before you agree.

Which option fits which support setup?

Each of these options solves a real problem. The right one depends on who answers the address. Postmark and Resend fit teams that already send product email and want customer replies in the same account. Mailgun fits rule-based routing across many addresses. Twilio SendGrid fits companies already sending on it.

Amazon SES fits AWS teams that want to own every layer. The Gmail API fits agents that assist a human team inside Gmail. AgentMail fits one agent on one address that needs the whole conversation back every time a customer replies. More head-to-head pages live on the comparisons hub.

What AgentMail does not do

There are no SLA timers, macros or satisfaction surveys, so teams that need a helpdesk keep one next to the inbox. AgentMail does not read an existing Gmail or Outlook mailbox over OAuth, so an agent working inside a person's mailbox belongs on the Gmail API. The free plan has no custom domains. What the agent may promise a customer, and when a human takes over, stays in your code.

FAQ

Questions, answered.

Yes, if you are willing to build the mailbox around it. Postmark, Resend, Mailgun and Twilio SendGrid all receive mail and POST it to a webhook. Grouping replies into conversations and keeping them past the provider's retention window is your code.

Anywhere from 1 day to a year, depending on provider and plan. Mailgun keeps message content 1 day on Foundation and up to 7 on Scale, Resend keeps email data 30 days, and Postmark keeps 45 days by default with up to 365 on Pro. Amazon SES and Inbound Parse hand the message to you, so retention is whatever your storage keeps.

For a customer-facing address, yes, because customers expect replies from your company domain. Every option here can receive on a domain you verify. On AgentMail, custom domains start on the Developer plan, which includes 10.

It reads only the new part of each reply. With most providers that means running a reply parser over the body before the model sees it. AgentMail returns that part as extracted_text on every message, with the full text alongside as a fallback.

Yes. With the Gmail API the AI agent works inside the mailbox your team already uses. With AgentMail, people can open the same inbox over IMAP while the agent works through the API.

Blog

Suggested reading

View all posts

Prompt

Give yourself access to AgentMail by following the guide at:

https://agentmail.to/docs/get-started/agent-signup

and refer to:

https://agentmail.to/llms.txt

for the documentation index.

Start integrating AgentMail into your AI agents today.