Free
$0/ month
No credit card needed
For testing and tiny side-projects.
Start free- 3,000 emails / month
- 1 verified domain
- 1 team seat
- 1 webhook endpoint
One API for transactional email and broadcasts. Verify a domain, send your first email and follow every delivery from one dashboard.
3,000 emails a month free. No credit card needed.
Overview
A live view of your sending activity.
Sent (7d)
12,482
+18% vs last week
Delivered
99.2%
12,382 accepted by MX
Bounce rate
0.4%
auto-suppressed
Failed
18
all retry-safe
Sending volume
last 7 days
Domain health
View all →Recent activity
View all emails →How it works
This is the real dashboard, filled with sample data. Scroll through the steps; the window follows along.
Add your domain and SNDR generates the SPF, DKIM and DMARC records. Paste them into your DNS and each one turns green as it resolves.
Domains
Sending domains and their DNS state.
Verified domains
2 / 10
SPF
Verified
DKIM
Verified
DMARC
Verified
DNS records
Optional records for MTA-STS, TLS-RPT and BIMI are listed too. SNDR re-checks every domain daily.
Keys are scoped to send, read or both, and shown once. SNDR stores only a SHA-256 hash, so a database leak never exposes a working key.
API Keys
Manage the keys your applications use to send email.
API keys
3 / 10
Key created: production-api
Copy it now. SNDR stores only a SHA-256 hash, so it can't be shown again.
sndr_live_7Hq2mXv9KpR4tZcW1nB8sLdE3yJ0aF6u CopyPOST /v1/send, or use the SDK. The call returns 202 in milliseconds and the email appears in your log, then moves from queued to delivered.
Emails
Every message you've sent. Search, filter, and replay.
await sndr.emails.send({ from: 'Rkiza <auth@rkiza.sa>', to: 'ahmed@rkiza.sa', template_id: 'tpl_signin', variables: { code: '482913' }, });
webhook → email.delivered · 200 OK
Store subject and HTML once, with {{ variables }}. Your code sends a template id and the values; product can change the copy without a deploy.
Templates
Reusable email templates with merge tags and live preview.
Sign-in code
tpl_signin
Subject
Your sign-in code is {{ code }}
HTML
<h1>Hi {{ first_name }},</h1> <p>Your code for {{ app_name }} is</p> <p class="code">{{ code }}</p> <p>It expires in 10 minutes.</p>
From Rkiza · auth@rkiza.sa
Hi Ahmed,
Your code for Rkiza is
482913
It expires in 10 minutes.
Import contacts, put them in groups and send a broadcast. Unsubscribes, bounces and suppressions are respected automatically.
Broadcasts
Compose a marketing send to a contact group.
Broadcast
March product update
to Beta users · from updates@rkiza.sa
Recipients
2,400
Sent
2,400
Delivered
2,390
Bounced
10
Contacts
Every broadcast email carries a one-click List-Unsubscribe header.
Recipients
Subscribe an endpoint to delivered, bounced and failed events. Each request is HMAC-signed, and failures retry with backoff.
Webhooks
Realtime event delivery to your endpoints.
X-Sndr-Signature: t=1758620113,v1=5f0c2e9b1a7d…
Failed deliveries retry with exponential backoff, up to 12 attempts.
Domains
Sending domains and their DNS state.
Verified domains
2 / 10
SPF
Verified
DKIM
Verified
DMARC
Verified
DNS records
Optional records for MTA-STS, TLS-RPT and BIMI are listed too. SNDR re-checks every domain daily.
01 / 06·Verify your domain
Pricing
Prices in USD. Paddle bills you and adds any VAT or sales tax. Change or cancel your plan from the dashboard.
$0/ month
No credit card needed
For testing and tiny side-projects.
Start free$12/ month
Billed monthly
For startups shipping every week.
Choose Pro$75/ month
Billed monthly
Production at any scale.
Choose ScaleUnder the hood
SNDR runs its own relay servers and sends straight to the recipient's mail server. This is what sits between your request and the inbox.
Your app
SDK · REST
SNDR API
checks · render · DKIM sign
Relay pool
Recipient MX
SMTP · STARTTLS · port 25
Messages are built and DKIM-signed before they leave the API. Relay servers only ever see signed bytes, never your private key.
Mail to a given domain always leaves from the same source IP, so reputation with Gmail or Outlook builds in one place.
A relay that fails three times is benched for a minute. SNDR retries on another relay only if the first provably didn't send.
Hard bounces and unsubscribes go on your suppression list automatically, for To, CC and BCC alike.
Developers
/v1/sendscope: sendSend a transactional email, inline or from a template.
curl https://api.sndr.sh/v1/send \
-H "Authorization: Bearer $SNDR_API_KEY" \
-H "Idempotency-Key: signup-8f2k" \
-d '{
"from": "Rkiza <auth@rkiza.sa>",
"to": ["ahmed@rkiza.sa"],
"template_id": "tpl_7c1e9a04-2b3",
"variables": { "code": "482913" }
}'{
"id": "em_3f9a1c2e-7b4",
"from": "Rkiza <auth@rkiza.sa>",
"to": ["ahmed@rkiza.sa"],
"subject": "Your sign-in code is 482913",
"status": "queued",
"template_id": "tpl_7c1e9a04-2b3",
"created_at": "2026-09-23T10:15:13Z"
}Safe to retry
Idempotency-Key replays return the original result for 24 hours.
One error shape
Every error has a code, a message and a request id.
Scoped keys
Give each service send, read or both. Keys are hashed at rest.
Signed webhooks
HMAC-SHA256 with zero-downtime secret rotation.
FAQ
Billing questions are answered on the pricing page.
3,000 emails a month on the Free plan. No credit card needed. Upgrade when your volume grows.