Transactional email API with separate streams, inbound parsing and 45-day logs
Resend
Email API with no approval queue, React Email support; $35 for 100,000 emails

- Website
- resend.com
- Pricing
- Freemium
- Categories
- Listed
- Sep 2026
- Updated
- Oct 2026
Details about Resend
Short verdict: Resend is an email API from the makers of React Email, with 3,000 free emails a month, inbound email on every plan and no approval queue: once your domain verifies, you can email customers. It costs $35 for 100,000 emails a month, less than Mailgun or Postmark, but $20 at 10,000, where both charge $15. The gaps: account data is stored in the US whichever of its four sending regions you pick, logs last 30 days, there is no HIPAA option, and its webhook docs' example rejects valid webhooks. It suits developers who want a typed SDK, React templates and no approval wait, not teams that must keep data in the EU or need a BAA.
How we reviewed it: We did not create an account or send email through Resend. On 23 October 2026 we checked every stop of the pricing slider, read the docs, quota, security and Forge pages, installed the resend Node SDK, ran the docs' webhook verification code against a payload we signed, listed the local MCP server's tools with a placeholder key, and read the status page and its incident feed. Delivery can't be tested without sending, so claims about it are Resend's. Other services' prices come from our comparison of email APIs checked on 21 October 2026.
What Resend costs and requires
| Free plan | 3,000 emails a month and at most 100 a day, 3 domains, 1 webhook endpoint and 30 days of data; no overage and no time limit, per Resend. |
|---|---|
| 10,000 emails a month | $20 (Pro, 50,000 included). There is no plan between Free and Pro. |
| 100,000 emails a month | $35 (Pro, 100,000 tier). Scale costs $90 for the same 100,000. |
| 1,000,000 emails a month | $650 (Scale, 1,000,000 tier). |
| What counts as an email | Every To, CC and BCC recipient, every received email and every test email. Extra emails cost $0.90 to $0.46 per 1,000, only after you switch on pay-as-you-go. |
| Before you email customers | An account and a verified domain (DKIM and SPF records). No usage review and no sandbox, per Resend. |
| Sending regions | North Virginia, Ireland, São Paulo or Tokyo, chosen per domain. Account data is stored in the US either way. |
| SDKs and tools | Official libraries for Node.js, Python, PHP, Laravel, Ruby, Go, Java, Rust and .NET, an SMTP relay, a CLI, a hosted MCP server and agent plugins. |
| Billing | Monthly only, by card; annual contracts only on Enterprise. Registered nonprofits can apply for 50% off. Resend pricing |
What we found in the pricing, docs and status page
Pro with pay-as-you-go is the cheapest path up to 450,000 emails
Pro costs $20 for 50,000 emails or $35 for 100,000; Scale starts at $90 for the same 100,000, with the same $0.90 per 1,000 extra. Scale's extra $55 buys 1,000 domains instead of 10, 10 webhook endpoints instead of 5, a dedicated Slack channel and access to dedicated IPs.

Because Pro keeps that $0.90 rate, it stays cheaper past 100,000: at 200,000 emails it costs $35 + 100 × $0.90 = $125 against $160 on Scale, and the two meet at 450,000, at $350. Overage stays off until you switch on Transactional Overages, though; without it, a send past the quota fails with a 429 error, password resets included. It is also capped at five times the quota.
No approval queue, but nothing leaves without your domain
Resend says every account, free ones included, can email customers from sign-up: there is no sandbox like Amazon SES's and no manual review like Postmark's. You only need a domain with the DKIM and SPF records Resend generates, which the docs say often verify within 15 minutes but can take 72 hours. Until then, [email protected] only reaches your own address and test inboxes such as [email protected], which is all the Node.js quickstart needs.
The webhook docs' example rejects real webhooks
Webhooks are signed, retried for about 27 and a half hours and replayable; Free allows 1 endpoint, Pro 5 and Scale 10. The docs page on verifying them reads req.headers['svix-id'] in a Next.js route, but there headers is a Headers object, so that returns undefined. We signed a test payload with standardwebhooks, the library the SDK uses, and ran the example with Next.js 16.4.3 and resend 6.34.1: it rejected the valid webhook with "Missing required headers". With req.headers.get('svix-id') it passed, and a tampered body was still refused. Resend's inbound-forwarding guide already uses .get().
![Code sample from Resend's Verify Webhooks Requests docs page: a Next.js POST handler passes req.headers['svix-id'], req.headers['svix-timestamp'] and req.headers['svix-signature'] to resend.webhooks.verify and returns a 400 Invalid webhook response when verification throws](/resend-webhook-verify-docs.webp)
Four sending regions, one storage country
Each domain sends from North Virginia, Ireland, São Paulo or Tokyo, but the region only decides where mail leaves from: Resend stores all account data, logs included, in the United States, with EU transfers under Standard Contractual Clauses and the EU-U.S. Data Privacy Framework. Changing region means re-adding the domain. Resend holds a SOC 2 Type II report but cannot sign a HIPAA Business Associate Agreement, and keeps email content and logs for 30 days on every self-serve plan.
Limits in the fine print
10 API requests a second per team on every self-serve plan. A batch of up to 100 emails counts as one request but can't carry attachments.
Inbound mail uses the sending quota, including the free plan's 100 a day.
Dedicated IPs need Scale, $30 a month and more than 3,000 emails a day. Resend doesn't reveal the addresses, so you can't allowlist them.
Reliability and developer experience
100% on the status page, 25 incidents in its feed
The status page covers 30 days, and on 23 October 2026 every component read 100% uptime, email sending with 2 degraded days. Its public feed lists the last 25 incidents, back to 30 July: 1 critical, 3 major. Eight were posted only after they ended, including the critical one, an outage of the hosted MCP server on 11 September posted about four hours after it was fixed.
The one to weigh for password resets: on 15 September, broadcasts started after 15:05 UTC sat queued until 16:22 UTC, and the next day Resend added that clearing the backlog had held about 9,200 transactional emails for up to 25 minutes, none lost. The feed also shows intermittent 500 errors on API and SMTP sends on 8 August and contact webhooks delayed on seven days.

On 23 October Resend also announced Forge, which sends from IP blocks Resend owns instead of through a third-party provider. It is opt-in per domain with one CNAME record, skips domains with open or click tracking for now, and Resend says it halves the median time until the receiver accepts a message; we could not test that.
A small Node SDK with two dependencies
| Package | resend 6.34.1, released 16 October 2026, MIT license; 43 stable releases so far in 2026 |
|---|---|
| Size | 389 KB unpacked, 7 files; our install added 5 packages and 960 KB in about 1.3 seconds |
| Dependencies | postal-mime, which parses received emails, and standardwebhooks, which checks webhook signatures; React Email's renderer is an optional peer |
| Requirements | Node.js 20 or later; TypeScript types included |
| Downloads | 14,898,985 in the week of 28 September to 4 October 2026, the last week with complete npm data |
It returns { data, error } instead of throwing, renders a React Email component passed as react, takes idempotency keys kept for 24 hours, and schedules emails up to 30 days ahead.
A hosted MCP server and agent plugins
The remote MCP server at mcp.resend.com/mcp signs in with OAuth, so no API key sits in a config file; the same code ships as the resend-mcp npm package. Version 2.27.1 listed 136 tools for us, 56 marked read-only, including tools for Inboxes, shared mailboxes for people and agents announced on 22 October 2026. Official plugins add it to Claude Code, Cursor and Codex. For a local agent that only sends, use a key with sending access only.
What you still have to set up
Domain authentication. DKIM and SPF records for each sending subdomain, then DMARC, plus a CNAME per domain if you opt in to Forge.
Webhook handlers. Verify signatures with
req.headers.get(), deduplicate on thesvix-idheader because retries repeat it, and drop bounced and complained addresses from your own records.Quota protection. Switch on Transactional Overages, or watch the
x-resend-monthly-quotaheader, before a busy month blocks password resets.Longer history. Store webhook events yourself past 30 days, for example with Resend's open-source webhook ingester.
Templates. Write them in React Email, which the SDK renders for you, use Resend's hosted templates, or send HTML from Maizzle.
Pros and cons
Pros
No usage review or sandbox: a verified domain is the only gate before customer email.
$35 for 100,000 emails and $650 for 1,000,000, less than Mailgun and Postmark at both volumes.
Inbound email, scheduling and signed webhooks on every plan, including Free.
A Node SDK with two dependencies, bundled types and direct React Email support.
A hosted MCP server with OAuth sign-in and official agent plugins.
Cons
$20 at 10,000 emails a month, where Mailgun, Postmark and Mailtrap charge $15.
Account data stays in the US whatever the sending region; no HIPAA.
30 days of logs and message history on every self-serve plan.
The example on the webhook verification docs page fails as written.
25 incidents since 30 July, 8 posted only after they ended.
How Resend compares
Monthly prices for transactional email on the cheapest plan that covers each volume:
| Service | 10,000 | 100,000 | 1,000,000 |
|---|---|---|---|
| Resend | $20 | $35 | $650 |
| Amazon SES (Essentials, the default) | $1.64 | $16.38 | $163.84 |
| Mailtrap | $15 | $30 | $750 |
| Mailgun | $15 | $75 | $700 |
| Postmark | $15 | $115 | $775 |
Mailgun hosts each domain in the US or the EU on every plan, but asks for SMS verification and a card first. Choose it if data must stay in the EU.
Amazon SES charges the least per email in 29 regions, 5 in the EU, but each region starts in a sandbox with a manual review, and events go to other AWS services, not webhooks. Choose it when price at volume decides.
Postmark keeps 45 days of message history, but reviews accounts by hand and has no EU hosting. Choose it when history matters more than price.
At 100,000 emails, Mailtrap ($30) and SendGrid ($34.95) cost slightly less. See all email tools.
Who should use Resend
Use Resend if you want to email customers as soon as your DNS records verify, write templates in React, receive mail through the same API and pay $35 for 100,000 emails. Choose Mailgun if data must stay in the EU and Amazon SES if price at millions of emails decides, and look elsewhere for HIPAA or more than 30 days of history.
FAQ
Is Resend free?
Yes, up to 3,000 emails a month and 100 a day, with no time limit. The free plan includes inbound email, 3 domains and 1 webhook endpoint. Paid plans start at $20 a month for 50,000 emails; there is no plan in between.
How much does Resend cost for 100,000 emails a month?
$35 a month on Pro. Scale costs $90 for the same 100,000 emails and adds 1,000 domains, 10 webhook endpoints and a Slack channel. Above 100,000, Pro with pay-as-you-go at $0.90 per 1,000 stays cheaper than Scale up to 450,000 emails. Prices checked 23 October 2026.
Does Resend store data in the EU?
No. You can send from Ireland, but Resend stores all account data, including email metadata and logs, in the United States whichever sending region you choose. EU transfers are covered by Standard Contractual Clauses in its pre-signed DPA and by the EU-U.S. Data Privacy Framework.
Does Resend need to approve my account before I can send?
No. Resend has no sandbox and no usage review. You need a verified domain to email anyone but yourself: until then, the [email protected] test sender only reaches the address you signed up with and Resend's test addresses.
Is Resend HIPAA compliant?
No. Resend says it is not HIPAA compliant and cannot sign a Business Associate Agreement; its enterprise page calls HIPAA in progress. It holds a SOC 2 Type II report but no ISO 27001 certificate.


