Quickstart
Get Ritto Mail and send your first email in a few minutes.
Ritto Mail runs the same on Ritto Mail Cloud and on your own infrastructure — same dashboard, same API. Pick your deployment below; the tabs remember your choice across the docs.
1. Get Ritto Mail
Sign up at app.ritto.email. That's it — no
infrastructure, no AWS account. The dashboard is at
app.ritto.email and the API at
api.ritto.email.
2. Verify a sending domain
Ritto Mail only sends from domains you have verified.
- In the dashboard, go to Domains and add a domain you control
(e.g.
acme.dev). - Add the DNS records it shows you — a DKIM TXT record plus MAIL FROM records — at your DNS provider.
- Click Verify DNS records. Ritto Mail also resolves the records live, so you can see immediately which ones are still missing.
3. Create an API key
Go to API keys and create one. The rm_ token is shown once — copy it
now. (Keys created before the rename to Ritto Mail start with ms_ and keep
working.) Keys can be scoped to full access or sending-only, and optionally pinned
to a single domain.
4. Send an email
Your API base URL:
https://api.ritto.email
With curl:
curl -X POST https://api.ritto.email/emails \
-H "Authorization: Bearer rm_..." \
-H "Content-Type: application/json" \
-d '{
"from": "Acme <onboarding@acme.dev>",
"to": ["delivered@example.com"],
"subject": "Hello from Ritto Mail",
"html": "<strong>It works!</strong>"
}'Or with the official Resend Node SDK (npm install resend) — Ritto Mail has
no SDK of its own; its API is wire-compatible with Resend's, so Resend's SDKs
work unchanged once pointed at Ritto Mail:
// RESEND_BASE_URL=https://api.ritto.email (read by the SDK)
import { Resend } from "resend";
const resend = new Resend("rm_...");
const { data, error } = await resend.emails.send({
from: "Acme <onboarding@acme.dev>",
to: "delivered@example.com",
subject: "Hello from Ritto Mail",
html: "<strong>It works!</strong>",
});
if (error) console.error(error.name, error.message);
else console.log("sent", data.id);Both return { "id": "..." }. Watch the email move from queued to
delivered on the Emails page.
On a self-hosted instance, delivery events (delivered, bounced, complained)
require the SES event pipeline described in
SELF_HOSTING.md.
On Cloud they flow automatically.
Already on Resend? Point the official Resend SDK at Ritto Mail instead — set
RESEND_BASE_URL to your base URL and use your rm_ key. The wire format is
identical.
Next steps
- Concepts for contacts, segments, topics, and broadcasts.
- SDKs for using the official Resend SDKs with Ritto Mail.
- API reference for every endpoint.
- Self-hosting for running your own instance.