bring your own sender · zero markuphow it works

Your stack.
Your inbox.
Our send.

ZSend is the transactional layer that runs on the email infrastructure you already pay for. Plug in Google Workspace, AWS SES, or Cloudflare Email — keep your domain reputation, your IPs, your bill. We handle the API, templates, and observability.

Plugs into
Google Workspace
AWS SES
Cloudflare
LIVE · routed via your providers2,843,201 today
a***@stripe.com41msworkspace
[email protected]52mscloudflare
[email protected]46msworkspace
[email protected]33mscloudflare
[email protected]44msworkspace
a***@stripe.com41msworkspace
[email protected]52mscloudflare
[email protected]46msworkspace
[email protected]33mscloudflare
[email protected]44msworkspace
p50
38ms
p99
71ms
success
99.99%
Trusted by 12,400+ teams
orbitNORTH/STARkernel.iopaperboatHelixfermentWavelengthmonolithglass.workARCovercastfoundryPillarmeridianshore
orbitNORTH/STARkernel.iopaperboatHelixfermentWavelengthmonolithglass.workARCovercastfoundryPillarmeridianshore
§ 01 / Providers

Bring your own sender.
Keep your domain. Keep your bill.

Most “email APIs” charge per send and route through their own IPs — putting your deliverability in their hands. ZSend flips that: we sit on top of the email infrastructure you already own. You pay your provider for sends; you pay us a flat fee for the layer.

01

Google Workspace

Send from a real Workspace mailbox over OAuth-scoped Gmail API. Threads land in Sent. Replies land back in your inbox. Reputation lives where your team already lives.


You keep
  • ·Your domain & DKIM
  • ·Workspace bill
  • ·Sent folder & threads
  • ·Inbox replies
We add
  • +Templates & React email
  • +Webhook events
  • +Per-message logs
  • +Suppression list
Connect Workspace
02

AWS SES

Bring your SES IAM keys (or an assumed role). We fan out across your verified identities and configuration sets. Sub-cent egress. Full SES analytics, never marked up.


You keep
  • ·Your AWS account
  • ·Verified identities
  • ·Dedicated IPs
  • ·CloudWatch metrics
We add
  • +Idempotency & retries
  • +Multi-region failover
  • +React email rendering
  • +Audit log
Connect AWS SES
03

Cloudflare Email

Use Cloudflare Email Routing + Workers as your transport. We wire in the routing rules, sign DKIM, and ship through the same edge that already serves your traffic.


You keep
  • ·Your Cloudflare zone
  • ·Routing rules
  • ·Worker code
  • ·Edge proximity
We add
  • +Templates pipeline
  • +Bounce handling
  • +Inbound parsing
  • +Replay & receipts
Connect Cloudflare
More on the way: Postmark · Resend · Mailgun · self-hosted SMTP — vote in the changelog.
§ 02 / Product

Built for teams who treat
delivery as a product.

01
Routing

One API, three providers, zero glue code.

Multi-route

Send marketing through SES, transactional through Workspace, system mail through Cloudflare — same SDK call, different `via:` flag. Or let ZSend route automatically based on volume, recipient domain, and historical deliverability.

02
Observability

A queue you can actually see into.

Receipts

Inspect every send. Replay any failure. Tail your traffic in real time across every region you ship to. No more black-box "delivered" — just the full path of every byte you put on the wire, regardless of which provider delivered it.

03
Failover

Workspace down? We reroute mid-send.

Resilient

Configure provider priority once. If Gmail returns a 503 or SES throttles, ZSend retries the same message through the next provider in the chain — same DKIM-aligned domain, same idempotency key, no duplicates.

04
Pricing

You pay your provider. We charge a flat fee.

No markup

No per-send markup. A Build plan covers up to 100k sends; the actual delivery cost goes straight to AWS / Google / Cloudflare on your bill. The further you scale, the more you save versus per-send vendors.

§ 03 / API

Three lines.
Routed through your stack.

Read the docs →
/api/v3/send
// install: npm i zsend · plugs into Workspace, SES, or Cloudflare
import { ZSend } from 'zsend';

const z = new ZSend({
  providers: [
    { kind: 'workspace', oauth: process.env.GWS_TOKEN },
    { kind: 'ses',       region: 'us-east-1' },
    { kind: 'cloudflare', zone: 'yours.app' },
  ],
});

await z.send({
  to: '[email protected]',
  from: '[email protected]',
  subject: 'Welcome to the index',
  via: 'auto',  // or 'workspace' | 'ses' | 'cloudflare'
  react: <WelcomeEmail name="Ada" />,
});
Response 200 OK · 41ms
{
  "id":          "msg_8h2k7p9q",
  "status":      "queued",
  "via":         "workspace",
  "from_mailbox": "[email protected]",
  "queued_at":   "2026-05-02T14:08:23Z",
  "fingerprint": "ze:38c91ab"
}

Event stream
queued → sent → delivered
Webhook
POST /hooks/zsend
§ 04 / Pricing

Pay for the sends,
not the dashboard.

Free
For weekend projects and side quests.
$0forever
  • +3,000 sends / month
  • +All channels
  • +1 domain
  • +Community support
  • +7-day log retention
★ most chosen
Build
For teams shipping their first 10M messages.
$24/ month
  • +100,000 sends / month
  • +All channels
  • +Unlimited domains
  • +Priority support
  • +30-day retention
  • +99.99% SLA
Scale
For teams sending billions, with auditors watching.
Talkto us
  • +Volume pricing
  • +Dedicated IPs
  • +SSO + audit log
  • +24/7 incident line
  • +90-day retention
  • +99.999% SLA

All plans include official SDKs, full webhook coverage, and zero per-domain fees.

Connect a provider in
90 seconds.

OAuth into Google Workspace, paste an SES IAM key, or authorize a Cloudflare zone. Your sends ship from infrastructure you already trust.

Read the docs