All guides
Migrate from Resend
Switch from Resend to SendPigeon in 5 minutes
Migration steps
1. Update your API key
Replace your Resend API key with SendPigeon. Both use environment variables.
Before (Resend)
RESEND_API_KEY=re_123abc...After (SendPigeon)
SENDPIGEON_API_KEY=sk_live_abc123...2. Update imports
Change the import statement to use SendPigeon SDK.
Before (Resend)
import { Resend } from "resend";
const resend = new Resend(process.env.RESEND_API_KEY);After (SendPigeon)
import { SendPigeon } from "sendpigeon";
const client = new SendPigeon(process.env.SENDPIGEON_API_KEY);3. Update send calls
SendPigeon uses the same fields. The main difference is method style.
Before (Resend)
await resend.emails.send({
from: "hello@yourdomain.com",
to: "user@example.com",
subject: "Hello",
html: "<p>Welcome!</p>",
});After (SendPigeon)
await client.send({
from: "hello@yourdomain.com",
to: "user@example.com",
subject: "Hello",
html: "<p>Welcome!</p>",
});4. Update webhook handlers (optional)
If using webhooks, update the event types. Structure is similar.
Before (Resend)
// Resend webhook events
type: "email.sent" | "email.delivered" | "email.bounced"After (SendPigeon)
// SendPigeon webhook events
type: "email.sent" | "email.delivered" | "email.bounced" | "email.complained"Ready to switch?
Get started with 1,000 free emails per month.
Start for free