DocsMigrate from Resend

Migrate from Resend

Mailhuset and Resend are close cousins (same shape of API, same domain-auth model), so switching is quick.

1. Verify your sending domain

Add your domain under Domains and publish the SPF/DKIM records (same idea as Resend's domain verification). See Verify a sending domain. Run both providers in parallel while you cut over.

2. Swap the client

The request bodies are nearly identical. Differences to know:

ResendMailhuset
POST /emails, Authorization: Bearer re_…POST /v1/email, Authorization: Bearer mh_…
from, to, subject, html, textsame field names
mh.emails.send({...}) (SDK)mh.emails.send({...}), same shape
import { Mailhuset } from "mailhuset";
const mh = new Mailhuset(process.env.MAILHUSET_API_KEY);

await mh.emails.send({
  from: "Acme <hello@yourdomain.com>",
  to: "a@example.com",
  subject: "Hi",
  html: "<p>Hello</p>",
});

If you used Resend's SDK, our Node & Python SDKs expose the same emails.send / get / list surface, so most code changes are just the import and the key.

3. Templates, webhooks, audiences

4. Cut over

Verify sends and events in Activity, then move traffic over: ramp gradually rather than switching all volume at once, to keep your domain reputation healthy (deliverability).

Need a hand? Email support@mailhuset.com.


Need help? Email support@mailhuset.com.