resend
Transactional email API with single/batch sending, inbound email handling, templates, and webhook event tracking.
- Supports single and batch email sends with idempotency keys to prevent duplicates on retry; batch mode is atomic but lacks attachment and scheduling support
- Includes webhook verification, inbound email receiving with separate body retrieval, and template management with variable substitution
- Node.js SDK returns
{ data, error }tuples instead of throwing exceptions; always check error explicitly - Covers 8+ language SDKs (Node.js, Python, Go, Ruby, PHP, Rust, Java, .NET) with minimum version requirements for full functionality
- Critical gotchas documented: webhook payloads contain metadata only, template variables are case-sensitive, batch doesn't support attachments, and MX record priority matters for inbound routing
Resend
Quick Send — Node.js
import { Resend } from 'resend';
const resend = new Resend(process.env.RESEND_API_KEY);
const { data, error } = await resend.emails.send(
{
from: 'Acme <onboarding@resend.dev>',
to: ['delivered@resend.dev'],
subject: 'Hello World',
html: '<p>Email body here</p>',
},
{ idempotencyKey: `welcome-email/${userId}` }
);
More from resend/resend-skills
agent-email-inbox
Use when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted inbound email. Always use this skill when the user wants to receive emails and act on them programmatically, even if they don't mention "agent" — the skill contains critical security patterns (sender allowlists, content filtering, sandboxed processing) that prevent untrusted email from controlling your system.
2.6Kemail-best-practices
Use when building email features, emails going to spam, high bounce rates, setting up SPF/DKIM/DMARC authentication, implementing email capture, ensuring compliance (CAN-SPAM, GDPR, CASL), handling webhooks, retry logic, or deciding transactional vs marketing.
2.1Kresend-cli
>
2.1Kreact-email
Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend. Covers welcome emails, password resets, notifications, order confirmations, newsletters, transactional emails, and the embeddable email editor component.
2.0Ksend-email
Use when sending transactional emails (welcome messages, order confirmations, password resets, receipts), notifications, or bulk emails via Resend API.
466resend-inbound
Use when receiving emails with Resend - setting up inbound domains, processing email.received webhooks, retrieving email content/attachments, or forwarding received emails.
5