Sendbound
Email API

One API for every email you'll ever send

A single REST endpoint and TypeScript SDK handles transactional, marketing, and onboarding emails — with delivery guarantees, webhook events, and a 23ms average latency.

send.ts
invoice.tsx
1import { Sendbound } from '@sendbound/node'
2 
3const sb = new Sendbound({ apiKey: process.env.SENDBOUND_KEY })
4 
5await sb.emails.send({
6  from: 'Acme <billing@acme.com>',
7  to: 'james@stripe.com',
8  subject: 'Your invoice is ready',
9  react: <InvoiceEmail amount={129} />,
10})
11 
12// → { id: "em_8x9kzq3f", status: "queued" } ▋
Live eventslistening…
waiting for webhook events…
deliveredem_8x9kzq3fjust now
openedem_7a1pxw2n12s ago
clickedem_6b3mky8v34s ago
✓ all systems operational · 23ms avg@sendbound/node · UTF-8

TypeScript SDK

Fully typed request and response objects, inline JSDoc, and autocompletion in every editor. Zero config required.

REST API

POST /v1/send from any language, edge runtime, or shell script. One endpoint, all email types.

SMTP relay

Drop-in credentials for legacy apps. Point your existing SMTP config at relay.sendbound.com and you are done.

Architecture

Designed for production from day one

Every request travels from your SDK through our API gateway into a durable delivery queue. We validate domains, apply rate limits, and assign an idempotency key before routing begins. Sendbound's own delivery network handles global routing, reputation management, and automatic failover — without any change to your code. Once delivered, our event pipeline signs and POSTs a webhook to your endpoint in real time.

  • Idempotency keys — Safe to retry — same key, same result, no duplicate sends
  • Exponential backoff — Retries for up to 72 hours with bounded backoff
  • HMAC-signed events — Every webhook payload is cryptographically signed
Request flow
all systems operational

Your Application

TypeScript SDK · REST API · SMTP relay

client
POST /v1/send

Sendbound API

Auth · rate-limit · idempotency · queue

23ms avg
delivery pipeline

Sendbound Delivery Network

Global routing

150+ edge nodes

Reputation engine

IP & domain scoring

Retry logic

Exp. backoff · 72h

Spam pre-flight

Score before send

HMAC-signed webhook events

Your webhook endpoint

delivered · opened · clicked · bounced

yours

Official SDKs for every stack

The same dependable send primitive, native to the language your team already uses.

Node.js
await sb.emails.send(message)View docs →
Python
client.emails.send(message)View docs →
Ruby
client.emails.send(params)View docs →
Go
client.Emails.Send(ctx, msg)View docs →
PHP
$client->emails->send($msg)View docs →
.NET
await client.Emails.SendAsync(msg)View docs →
npm install @sendbound/node

From zero to sending in 5 minutes

Four steps. No boilerplate. No SMTP config. No XML.

terminal01

Install

$ npm install @sendbound/node

added 1 package in 0.8s

$ npm install @sendbound/react

added 1 package in 0.6s

✓ Ready to send

sendbound.ts02

Configure

import { Sendbound } from '@sendbound/node'

export const sb = new Sendbound({

apiKey: process.env.SENDBOUND_KEY,

})

✓Connection verified — app.sendbound.com
send-invoice.ts03

Send

await sb.emails.send({

from: 'Acme <billing@acme.com>',

to: 'james@stripe.com',

subject: 'Invoice ready',

react: <InvoiceEmail />,

})

// ← { id: "em_8x9kzq3f", status: "queued" }

dashboard · live04

Verify

Invoice ready

em_8x9kzq3f

Delivered

Welcome to Acme

em_7w2mxp1a

Opened

Payment confirmed

em_4k8rzn9c

Clicked
streaming live events
23ms

avg delivery latency

99.99%

API uptime SLA

10B+

emails sent to date

150+

countries reached

Who the Sendbound API is built for

Any team that sends programmatic email — from a two-person startup to a scaled platform — uses the same single endpoint.

Product & engineering teams

Stop writing email infrastructure. One import, one API key, and every email type your product will ever need is covered — transactional, onboarding, notification, or marketing. TypeScript types catch mistakes at compile time instead of 2am.

Founders & indie developers

The free tier gives you 3,000 emails a month, zero credit card required. Send a welcome email in under 5 minutes, then add webhooks, analytics, and suppression management as you grow.

Platform & multi-tenant apps

Create isolated projects per customer, manage separate sending domains, and query audit logs per tenant. Idempotency keys make retries safe even when your own infrastructure is unreliable.

Everything included on every plan

The features that every production email API needs — included by default, not gated behind an enterprise tier.

FeatureSendboundPostmarkSendGridAWS SES
TypeScript SDK✓✓✓✗
Webhook delivery events✓✓✓Partial
React Email template rendering✓✗✗✗
Idempotency keys✓✓✗✗
SMTP relay (drop-in for legacy apps)✓✓✓✓
SDK for 6+ languages✓✓✓✗
Batch send endpoint✓✓✓✓
30-day email log retention✓✓✗✗
Global suppression list✓✓✓✗
GDPR-compliant data residency option✓✗Partial✗
Free tier (emails/month)✓✗✗✓
23ms average delivery latency✓✗✗✗

Frequently asked questions

What is the difference between the REST API and SMTP relay?

The REST API offers typed payloads, idempotency, React rendering, and delivery events. SMTP relay is a compatibility layer for existing applications that cannot change their sending integration yet.

Does Sendbound support React Email templates?

Yes. Pass a React Email component through the Node SDK and Sendbound renders it before delivery. You can also send HTML, text, or templates created in the dashboard.

How do idempotency keys work?

Add an Idempotency-Key to a request and Sendbound stores its result for 24 hours. Retrying the same operation returns the original email rather than creating a duplicate send.

What regions is the API available in?

The API is available globally with edge routing, and delivery is orchestrated from US and European infrastructure. Select a preferred data region for your workspace when compliance requires it.

Is there a rate limit?

Limits scale with account reputation and plan. Responses include standard rate-limit headers, and queued sends are smoothed automatically so a burst never silently loses mail.

How do I migrate from SendGrid?

Keep your current templates and switch the endpoint or SMTP hostname first. Our migration guide maps SendGrid fields to Sendbound and an import tool brings over approved contacts and suppression lists.