Resend Email API Review (2026)
Resend is a modern email API built for developers. Send transactional and marketing email with a clean API, React Email templates, and competitive pricing. Founded by the creator of React Email — the DX reflects that pedigree.
What You Get
| Feature | Details |
|---|---|
| API | REST + SDKs (Node, Python, Ruby, Go, etc.) |
| React Email | Build email templates as React components |
| Audiences | Marketing email to subscriber lists |
| Webhooks | Delivery, bounce, open, click events |
| Custom domains | Send from your domain |
| DKIM/SPF | Automated email authentication |
| Analytics | Opens, clicks, bounces, complaints |
| Batch sending | Send to multiple recipients efficiently |
| Idempotency | Prevent duplicate sends |
The Developer Experience
Send an Email (4 Lines)
import { Resend } from 'resend';
const resend = new Resend('re_123456789');
await resend.emails.send({
from: 'hello@yourdomain.com',
to: 'user@gmail.com',
subject: 'Welcome!',
html: '<p>Hello world</p>',
});
React Email Templates
The real power — build email templates as React components:
import { Html, Body, Container, Text, Button, Img } from '@react-email/components';
export function WelcomeEmail({ name, loginUrl }: { name: string; loginUrl: string }) {
return (
<Html>
<Body style={{ fontFamily: 'sans-serif', background: '#f6f6f6' }}>
<Container style={{ maxWidth: 600, margin: '0 auto', background: '#fff', padding: 32 }}>
<Img src="https://yourdomain.com/logo.png" width={120} />
<Text style={{ fontSize: 20 }}>Welcome, {name}!</Text>
<Text>Your account is ready. Click below to get started.</Text>
<Button
href={loginUrl}
style={{ background: '#000', color: '#fff', padding: '12px 24px', borderRadius: 6 }}
>
Log In
</Button>
</Container>
</Body>
</Html>
);
}
await resend.emails.send({
from: 'hello@yourdomain.com',
to: 'user@gmail.com',
subject: 'Welcome!',
react: WelcomeEmail({ name: 'John', loginUrl: 'https://app.example.com' }),
});
Why this matters:
- Type-safe. TypeScript catches errors in templates at compile time.
- Testable. Render components in Storybook or a preview page.
- Version-controlled. Templates live in your codebase, not a SaaS dashboard.
- Reusable. Share components across email templates (headers, footers, buttons).
- No HTML hell. React Email handles the notorious email HTML compatibility issues.
Preview Emails Locally
npx react-email dev
Opens a browser preview of all your email templates. Hot reload as you edit. See exactly what recipients will see — without sending test emails.
What's Great
Modern API Design
The SDK is clean, typed, and predictable:
// Send with attachments
await resend.emails.send({
from: 'hello@example.com',
to: 'user@gmail.com',
subject: 'Your Invoice',
react: InvoiceEmail({ amount: 99.99 }),
attachments: [{ filename: 'invoice.pdf', content: pdfBuffer }],
});
// Batch send
await resend.batch.send([
{ from: '...', to: 'user1@gmail.com', subject: '...', react: Email1() },
{ from: '...', to: 'user2@gmail.com', subject: '...', react: Email2() },
]);
// Schedule
await resend.emails.send({
from: '...', to: '...', subject: '...',
react: Email(),
scheduledAt: '2026-03-15T09:00:00Z',
});
Audiences (Marketing Email)
Not just transactional — send marketing emails too:
// Add to audience
await resend.contacts.create({
audienceId: 'aud_123',
email: 'subscriber@gmail.com',
firstName: 'John',
});
// Send to audience
await resend.emails.send({
from: 'newsletter@example.com',
to: 'aud_123', // audience ID
subject: 'Monthly Newsletter',
react: NewsletterEmail(),
});
One platform for transactional (welcome emails, receipts) and marketing (newsletters, announcements).
Webhooks
Track everything:
// Your webhook endpoint receives:
{
"type": "email.delivered",
"data": {
"email_id": "em_123",
"to": "user@gmail.com",
"subject": "Welcome!",
"delivered_at": "2026-03-10T12:00:00Z"
}
}
Events: email.sent, email.delivered, email.opened, email.clicked, email.bounced, email.complained.
Domain Setup
- Add your domain in the Resend dashboard
- Add 3 DNS records (DKIM, SPF, MX)
- Verify → start sending from your domain
Clear instructions, fast verification, and Resend handles DKIM key rotation.
Where It Falls Short
Deliverability Is Good, Not Best
Resend's deliverability is solid but not Postmark-level. Postmark's dedicated focus on transactional email and strict sender policies give it higher inbox placement rates. For most applications, Resend's deliverability is more than adequate.
Newer Platform
SendGrid has 15+ years of production use. Postmark has 10+. Resend is younger. While stable and reliable, the track record is shorter. For mission-critical email (banking, healthcare), some teams prefer proven providers.
Analytics Are Basic
Open rates, click rates, bounce rates — the essentials are covered. But compared to SendGrid's detailed analytics (geographic, device, engagement scoring), Resend's analytics are simpler.
No Drag-and-Drop Editor
Templates are code-only (React Email or raw HTML). Non-developers can't create or edit email templates without developer involvement. SendGrid and Mailchimp have visual editors.
Free Tier Is Small
3,000 emails/month. Enough for development and small projects. But a moderately active SaaS with 1,000 users sending 5 emails each will exceed the free tier quickly.
Pricing
| Plan | Emails/mo | Price |
|---|---|---|
| Free | 3,000 | $0 |
| Pro | 50,000 | $20/mo |
| Pro | 100,000 | $40/mo |
| Business | 150K+ | Custom |
| Dedicated IP | Add-on | $40/mo |
Competitive with SendGrid. Cheaper than Postmark at most tiers.
Resend vs Alternatives
| Resend | SendGrid | Postmark | Amazon SES | |
|---|---|---|---|---|
| DX | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ |
| React Email | ✅ | ❌ | ❌ | ❌ |
| Deliverability | Good | Good | Excellent | Good |
| Marketing | ✅ | ✅ | ❌ | ❌ |
| Price (50K/mo) | $20 | $20 | $50 | $5 |
| Analytics | Basic | Advanced | Good | Basic |
FAQ
Is Resend production-ready?
Yes. Stable, reliable, and used by thousands of production applications. The API has been stable with no breaking changes.
Can I use Resend without React Email?
Yes. Send HTML strings, plain text, or use any template engine. React Email is optional — it's just the best way to build email templates.
How does Resend handle bounces?
Bounced emails are flagged via webhooks. Hard bounces are suppressed automatically (won't send to that address again). You can manage the suppression list via API.
Is Resend GDPR compliant?
Yes. Resend processes data in accordance with GDPR. DPA (Data Processing Agreement) available.
Can I migrate from SendGrid to Resend?
Yes. Migration involves: updating SDK imports, adjusting API calls (similar structure), and optionally converting templates to React Email. 1-2 hours for most projects.
Bottom Line
Resend is the best email API for developers in 2026. React Email templates, clean SDK, and competitive pricing make it the default choice for new projects. The developer experience gap over SendGrid and Postmark is significant — especially for teams already using React/TypeScript.
Start with: The free tier (3,000 emails/month). Send your first email in 5 minutes. Build one React Email template. Preview it locally. If the DX clicks (it will), upgrade when you need higher volume.