Endpoint

The email API for developers

Send email with
one API call.

A single, well-typed request from the SDK you already use. Delivery, retries, and logs are handled. You write the call and move on.

Read the docs
npm install endpoint

No credit card. 3,000 emails a month on the free tier.

import { Endpoint } from "endpoint"; const endpoint = new Endpoint(process.env.EP_KEY); const { id } = await endpoint.emails.send({  from: "ci@acme.dev",  to: "dev@example.com",  subject: "Your build passed",  html: "<b>All 214 checks green.</b>",});
POST /v1/emailsreturns in ~38ms

And this comes back

Every call is a clean round trip.

One request, one predictable JSON body, one request id you can grep for in the logs. No polling, no guessing what state the send is in.

200 OK38 ms
$ endpoint emails send --to dev@example.com < HTTP/2 200 OK< x-request-id: req_5b1e9c2a {  "id": "em_9f2c4a7d",  "object": "email",  "status": "delivered",  "to": "dev@example.com",  "created_at": "2026-09-20T18:04:11Z",  "latency_ms": 38}

Built for the boring parts

The reliability work, already done.

The things you would otherwise build twice and still get wrong — retries, signatures, a sandbox that tells the truth — are the product.

Idempotency, on by default

Every write takes an idempotency key. Retry a timed-out request as many times as you like — it resolves to one send, never two.

0duplicate sends across 2.1B messagesGroundwork

Webhooks that survive

Signed events, exponential backoff for three days, and one-click replay from the dashboard. Your consumer can go down without losing a thing.

99.998%webhook delivery over 90 daysCadence

A sandbox that mirrors prod

Test keys, seeded data, and the same latency profile as live. What passes in test behaves identically the moment you flip to production.

2 daysfrom first call to shipped, not two sprintsNorthwind

Logs you can actually read

Thirty days of full request and response bodies, a copyable curl to reproduce any call, and latency traces down to the millisecond.

74%drop in mean time to debugFathom
0.00%
API uptime
trailing twelve months
0ms
Median latency
p50, every region
0.0B
Requests / month
and climbing
0
Edge regions
on six continents

Recently shipped

We ship primitives, not press releases.

v2.6.0Sep 2026

Batch send

Queue up to 100 messages in a single idempotent call.

v2.5.0Aug 2026

Inbound parsing

Route replies straight to a webhook as structured JSON.

v2.4.0Jul 2026

EU data residency

Pin storage and processing to eu-central-1.

v2.3.0Jun 2026

Scheduled sends

Send at a future timestamp, cancellable to the minute.

v2.2.0May 2026

Suppression lists

Programmatic bounce and complaint handling.

v2.1.0Apr 2026

Typed async SDKs

Fully typed clients for Node, Python 3.13, and Go.

Pricing

Free until it's real. Fair after.

No per-seat fees, no charge for teammates, no surprise overage bill. You pay for the email you send, and the first few thousand are on us.

Free

$0forever

Everything you need to ship a side project.

  • 3,000 emails / month
  • 1 sending domain
  • 1-day log retention
  • Community support
Start building
Most popular

Pro

$20/ month

For products in production with real traffic.

  • 50,000 emails / month
  • 10 sending domains
  • 30-day log retention
  • Webhooks and replay
  • Email support
Start free trial

Scale

Custom

Volume pricing, residency, and a signed SLA.

  • Millions of emails / month
  • Unlimited domains
  • 90-day log retention
  • SSO and SAML
  • 99.99% uptime SLA
  • Priority support
Talk to us

The docs are the demo.

Every endpoint has a runnable example in four languages and a copyable curl. Read for ten minutes, ship before lunch.

npm install endpoint