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 Sendry'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 { Sendry } from 'sendry-sdk';

const sendry = new Sendry(process.env.SENDRY_API_KEY!);

// Send a single transactional email
await sendry.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 sendry.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 sendry.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.