For Agentic Apps

Best Email Tools for AI Agents and Autonomous Applications

Ten email APIs compared for agents that send, receive events and act on the results without a person in the loop. Prices are shown at three real sending volumes.

For most agentic applications that send email from code, Resend is the best starting point. Its Free plan covers 3,000 emails per month, and its Pro plan is $20 per month for 50,000 emails. An agent can be built and checked on the free tier, then moved to Pro without changing how it calls the API. The reasons are a single REST API for sending, a plain step from free to paid volume, and templates that can be written as the same kind of component code the product already uses.

Resend is not the right answer for every agent. Postmark is the stronger choice when nearly all of the agent's mail is transactional and you want those messages separated from broadcasts. Amazon SES has the lowest published price per email for teams already running on AWS. Novu and Knock suit agents that choose between email, SMS, push and in-app messages for the same user. Courier fits teams where designers maintain the templates and where developer tooling is needed on the free tier. Mailgun is a good fit when event history and address validation matter more than the template layer. SendGrid works when one vendor should cover API sending and marketing campaigns.

This guide is about email that an agent triggers on its own: the sends, the event webhooks that come back, the retries and suppressions that follow, and the cost of running all of it. Prices come from each vendor's public pricing page as checked on 7 October 2026. Plan limits and volume bands change, so read the linked pricing page before committing a budget.

What an Agent Actually Asks Email to Do

A human marketer sends a handful of campaigns a month and reviews each one before it goes out. An agent behaves differently. It reacts to events, sometimes dozens of them in a minute, and it does not pause to ask whether a message looks right. Before comparing vendors, it helps to name the workloads an agent will realistically run, because each one stresses a different part of an email API.

The first workload is event-triggered transactional mail: a receipt, a password reset, a deployment alert or a request for approval. Each user receives little, but the traffic is spiky in aggregate, so the important features are reliable single sends, clear error responses and a rate limit the agent can read. The second is scheduled digests, where an agent gathers results over a day and sends one summary per user. Here the cost of each send matters, and so does the ability to queue sends and release them in a controlled way.

The third workload is the multi-step sequence: an onboarding series, a set of payment reminders, or follow-ups that depend on whether the previous message was opened or bounced. This is where webhooks and the contact model do most of the work. The fourth is list hygiene. An agent that processes bounce and complaint events keeps the audience healthy without anyone clicking through a dashboard, and that only works if the provider exposes those events and the suppression data in a usable form. The last common workload is generated content, such as a weekly report written by a language model and mailed to a list. That workload needs volume pricing and a way to stop a bad generation before it reaches thousands of inboxes.

Each of these workloads leads to a different answer. A product that sends a few thousand transactional messages a month is a very different buying decision from a product that mails 200,000 generated summaries a month. Much of the rest of this page keeps that difference in view, because a tool that fits one workload can be expensive or awkward for another.

A useful way to describe a workload is to write one sentence for each message type the agent will send. Include who receives it, what event causes it, how often it happens for one user, and what the agent does with the result. Those four facts tell you whether the agent needs a sending API, a workflow engine or a contact-based platform. They also tell you which events you must receive back, because a message type that can produce a complaint needs a different response path from one that only produces a delivery confirmation.

Six Criteria That Matter More for Agents Than for Humans

Most email buyers compare template editors, inbox placement claims and visual builders. Those still matter, but an agent depends on a different set of properties first. The six criteria below shape the rest of this comparison, and they are the questions to put to each vendor's API reference before a trial starts.

Predictable responses. An agent parses what the API returns. A consistent response shape with a clear success state and clear error codes lets the agent decide what to do next without guessing. A response that changes shape between endpoints is a bug waiting to happen in an unattended loop, and it tends to surface only after the agent has already sent a batch of messages.

Webhooks the agent can act on. Bounce, complaint, delivery and engagement events must arrive in a form the agent can process, ideally with a signature it can verify before trusting the payload. Check which event types each provider exposes, whether you can subscribe to only the ones you need, and how the provider retries a webhook that your endpoint fails to accept.

Retry safety. A network timeout does not tell the agent whether the email left. A provider-side deduplication key, sometimes called an idempotency key, is the feature that lets an agent retry without sending the same message twice. Not every provider documents this in the same way, so read the reference for each API you shortlist and confirm the behaviour before relying on it.

Rate limits the agent can read. An agent recovers from throttling only when the provider reports what happened and when to try again. A daily cap on a free plan is a limit of a different kind, because a monthly total can be well under the allowance and the agent still fails. Plan around daily ceilings in advance, and let the agent see how much of the day it has used.

Administration through the API. If an agent can send but cannot manage suppressions, templates or domains, a person must clean up after it. The better APIs expose the administrative surface, so the agent can keep its own state in order without a manual step in the middle.

A cost unit that matches the workload. Providers charge per email, per contact, per workflow run, per message or per send. Those units are not interchangeable. A workflow run that fans out to three channels is not the same cost as one email, and a contact-based plan is not the same cost as a volume-based one. The cost section below works through each vendor at three volumes.

Ten Email APIs for Agentic Applications, Side by Side

Tool Best for agents that Starting price (plan, billing, volume) Key limitation
Resend Send transactional mail from code through one REST API Free: $0 per month, 3,000 emails per month. Pro: $20 per month, 50,000 emails per month The free plan is capped at 100 emails per day
Postmark Send almost only transactional mail and keep streams separate Free: $0 per month, 100 emails per month. Basic: $15 per month, starting at 10,000 emails per month Built around transactional mail; the free plan is too small for live traffic
Amazon SES Run inside AWS and send large volumes at a low per-email rate Pay as you go: $0.16 per 1,000 emails on Essentials, for 0 to 10 million emails per month You build the product layer, the digest logic and the event handling yourself
SendGrid Use one vendor for API sending and marketing campaigns Free trial: 100 emails per day for 60 days. Essentials: $19.95 per month, 50,000 to 100,000 emails per month The free trial is time-limited, and the product set is large to configure
Mailgun Need event history and address validation in one place Free: $0 per month, 100 emails per day. Basic: $15 per month, 10,000 emails per month The free plan's daily cap is low; validation is a usage charge on top of the plan
Novu Route email, SMS, push and in-app messages through workflows Free: $0 per month, 10,000 workflow runs per month. Pro: $30 per month, 30,000 or more runs A workflow run is a different unit from one email, and the jump to Team is large
Knock Manage notification workflows with batching and per-user preferences Developer: $0 per month with 10K messages. Starter: $250 per month with 50K messages A large step from the free plan; each channel send counts as a message
Courier Trigger designer-maintained templates, or use MCP and a CLI from the free tier Developer: $0 per month for 10,000 sends. Business: $0.005 per send, pay as you go Per-send cost rises quickly above the free tier
Plunk Run a small project under about 1,000 emails a month Free forever: $0 per month for 1,000 emails. Pay as you grow: $0.001 per email Free emails carry Plunk branding, and the event surface is lighter
Loops Message a SaaS user base where the contact list matters more than send count Early Stage: $0 per month, up to 4,000 sends in any rolling 30 days. Growing Audience: $99 per month Contact-based pricing, and the free plan reaches only the 1,000 newest contacts

What Each Tool Costs at Three Realistic Volumes

Three volumes cover most agentic products. The first is 2,500 emails a month, typical of an internal tool or a product in private beta. The second is 50,000 emails a month, the point where most SaaS products start paying real money for email. The third is 200,000 emails a month, roughly the size of a product with a steady stream of agent-generated summaries and notifications. The table below uses only published prices. Where a vendor does not publish a plan at that exact size, the cell says that pricing is on request at that volume rather than estimating a figure.

Where a price is worked out from a per-unit rate, the arithmetic is written in brackets so you can redo it with your own numbers. Those derived figures assume every unit is one email or one send. They do not include overage charges, taxes or any add-on that a vendor bills separately, so read the pricing page for the plan you choose before budgeting.

Monthly Cost by Sending Volume

Tool 2,500 emails a month 50,000 emails a month 200,000 emails a month
Resend $0 (Free plan, 3,000 emails per month, 100 per day) $20 per month (Pro, 50,000 emails) $160 per month (Scale at 200,000 emails)
Postmark $15 per month (Basic, starting at 10,000 emails; the free plan covers only 100) $55 per month (Basic at 50,000 emails) Pricing on request at this volume (the highest published Platform figure is $138 per month at 125,000 emails)
Amazon SES $0.40 per month (2.5 × $0.16) $8.00 per month (50 × $0.16) $32.00 per month (200 × $0.16)
SendGrid $0 on the Marketing Campaigns Free plan (up to 2,000 contacts and 6,000 emails per month) $19.95 per month (Essentials, 50,000 to 100,000 emails) $89.95 per month (Pro, 100,000 to 2,500,000 emails)
Mailgun $15 per month (Basic, 10,000 emails); the free plan allows 100 emails per day $35 per month (Foundation, 50,000 emails) Pricing on request at this volume (Scale is $90 per month at 100,000 emails)
Novu $0 (Free, 10,000 workflow runs per month) $30 per month (Pro, 30,000 or more runs) Depends on runs, not emails; a plan of 250,000 runs is $250 per month (Team)
Knock $0 (Developer, 10K messages) $250 per month (Starter, 50K messages included) $1,000 per month ($250 Starter + 150,000 × $0.005 = $750), assuming one message per email
Courier $0 (Developer, 10,000 sends per month) $250 per month (50,000 × $0.005, Business pay as you go) $1,000 per month (200,000 × $0.005, Business pay as you go)
Plunk $2.50 per month (2,500 × $0.001, pay as you grow) $50 per month (50,000 × $0.001) $200 per month (200,000 × $0.001)
Loops $0 (Early Stage, up to 4,000 sends in any rolling 30 days, to the 1,000 newest contacts) $99 per month (Growing Audience; unlimited sends to subscribers) $99 per month (Growing Audience); the contact count, not the send count, sets the plan

Three patterns stand out. At 2,500 emails a month, the free tiers of Resend, Courier and Loops cost nothing, and SES costs well under a dollar. Plunk costs $2.50 at that volume only after you move to pay as you grow, because its free allowance is 1,000 emails. Postmark and Mailgun need their smallest paid plan at this size, which costs $15 a month.

At 50,000 emails a month, SES and Plunk are the cheapest per email, with SES at $8.00 and Plunk at $50. Resend's Pro plan at $20 is lower than Plunk at this volume and sits in the same range as SendGrid's Essentials at $19.95. Courier and Knock are far more expensive at this size, because they price every send or message on top of the included allowance. Knock's Starter at $250 is the single largest line in this column. At 200,000 emails a month, the gap is widest. SES stays at $32 a month, while Courier reaches $1,000 and Knock reaches the same figure once its included allowance is used up.

Per-unit prices are not the whole bill. An agent that sends one email to a user and also fans out to SMS and in-app messages will consume messages or workflow runs far faster than the email count suggests. Estimate the units your agent will generate, not only the emails you believe it sends. A simple exercise is to count how many provider calls a single user's full lifecycle causes, then multiply by the number of active users. Compare that figure with the included allowance on each plan before deciding.

Plan limits and prices change. Use these figures to compare the shape of each pricing model, then confirm the current numbers on the linked pricing page before you sign up for a plan. Pay particular attention to daily caps on free tiers, to which unit the vendor bills, and to any overage charge that applies when you pass the included volume.

Tool-by-Tool Notes for Agentic Use

Each section below covers one provider in the same order: the audience it fits, what it does well for agents, where it falls short, the price and a link to the pricing page. Read the sections for the tools on your shortlist, then use the decision table further down the page.

Resend

A developer-first sending API with a clear free tier

Best for: TypeScript and Node teams whose agent sends a few thousand transactional emails a month and who want one API to call from the same codebase as the rest of the product.

What it does well for agents: The API is RESTful, with consistent endpoints and a documented response structure, which makes parsing results simple. Templates can be written as HTML or as React Email components, so the agent can render content from the same component code the product uses, instead of maintaining a second copy of every template. The Free plan covers 3,000 emails per month across 3 domains, which is enough to build and check an agent from end to end before paying anything. A batch sending option lets the agent send several messages in one call when a single event fans out to many recipients.

Where it falls short: The free plan caps sending at 100 emails per day, so an agent that bursts in the morning will hit the limit even when its monthly total is well under 3,000. Resend is a sending service, so the logic that decides what to send and when lives in your code. If your agent needs multi-channel orchestration, you build that layer yourself or pair Resend with a workflow tool. Marketing features use a separate plan structure, with a Marketing Free plan for up to 1,000 contacts that includes 10,000 automation runs and 3 segments.

Price: Free at $0 per month for 3,000 emails. Pro at $20 per month for 50,000 emails. Scale at $90 per month for 100,000 emails, and $160 per month for 200,000 emails. Marketing plans are priced by contact count, with Pro marketing at $40 per month for 5,000 contacts.

Resend pricing page

Postmark

Transactional email with stream-level separation

Best for: Agents whose email is almost entirely transactional, such as approvals, receipts, alerts and status notices, and whose team wants those messages kept apart from any broadcast traffic.

What it does well for agents: Message Streams let you separate kinds of mail, so agent-triggered transactional messages do not share a sending profile with newsletters or bulk broadcasts. Webhooks are split by event type, covering delivery, bounce, spam complaint, open and click, so an agent can subscribe only to the events it acts on. The Suppressions API lets the agent read and manage the addresses it must not email, which is the core of automated list hygiene. Templates accept variables, so generated content can be kept separate from the delivery logic.

Where it falls short: The free plan allows 100 emails per month with no overages, enough to confirm a setup works but not to run a live agent. The product is built around transactional mail, so broadcast and campaign features are secondary, and a team that wants a full marketing suite in one place will look elsewhere. Price steps are visible as volume grows: at 50,000 emails, Basic is $55 per month, Pro $60.50 and Platform $66.

Price: Free at $0 per month for 100 emails. Basic at $15 per month, starting at 10,000 emails. Pro at $16.50 per month and Platform at $18 per month, both starting at 10,000 emails. Volume readouts are published for 50,000 and 125,000 emails, with Basic at $115 per month for 125,000 emails.

Postmark pricing page

Amazon SES

Low-cost sending for teams already running on AWS

Best for: Agents that run on Lambda, ECS or EC2 and send high volumes, where the price per email matters more than a finished product layer.

What it does well for agents: Authentication can use IAM roles, so the agent does not carry long-lived API keys in its code or configuration. The AWS SDK handles request signing. Event notifications arrive through SNS, which can fan out to HTTP endpoints, SQS queues or Lambda functions. An SQS queue is useful for agents because the processing side can work through events at its own pace. Configuration sets let you tag and track different categories of email separately, and templated sending supports variables for personalization.

Where it falls short: SES is infrastructure. There is no visual template builder, no built-in digest feature and no workflow engine, so the agent or your backend has to supply that logic. Expect more setup than with the managed platforms, and treat event processing as a system you own. The free allowance for eligible new AWS customers is documented as up to $200 in credits, with a free plan available for 6 months after account creation, so check the terms on the pricing page before you rely on it for a long-running agent.

Price: Pay as you go at $0.16 per 1,000 emails on the Essentials tier for 0 to 10 million emails per month. The Pro tier is $0.22 per 1,000 and the Enterprise tier is $0.23 per 1,000 over the same range. At 50,000 emails a month on Essentials, the sending cost is $8.00.

Amazon SES pricing page

SendGrid

API sending and marketing campaigns under one vendor

Best for: Teams that want an API for agent-triggered mail and a campaign tool for newsletters, both from one provider and under one account.

What it does well for agents: The Event Webhook reports processed, delivered, opened, clicked, bounced, deferred, dropped, spam report and unsubscribe events. Unique arguments passed at send time are echoed back in the webhook payload, so the agent can match each event to the workflow or user that caused it. Dynamic Templates use Handlebars syntax, which keeps personalization logic out of the agent code. Inbound Parse lets an agent receive and process incoming replies, which is useful for two-way workflows such as support handoffs.

Where it falls short: The product set is large, which means more to configure and more to learn before an agent runs reliably. The free trial for the Email API is 100 emails per day for 60 days, after which a paid plan is needed. The Marketing Campaigns free plan covers up to 2,000 contacts and 6,000 emails per month, which suits a small list but not a growing one.

Price: Email API free trial at $0 for 100 emails per day over 60 days. Essentials at $19.95 per month for 50,000 to 100,000 emails per month. Pro at $89.95 per month for 100,000 to 2,500,000 emails per month. On the marketing side, Basic is $15 per month for up to 100,000 contacts and 300,000 emails, and Advanced is $60 per month for up to 200,000 contacts and 1,000,000 emails.

SendGrid pricing page

Mailgun

Event history and address validation for observability-heavy agents

Best for: Agents that need to query their own sending history, track temporary failures and clean addresses before sending, particularly when the team wants all of that from one provider.

What it does well for agents: The Events API lets an agent search and filter email history programmatically, which is valuable when an agent must explain what happened to a given message. Tags categorize sends for later analysis. The Suppressions API covers bounces, complaints and unsubscribes. Email Validation lets the agent check an address before it sends, and Mailgun's published pricing lists validation among its usage overages, so the cost is visible up front.

Where it falls short: The free plan is capped at 100 emails per day, the same daily limit that catches many agents out. The step from Basic at $15 per month to Foundation at $35 per month is larger than the volume change suggests, because Basic covers 10,000 emails and Foundation covers 50,000. Validation is billed separately on top of the plan, so budget for it on its own line if your agent validates every address in a large list.

Price: Free at $0 per month for 100 emails per day. Basic at $15 per month for 10,000 emails. Foundation at $35 per month for 50,000 emails, with one month free on Foundation and Scale. Scale at $90 per month for 100,000 emails. Email and validation overages are billed on top of the plan.

Mailgun pricing page

Novu

Notification workflows across email, SMS, push and in-app

Best for: Agents that decide how to notify a user across several channels, and products that want to self-host or keep data in a chosen region.

What it does well for agents: The agent triggers a workflow defined once, and the workflow handles channel selection, templates, delays and conditional steps. Digest functionality groups several events into one notification, which stops an autonomous system from flooding one user. User preferences can be read and changed through the API, so the agent respects choices people have already made. Novu is open source, so you can self-host if your data rules require it, or use the managed service for convenience. The Free plan includes all channels, including email, in-app, SMS, chat and push, with US and EU data residency.

Where it falls short: A workflow run is a different unit from one email. An agent that triggers a workflow with three channel steps should be budgeted against the run count, not the email count. Activity feed retention on the Free plan is 24 hours, which makes debugging an agent run from last week hard unless you store the events yourself. The step from Pro at $30 per month to Team at $250 per month is large.

Price: Free at $0 per month for 10,000 workflow runs, up to 20 workflows, 2 environments and up to 3 team members. Pro at $30 per month for 30,000 or more runs, with 7-day activity feed retention and Novu branding removed. Team at $250 per month for 250,000 or more runs, with 90-day retention and up to 10 environments.

Novu pricing page

Knock

Workflow-based notifications with preferences built in

Best for: Agents that manage notification workflows for many users, where batching, delays, conditional logic and per-user preferences all matter.

What it does well for agents: Workflows support batching, delays and conditional branches, so the agent can describe a multi-step notification as configuration rather than as timers in its own code. Preferences and subscriptions are available through the API, so the agent can read and update them. Message lifecycle webhooks cover sent, delivered, seen, read and interacted states, which lets the agent measure engagement across channels with one event model. The Developer plan includes unlimited workflows, broadcasts, delivery channels and team members.

Where it falls short: The step from the free Developer plan to the $250 per month Starter plan is large. A message is one successful send to one user on one channel, so an agent that notifies people on several channels consumes messages quickly. Enterprise pricing is set through a sales conversation. Knock is strongest when notifications are the product, and it is less natural when the agent mostly sends one-off transactional emails.

Price: Developer at $0 per month with 10K messages included. Starter at $250 per month with 50K messages included, then $0.005 per message. Enterprise is priced on request.

Knock pricing page

Courier

Designer-maintained templates with agent tooling in the free tier

Best for: Teams where designers maintain the templates and agents trigger them, and teams that want an MCP server, a CLI and SDKs without paying for a plan.

What it does well for agents: The Send API references a pre-designed template by identifier, so the agent passes data and the template handles layout. That separation keeps the agent focused on the decision to send rather than on presentation. Automations run multi-step sequences, Lists let the agent message groups of users, and user preferences can be queried and updated. The Developer plan includes journeys and broadcasts, an MCP server, a CLI and SDKs, which is unusual at the free tier and useful for agents built around tool calls. SSO through Google and GitHub is included.

Where it falls short: The model suits teams that want a managed design process. A team that only needs code-defined templates may find the designer-led flow adds steps without adding value. Per-send pricing on Business is simple, but the total rises quickly: at 200,000 sends it reaches $1,000 per month, far above the per-email cost of SES. Enterprise pricing is custom.

Price: Developer at $0 per month with 10,000 sends per month, journeys and broadcasts included. Business is pay as you go at $0.005 per send. Enterprise is custom pricing with volume discounts.

Courier pricing page

Plunk

Simple, pay-per-email sending for small projects

Best for: Solo builders and small projects whose agent sends well under 1,000 emails a month and who want a simple send call without a large platform.

What it does well for agents: The send endpoint takes a recipient, a subject, a body and a few optional fields in a flat structure, so the agent does not need to build nested configuration. Transactional emails, workflow automation and campaign broadcasts are available, and custom domains are included on the free tier. Contacts are unlimited on the free plan, which suits an agent that manages a growing list.

Where it falls short: Emails on the free tier carry Plunk branding. The event surface is lighter than the larger providers, so an agent that needs a full audit trail should store its own event log from day one. The API is simple by design, which is a strength for small projects and a limit for teams with complex delivery rules.

Price: Free forever at $0 per month for 1,000 emails, with unlimited contacts, custom domains and Plunk branding. Pay as you grow at $0.001 per email, which is $1 per 1,000, with no branding, a monthly spend cap and unlimited emails. At 50,000 emails a month, that is $50.

Plunk pricing page

Loops

Contact-based email for SaaS products

Best for: SaaS teams whose agents message existing users through onboarding, upgrade and retention flows, where the contact list is the main asset and the send count is secondary.

What it does well for agents: Transactional and marketing mail sit in one product, so an agent does not have to reconcile two systems for the same user. The API lets the agent manage contacts, trigger transactional emails and enroll users in campaigns. Loops is designed around SaaS use cases, so event names and contact properties tend to match how product teams already think about users. Segments that depend on contact properties can be updated by the agent as user behaviour changes.

Where it falls short: Pricing is contact-based, so an agent that mails a large set of inactive contacts pays for them. The Early Stage plan sends only to the 1,000 newest contacts, is limited to 4,000 sends in any rolling 30 days, includes a Loops footer and sends at 10 emails per second at most. Transactional sends to people outside your audience require the Growing Audience plan.

Price: Early Stage at $0 per month for up to 4,000 sends in any rolling 30 days. Growing Audience at $99 per month, with unlimited sends to subscribers, transactional sends to users outside your audience and all features included.

Loops pricing page

How to Choose for Your Agent

Start with the workload, not the vendor list. Write down the three most common things your agent will email, the number of emails you expect at launch and at twelve months, and whether those emails go to users who opted in, to internal staff, or to outside addresses. Those three answers eliminate most of the list. An internal tool that emails staff has very different deliverability and consent needs from a product that emails customers who signed up last week.

Next, decide what the agent must be able to do on its own. If it must manage suppressions, look at Postmark, Mailgun and Resend, and confirm the administrative endpoints in each provider's API reference. If it must choose a channel for each user, look at Novu and Knock, because a sending API alone will not make that decision. If it must run inside an AWS account with IAM-based access, Amazon SES is the natural fit, and you should budget time for the event processing you will build around it. If designers must own the templates, Courier's template-ID model is the closest fit among the ten.

Then check the failure modes. Ask what the free plan does when the agent hits a daily cap, and whether the agent can read that state before it fails. Ask how the provider reports a bounce, and whether that event arrives in a form your receiver can process without a person. Ask whether retries are safe, and what the provider documents about deduplication. A tool that is cheap until the first bad loop is not cheap for an autonomous system.

Finally, choose the cost unit that matches how your product grows. Per-email pricing favours agents that send steadily to a modest audience. Contact pricing favours SaaS products that message the same users again and again. Per-run or per-message pricing favours workflows that fan out to several channels, but it can surprise you if the agent sends many small notifications that each count as a unit.

It also helps to test the decision against a bad day, not only a typical one. Imagine the agent gets stuck in a loop and tries to send ten thousand messages in an hour. Which provider stops it, and which one charges you for every attempt? Imagine a bounce spike after a bad import. Which provider tells the agent quickly, and does the agent have a single list it checks before sending? The answers to those two questions often matter more than a few dollars of monthly difference.

Decision Table: If Your Agent Needs This, Start Here

If your agent needs Start with Because
A low-cost prototype that sends from code Resend Free plan at $0 for 3,000 emails per month; Pro at $20 for 50,000
Transactional mail kept apart from broadcasts Postmark Message Streams and webhooks split by event type; Basic from $15 per month
High volume on AWS at a low per-email rate Amazon SES $0.16 per 1,000 emails on Essentials, with IAM-based access and SNS event delivery
API sending and campaigns from one vendor SendGrid Event Webhook, Dynamic Templates and a campaign product under one account
Deep event history and address validation Mailgun Events API for querying history, plus Email Validation before sends
Email, SMS, push and in-app chosen per user Novu or Knock Workflow engines with preferences; Novu for self-hosting or regional data residency, Knock for batching and preference management
Designer-maintained templates triggered by an agent Courier Template identifiers separate design from agent logic; Developer plan includes an MCP server, CLI and SDKs
A small project under about 1,000 emails a month Plunk Free forever for 1,000 emails, then $0.001 per email with no branding
Messages to a SaaS user base, priced by contacts Loops Transactional and marketing mail in one product; Growing Audience at $99 per month

Setup Checklist Before an Agent Sends Its First Email

Step What to confirm Why it matters for agents
1. Sending domain Verify the sending domain with the provider and publish the DNS records it asks for A domain the provider has not yet confirmed causes failures that look like random errors
2. Credentials Store API keys in environment variables or a secrets manager; on AWS, use IAM roles where the service supports them Keys in code end up in logs and repositories, and agents run in places nobody watches
3. Daily and per-second limits Read the limits on your plan, including any daily cap, before you set the agent's send schedule A daily cap can block a burst even when the monthly total is fine
4. Deduplication Find the idempotency or deduplication option in the API reference and generate one key per logical message Retries after a timeout are only safe when the provider can recognise the repeat
5. Event endpoint Subscribe to bounce and complaint events first, then delivery and engagement events, and verify signatures where offered Bounces and complaints change which addresses the agent may email at all
6. Suppression sync Mirror provider suppressions into your own contact store and check it before every send An agent with more than one sending path can otherwise email an address that already bounced
7. Cost units Count the provider units one user's lifecycle creates: emails, runs, messages, sends or contacts Fan-out workflows multiply units faster than the email count suggests
8. Trial run Send to internal test addresses through the full path: queue, API call, event handler and suppression write Problems usually appear at the seams between components, not inside any one of them

Building the Send Path Around the Provider

The provider is one component in a longer path. Most failures that autonomous email systems suffer come from the parts around the API call: a queue that drops messages, a retry that fires twice, a webhook handler that acknowledges an event before writing it down, or a suppression check that only runs on one of two sending paths. Designing those parts carefully matters more than picking the cheapest vendor.

Put a queue between the agent's decisions and the sending call. The agent writes a message record with a stable identifier, a recipient, a template or content reference and a status. A worker reads from the queue, checks the suppression list, sends the message with a deduplication key derived from the identifier, and records the provider's response. This separation gives you a place to apply rate limits, to pause sending when a bounce spike appears, and to replay failed work without re-running the agent's reasoning.

Treat each incoming event as a record first and an action second. The webhook endpoint should verify the signature where the provider offers one, write the raw event to durable storage and return a success response. A separate process then reads the stored event and updates the suppression list, the contact record or the agent's memory. If the processing step fails, the event is still there, and the agent can process it again. Handling events directly inside the webhook request is the usual cause of lost bounce records.

Decide in advance how the agent behaves when a provider is down. A reasonable default is to keep the message in the queue, widen the retry interval, and alert a person when the backlog passes a threshold. The agent should not switch providers silently, because two providers mean two suppression lists, two sender reputations and two bills. If a second provider is part of the design, it should be a deliberate fallback with its own suppression sync, not an accident that appears during an outage.

Keep an audit trail that a person can read. For each message, store who or what requested it, the template or content version, the provider message identifier, the time of each status change and the final outcome. When a user asks why they received a message, or why they did not, the answer should be one query away. Agents make many small decisions, and without an audit trail it is very hard to tell a bug from a deliberate choice.

Finally, put a human gate on new message types. The first time an agent sends a new kind of email, route it to an internal test address and review the rendered output and the event trail. Only after that should the agent send it to customers. Automation reduces the number of decisions people make, but it should not remove the first look at a new message.

Monitoring an Agent That Sends Without Supervision

An agent that sends email at night needs alarms that wake someone up. Track four signals at minimum. The first is the bounce rate for each sending path and each template, because a jump in bounces after an import or a change in the agent's targeting shows up there before it shows up anywhere else. The second is the complaint rate. Complaints are rarer than bounces, but each one counts against sender reputation, so a small rise deserves attention the same day.

The third signal is queue depth and the age of the oldest queued message. A growing queue means the agent produces messages faster than the provider accepts them, or that the worker is stuck. The fourth is the number of provider calls per user per day. A sudden rise in calls often means a retry loop or a workflow that fans out more than intended. Watch that figure alongside the spend on the vendor's billing page, because unit-based pricing turns a loop into a bill.

Set a hard daily ceiling inside the agent. Use a number well below the provider's cap, so a runaway process stops before it hits the vendor's limit and before it sends thousands of unwanted messages. When the ceiling is reached, the agent should stop sending, log the event and wait for a person to raise the ceiling or find the cause.

Moving an Existing Agent to a New Email API

Teams often start with one provider and move later, usually when volume grows, when a feature is missing, or when the bill stops making sense. A move is safer when it is planned around three things: the suppression list, the deduplication behaviour and the event history.

Export the suppression list from the old provider before you cut over, and import it into the new one and into your own store. Do this a few days before the switch, then run a second export on the day of the switch to catch addresses that bounced in the meantime. Sending to an address that the old provider had suppressed is the most damaging mistake in a migration, because it can restart complaints from people who already opted out.

Run both providers in parallel for a short period. Send a small share of traffic through the new one, compare bounce, complaint and delivery events, and confirm that the webhook handler processes the new provider's payloads correctly. Keep the deduplication keys stable across the two providers if your agent retries across a switch, so that a message that was in flight during the move is not sent twice.

Keep the old provider's event history for as long as your audit requirements demand, and export it before you cancel. Many providers keep event logs for a limited period, so an export made after cancellation may not contain what you need. Once the new provider is handling all traffic and the suppression sync has run cleanly for a full sending cycle, retire the old path and remove its credentials from the agent's configuration.

Frequently Asked Questions

Which email API should an AI agent start with?

For most code-first agents, Resend is the simplest place to start. Its Free plan covers 3,000 emails per month with a cap of 100 emails per day, and the Pro plan is $20 per month for 50,000 emails. Build and test the agent on the free tier, then move to Pro when real traffic arrives. If the agent sends almost nothing except transactional mail and you want that mail kept apart from any broadcasts, Postmark is the stronger first choice.

How should an agent handle daily and per-second limits?

Read the limits each provider documents for your plan, put a send queue between the agent and the API, and back off when a throttling response comes back. Daily caps matter more than monthly totals for agents. Resend and Mailgun both cap the free tier at 100 emails per day, so an agent that sends 2,500 emails in a month can still hit the ceiling in one busy hour. Keep a per-day budget inside the agent itself, not only at the provider.

Do agents really need webhooks for email?

Yes, at least for bounces, spam complaints and unsubscribes. These events change which addresses the agent is allowed to email. Sending to an address that has already bounced or complained damages sender reputation for every message that follows. Delivery and open events are useful for analytics, but bounce and complaint events are the ones an autonomous system must act on without waiting for a person to review them.

Is per-email or per-contact pricing better for agents?

It depends on the shape of the workload. An agent that sends a steady number of messages to a modest audience usually pays less under per-email pricing. Postmark lists a Basic plan at $55 per month for 50,000 emails, and Resend lists Pro at $20 per month for 50,000 emails. Loops prices by contacts, and its Growing Audience plan is $99 per month with unlimited sends to subscribers. An agent that mails a large, mostly inactive list pays for those contacts under a contact model, so the cheaper option flips as the database grows.

Can an agent safely retry a send that failed?

Retry only failures that look temporary, such as timeouts and server errors, and use exponential backoff with a maximum delay. Do not retry client errors, because they usually mean the request itself is wrong. Where the provider supports an idempotency or deduplication key, generate one key per logical message and reuse it on every retry, so a network failure cannot produce a second copy of the same email. Store the provider message identifier after each successful call so you can trace what actually went out.

What should happen after an agent receives a bounce or complaint?

Write the address to a suppression list that every sending path checks before it calls the API, and keep that list in step with the provider's own suppression data. Do not rely on the provider alone, because an agent may use more than one sending service or channel. A hard bounce should stop all further email to that address, including through other channels that share the same contact record, until a person confirms that the address is valid.

Which tools suit agents that send notifications on several channels?

Novu and Knock are built around workflows that choose between email, SMS, push and in-app messages for the same user. Novu's Free plan includes 10,000 workflow runs per month, and its Pro plan is $30 per month for 30,000 or more runs. Knock's Developer plan is $0 with 10K messages included, and its Starter plan is $250 per month with 50K messages included, then $0.005 per message. Budget these tools by workflow runs or messages, not by the number of emails.