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