Skip to Content
Quickstart

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_xxxxxxxxxxxxxxxx

Add 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.dev

Prefer plain HTTP? Every example below also shows the equivalent curl — the API works from any language.

Send an email

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_xxxxxxxxxxxx

Response (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:

const { data } = await retransmit.emails.get("em_xxxxxxxxxxxx"); console.log(data?.status); // "delivered"

For push-based delivery updates (bounces, complaints, deliveries), set up Webhooks.

Last updated on