For SaaS platforms sending email on behalf of their own customers
Your customers are a first-class resource in the API, not an afterthought bolted onto SES.
Resend's developer experience, with your customers as a first-class resource in the API — on Amazon SES.
Why platforms with customers of their own pick Reach
Your customer is a tenant, not a string you invented
Amazon SES Tenants (2025) isolates metrics and reputation policy — it does not give you an API a developer wants to use, per-tenant suppression, domain onboarding, per-tenant limits, keys or analytics. Reach builds all of that on top, so `POST /v1/tenants` is one call, not a project.
White-label surfaces your customer can see
Domain verification and per-tenant analytics, rendered for your customer — not just for you. Neither SES nor Resend offers this today.
Priced to switch to, not to justify
$0.50 per 1,000 emails. See the comparison below.
Developer experience — table stakes, matched
A Bearer key, a JSON body, a 202 and a status you can poll. Nothing to relearn if you already know Resend's API.
One call per customer, then send as them
The real shape of POST /v1/emails and POST /v1/tenants — every field shown is accepted, and nothing here is simplified for the page.
curl "https://api.tryreach.email/v1/tenants" \
-H "Authorization: Bearer $REACH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp",
"externalId": "cust_8f2e1a"
}'
# 201 Created — 200 instead if "cust_8f2e1a" already has a tenant
# (posting the same externalId twice is safe: you get the existing
# tenant back unchanged, not a duplicate or an error)
{
"id": "tn_9f8c2a1d",
"name": "Acme Corp",
"externalId": "cust_8f2e1a",
"status": "provisioning",
"limits": { "perDay": 1000, "perHour": 200, "burstPerSecond": 5 },
"provider": { "mapped": false, "syncedAt": null, "syncError": null },
"createdAt": "2026-09-29T12:00:00.000Z",
"updatedAt": "2026-09-29T12:00:00.000Z"
}curl "https://api.tryreach.email/v1/emails" \
-H "Authorization: Bearer $REACH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tenant": "tn_9f8c2a1d",
"from": "billing@acme.com",
"to": "customer@example.com",
"subject": "Your invoice is ready",
"html": "<p>Hi — your invoice for September is attached.</p>"
}'
# 202 Accepted
{
"id": "em_5b1e7c40",
"status": "queued",
"tenant": "tn_9f8c2a1d",
"acceptedAt": "2026-09-29T12:00:00.000Z"
}That is the short version. The full quickstart covers domains, status, signed webhooks and OAuth for platforms, with a downloadable Postman collection.
Pricing
One number. Reach runs on Amazon SES underneath for delivery and reputation isolation — that is an architecture choice, not the price.
Reach
$0.50/ 1,000 emails
Our price.
Resend
~$0.90/ 1,000 emails
Their published marginal rate.
Create a tenant, verify a domain, send.
Sign in with Google to create your organisation and get your first API key.
Get an API key