Migrating from Resend?

Move to eusend in minutes

eusend's SDK mirrors Resend's field-for-field, so switching is a near drop-in — for most projects it's an import, a client name, and an API key. Do it by hand from the reference below, or, if you use an AI coding agent, let it do the swap for you.

Coming from somewhere else? There's a step-by-step guide for Postmark, SendGrid, Mailgun, and AWS SES.

The change, by hand

This is the whole migration for a typical send. The call signature is identical — only the import, the client name, and the API key differ. Full details are in the documentation.

Before · Resend
import { Resend } from 'resend'

const resend = new Resend(process.env.RESEND_API_KEY)

await resend.emails.send({
  from: 'Acme <hello@acme.com>',
  to: 'user@example.com',
  subject: 'Welcome',
  html: '<p>Thanks for signing up.</p>',
})
After · eusend
import { Eusend } from '@eusend_dev/sdk'

const eusend = new Eusend(process.env.EUSEND_API_KEY)

await eusend.emails.send({
  from: 'Acme <hello@acme.com>',
  to: 'user@example.com',
  subject: 'Welcome',
  html: '<p>Thanks for signing up.</p>',
})

Or let an AI agent do it

Optional — only if that's how you work. Copy the prompt and paste it into Cursor, Claude Code, or any LLM agent running in your repo. It grounds itself in our live llms.txt so it works against the current API, performs the swap across your codebase, and reports what it changed.

Two steps you do yourself

However you migrate the code, these need you in the dashboard — and skipping them is the usual reason a migration looks done yet nothing sends:

Need a hand, or migrating something bigger?

Email support@eusend.dev — happy to help you move over. Full API details live in the documentation.