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:
| Resend | Mailhuset |
|---|---|
POST /emails, Authorization: Bearer re_… | POST /v1/email, Authorization: Bearer mh_… |
from, to, subject, html, text | same 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
- Re-create templates in Templates (guide).
- Re-add webhook endpoints and map events (guide).
- Re-create audiences as contact lists for broadcasts.
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.