Feature deep dive

Email API

A clean REST API for transactional email. Send single messages or batches, schedule future delivery, and track every email through its lifecycle — all with scoped API keys and queue-backed reliability.

Why teams choose Sendr's API

  • Queue-backed delivery with sub-second median response times.
  • Scoped API key authentication with three permission tiers.
  • Batch endpoint for high-throughput sending — up to 100 per call.
  • Template system with variable substitution and React Email support.
  • Scheduled sends with cancellation before delivery.

Capabilities

  • Single and batch sending — deliver one email or up to 100 per request.
  • Scheduled delivery — queue emails for future send with a single parameter.
  • Template support — reference saved templates with variable substitution.
  • Attachments — Base64-encoded files with a 10 MB total limit per request.
  • Full addressing — To, CC, BCC, Reply-To, custom headers, and tags.
  • Status visibility — query email status and event history by ID.
  • Cancel queued emails before they're sent.
  • Suppression filtering and domain verification enforced automatically.

Quick start

send.tsTypeScript
import { Sendr } from 'sendr';

const sendr = new Sendr(process.env.SENDR_API_KEY!);

// Send a single transactional email
await sendr.emails.send({
  from: 'noreply@yourapp.com',
  to: 'user@example.com',
  subject: 'Your password was changed',
  html: '<p>Your password was updated. If this wasn't you, contact support.</p>',
});

// Batch send — up to 100 per request
await sendr.emails.sendBatch([
  { from: 'hello@yourapp.com', to: 'alice@example.com', subject: 'Welcome, Alice!', html: '...' },
  { from: 'hello@yourapp.com', to: 'bob@example.com',   subject: 'Welcome, Bob!',   html: '...' },
]);

// Scheduled send
await sendr.emails.send({
  from: 'noreply@yourapp.com',
  to: 'user@example.com',
  subject: 'Your trial ends soon',
  html: '<p>Upgrade now to keep your data.</p>',
  scheduled_at: new Date('2025-09-01T09:00:00Z').toISOString(),
});

Need SMTP or inbound support too?

Compare adjacent capabilities in the same delivery stack.