The problem isn’t the API. It’s the map.
Transactional email is personal data by definition. The recipient address alone identifies someone, and the body usually carries more — an order, an appointment, a password reset. Under the GDPR, handing that to a processor outside the EEA is a restricted transfer: you need a lawful transfer mechanism, and since Schrems II you also need a documented assessment of whether that mechanism holds up against the destination country’s surveillance law.
None of that is impossible. It’s just work you have to do, revisit, and defend — for every US-based processor in your stack. Plenty of European teams decide that for something as ordinary as sending a receipt, the cheaper answer is not to make the transfer at all. That is the entire premise of eusend.
What “European” means here, precisely
Vague residency claims are worth very little, so here is the actual map. Every component that touches your email — the API that accepts it, the queue that holds it, the mail servers that deliver it, the database that stores its events — runs inside the EU on European providers.
| Sending infrastructure | Mail servers we operate ourselves, Falkenstein (Germany) |
| API hosting | Nuremberg (Germany) |
| Database & delivery events | Frankfurt (Germany) |
| Company | A Norwegian entity, inside the EEA and under the GDPR |
| The honest caveat | The marketing site and dashboard front-end are served from a US CDN, and DNS and bot checks run through Cloudflare. Neither handles message content or recipients. The complete list is on our sub-processors page — we would rather you read it than take a slogan at face value. |
We run the mail stack, not a wrapper around someone else’s
A lot of email APIs are a pleasant interface over another provider’s sending service. That works until delivery goes wrong, at which point the answer to “why did this defer?” is a support ticket to a company you don’t have a relationship with.
We operate our own MTA infrastructure. It’s more work, and it makes deliverability our problem rather than something we’ve outsourced — but it means we can see the SMTP conversation with the receiving server, the exact reason a message deferred, and the reputation of each egress address, and act on it. It’s also what makes EU-only delivery a fact about our architecture rather than a setting we hope an upstream honors.
The deliverability page describes the safeguards in engineering terms: required DKIM before a domain can send, automatic suppression of hard bounces and complaints, a ramping daily ceiling for new senders, and reputation thresholds that throttle or suspend an account before its neighbours pay for it.
What you keep when you switch
The reason a migration is realistic is that we didn’t reinvent the surface. Our Node SDK mirrors Resend’s field for field — same method names, same { data, error } return shape, and react for React Email components carries over untouched.
- import { Resend } from 'resend'
+ import { Eusend } from '@eusend_dev/sdk'
- const client = new Resend(process.env.RESEND_API_KEY)
+ const client = new Eusend(process.env.EUSEND_API_KEY)
const { data, error } = await client.emails.send({
from: '[email protected]',
to: '[email protected]',
subject: 'Your order is confirmed',
react: <OrderConfirmation order={order} />,
})- React Email works as-is. Pass the element; the SDK renders it locally with
@react-email/renderbefore POSTing, exactly as you’re used to. Your templates don’t change. - Tags, attachments, scheduling, batch. All present.
tagsfollow the message into the delivery log and every webhook, so log filtering and event routing survive the move. - Error handling carries over. Errors are values with stable machine-readable codes, not exceptions you have to string-match.
- SMTP too, if you need it. Anything already speaking SMTP points at
smtp.eusend.devwith no code change at all.
What actually takes time
Being straight about this is more useful than promising five minutes:
- DNS. You publish a new DKIM record and adjust SPF for your sending domain. Propagation is the slow part, and nobody can do it for you.
- Reputation is per-domain, not per-provider. A new sending path starts with a conservative daily ceiling that ramps as you demonstrate healthy sending. If you send serious volume, move it over gradually — the warm-up guide covers the schedule.
- Suppression lists don’t transfer themselves. Export the addresses that bounced or complained on your old provider and import them, or you will re-learn each one the expensive way.
Most of the code part is mechanical, which is why we ship a migration prompt that hands it to Claude or Cursor — grounded in our real API reference so the agent doesn’t invent fields, and instructed to report the DNS steps it can’t perform itself.
Common questions
What is the best European alternative to Resend?
eusend is a transactional email API built specifically for European teams. Email content, recipients, and delivery events are processed and stored in EU data centres, and mail is delivered from mail servers eusend operates itself in Germany rather than being forwarded to a third-party relay. Its Node SDK mirrors Resend’s field for field, so migrating is close to a drop-in swap.
Is eusend a drop-in replacement for Resend?
For most projects, close to it. The Node SDK mirrors Resend’s surface: emails.send takes the same fields, including react for React Email components and tags, and returns the same { data, error } shape, so existing error handling carries over. The practical work is swapping the package, renaming the API key environment variable, and publishing new DNS records for your sending domain.
Why does it matter where a transactional email provider is based?
Transactional email carries personal data — at minimum the recipient address, usually more in the body. Under the GDPR, sending that data to a provider outside the EEA is a restricted transfer that needs a lawful transfer mechanism and, in practice, a documented transfer impact assessment. Keeping processing inside the EU removes that step from your compliance work rather than papering over it.
Does eusend run its own mail servers?
Yes. eusend operates its own MTA infrastructure in the EU instead of forwarding API requests to another provider’s sending service. That means deliverability is engineered rather than inherited — the SMTP conversation with the receiving server, the reason a message deferred, and the reputation of each egress address are all visible to us.
How much does eusend cost compared to Resend?
eusend has a free tier of 3,000 emails a month, then Lite at €15 for 50,000, Starter at €29 for 100,000, Pro at €99 for 600,000, and Scale at €279 for 2,000,000, with per-thousand overage pricing above each tier. Current numbers are on the pricing page.
Every account gets test keys that run the full pipeline — accepted, logged, full webhook lifecycle — without delivering. Build the integration, confirm it behaves, then verify a domain and switch a key.
Create a free account