Quickstart
Send your first email through Retransmit.
Get an API key
Create an API key from the dashboard. Keys look like rt_... and are shown once —
store the value in your app’s environment:
RETRANSMIT_API_KEY=rt_xxxxxxxxxxxxxxxxAdd and verify a sending domain
You can only send from domains registered and verified on your account. Add your domain in the dashboard and publish the DNS records it gives you (SPF / DKIM). See Domains for details.
Sending from an unregistered domain returns 403 domain_not_found; from an
unverified one, 403 domain_not_verified.
Install the SDK (optional)
For Node.js / TypeScript apps, the official
retransmit.dev package wraps
the API with typed methods and { data, error } results. It has zero
dependencies and works on Node 18+ and edge runtimes.
npm install retransmit.devPrefer plain HTTP? Every example below also shows the equivalent curl —
the API works from any language.
Send an email
Node.js
import { Retransmit } from "retransmit.dev";
const retransmit = new Retransmit(process.env.RETRANSMIT_API_KEY);
const { data, error } = await retransmit.emails.send({
from: "Acme <hello@yourdomain.com>",
to: "user@example.com",
subject: "Welcome!",
html: "<h1>Welcome!</h1>",
});
if (error) console.error(error.code, error.message);
else console.log(data.id); // em_xxxxxxxxxxxxResponse (202 Accepted — the email is queued and sent moments later by the
worker, which respects provider rate limits and retries transient failures):
{
"id": "em_xxxxxxxxxxxx",
"status": "queued",
"created_at": "2026-09-01T12:00:00.000Z"
}Sending thousands at once? Send Batch queues up
to 10,000 emails in a single request — retransmit.batch.send([...]) in the SDK.
Check delivery status
Every send returns an email id. Fetch it at any time to see its status and
event history:
Node.js
const { data } = await retransmit.emails.get("em_xxxxxxxxxxxx");
console.log(data?.status); // "delivered"For push-based delivery updates (bounces, complaints, deliveries), set up Webhooks.