Test mode
Test keys run everything but never deliver. Simulation addresses produce bounces and complaints on demand.
Transactional email and newsletters via API or SMTP. Resend-compatible, delivered from our own servers in Falkenstein, with a DPA from day one.
3,000 emails a month free · no credit card

Servers, database and backups at Hetzner. No third-country transfer.
Same endpoints, SDKs and webhook signatures. Switch in one line.
In force from signup. No negotiation, no paperwork.
Our own mail servers, separate IP pools for transactional mail and newsletters.
A REST API you already know: official SDKs, idempotency, webhooks and live logs. No new dependency.
Read the documentation// npm install resend · RESEND_BASE_URL=https://api.ridu.ai
import { Resend } from "resend";
const ridu = new Resend("rd_live_…");
await ridu.emails.send({
from: "Nordlicht <hallo@mail.nordlicht.de>",
to: "lisa@example.com",
subject: "Hallo von ridu",
html: "<p>Es funktioniert!</p>",
});# pip install resend
import resend
resend.api_key = "rd_live_…"
resend.api_url = "https://api.ridu.ai"
resend.Emails.send({
"from": "Nordlicht <hallo@mail.nordlicht.de>",
"to": "lisa@example.com",
"subject": "Hallo von ridu",
"html": "<p>Es funktioniert!</p>",
})curl -X POST https://api.ridu.ai/emails \
-H "Authorization: Bearer rd_live_…" \
-H "Content-Type: application/json" \
-d '{
"from": "Nordlicht <hallo@mail.nordlicht.de>",
"to": "lisa@example.com",
"subject": "Hallo von ridu",
"html": "<p>Es funktioniert!</p>"
}'Host: smtp.ridu.ai
Port: 465 (TLS) or 587 (STARTTLS)
User: ridu
Password: rd_live_…And nothing that collects data you don't need.
Test keys run everything but never deliver. Simulation addresses produce bounces and complaints on demand.
Every event to your server in real time, Svix-compatible signatures, with retries and a log.
DKIM via TXT, return path via CNAME. ridu checks live and tells you when everything is right.
Status per recipient, server response, preview and headers. Filter, search, copy as curl.
Double opt-in, topics and one-click unsubscribe per RFC 8058. Every consent is on record.
WordPress, Shopware, CRM: enter host, port and your API key as password. Done.
Everything your data protection officer wants to know, at a glance. And as an agreement you have right away.
Every email is authenticated with SPF, DKIM and DMARC. New IPs are warmed up carefully, and senders of spam are paused before they hurt anyone else.
Authentication-Results: mx.google.com; dkim=pass header.i=@nordlicht.de header.s=ridu-6fe0; spf=pass smtp.mailfrom=send.nordlicht.de; dmarc=pass (p=REJECT) header.from=nordlicht.de Received: from out1.ridu.ai (out1.ridu.ai [167.233.127.217]) by mx.google.com with ESMTPS (version=TLS1_3) List-Unsubscribe-Post: List-Unsubscribe=One-Click From: Nordlicht <hallo@nordlicht.de>
Your integration stays as it is. Swap the API key, set the base URL and verify your domain with ridu once.
# .env
- RESEND_API_KEY=re_8sJ2…+ RESEND_API_KEY=rd_live_Gq7v…+ RESEND_BASE_URL=https://api.ridu.ai
// app.ts – unchanged
await resend.emails.send({ from, to, subject, html });
Contacts and newsletters included. When the quota is reached, sending pauses – no surprise bill.
Free
0 €/ month
no credit card
Start for freeStarter
€15/ month
Final price, no VAT (§ 19 UStG)
Choose StarterProPopular
€39/ month
Final price, no VAT (§ 19 UStG)
Choose ProScale
€99/ month
Final price, no VAT (§ 19 UStG)
Choose ScaleFinal prices: as a small business under § 19 UStG we charge no VAT. Cancel monthly. More volume, dedicated IPs or a custom DPA? Write to hallo@ridu.ai.
Anything else? Write to hallo@ridu.ai – a person will reply.
Only on Hetzner Online GmbH servers in Falkenstein, Germany – backups included. No US provider processes data in the sending path.
Yes – and you have it right away. The Art. 28 GDPR agreement is concluded at signup; version and time are shown in the dashboard.
Clean IPs with matching reverse DNS, SPF, DKIM, DMARC, MTA-STS, separate pools and automatic suppression take care of that. Your list and content do the rest – the dashboard shows bounce and complaint rates.
Yes. Set a new API key and base URL and verify your domain once at ridu. Endpoints, fields, errors and webhook signatures stay the same.
Sending pauses and you're notified – no surprise bill. Upgrades apply at once.
Monthly in the dashboard, no minimum term. Export your data as JSON first if you like.
Start free, send within five minutes, switch any time.