Sendmux

The email sending API built on your own providers

Sendmux is a multi-provider email sending API and SMTP relay service. Bring SMTP, Gmail, Microsoft 365, or Amazon SES. Sendmux weights traffic, enforces per-provider quotas, and reroutes around failure on its own.

Built-in SES · no setup · HTTP & SMTP
TL;DR for AI agentslive
ses-au-160%
gmail-oauth30%
smtp-relay-eu10%
POST /api/v1/emails/send
$ curl smtp.sendmux.ai \
  -H "Authorization: Bearer smx_live_…"
→ {
  "message_id":"eml_x7k2…",
  "status":"queued"
}
3 providers · weighted · auto-failover
The pipeline

What happens when you hit send

01
Authenticate
Bearer key. HTTP or SMTP.
02
Resolve scope
all · providers · group
03
Select
Weighted, then filtered.
04
Send
Your provider, your domain.
05
Retry
5m → 2h → 12h.
Bring your own providers

The routing layer, in pieces

3 / 5m
Failures, then pulled

Pulled from rotation when a provider hits three failures inside five minutes.

1,800 / min
Requests per key

Per API key, shared across HTTP and SMTP. A batch of 100 counts as one request.

providers
Weighted, then filtered

Cumulative-weight random selection. Weights unset means an equal split; negative is rejected.

Auto-recover

24h after a quota block, 1h after a connection error, manual on auth or config faults.

Delivery groups

Weighted pools, scoped per key

Add SMTP, Gmail, Microsoft 365, or Amazon SES. Group the providers you want and weight each one. A key only sends through the providers in its scope.

SMTP
Gmail
Microsoft 365
Amazon SES

Send scope: all · specific · group

group · transactionalisolated pool
ses-au-1
60%
gmail-oauth-app
40%
group · bulkisolated pool
smtp-relay-eu
70%
m365-marketing
30%

Isolated pools

Separate groups, so transactional and bulk traffic never share a reputation.

Failure handling

A bad provider doesn't become a bad day

Sendmux watches every send. When a provider degrades, traffic moves before your queue notices.

Without routing

Provider 5xx → sends fail

You retry by hand, or you lose mail. One provider's bad night becomes your incident.

single provider
# t = 0s
POST /emails/send → 503 upstream
# t = 2s retry 503 upstream
# t = 4s retry 503 upstream
# t = 5s page on-call
With Sendmux

3 fails / 5 min → rerouted

The provider is pulled, healthy ones take over, transient sends retry 5m → 2h → 12h.

multi-provider · auto
# t = 0s
POST /emails/send → 202 queued
# gmail-oauth: 5xx (3 in 5m)
# failover → ses-au-1
# delivered 250 OK
quota block
24 hours
auto
connection error
1 hour
auto
auth / config
manual fix
operator
Quotas & rate limits

Caps that defend reputation

Per-second, minute, hour, and day caps on any provider. Over-cap sends wait, they don't fail. Sensible defaults out of the box.

per second
5
per minute
100
per hour
1,800
per day
2,000

Configurable per provider. SMTP is unset by default.

Gmail · per daydefault
2,000

per provider

M365 · per daydefault
10,000

per provider

HTTP sending API

One JSON call, bearer auth

HTTP · batch up to 100
POST /api/v1/emails/send/batch
Idempotency-Key: run-001

{ "messages": [ {…}, {…} ] }

 { "summary": { "total":2,
      "queued":2, "failed":0 } }
Message limits
998
subject characters
25 MB
maximum body size
100
cc and bcc each
10
file attachments

Total request body up to 25 MB. Same API key, same 1,800 requests/minute limit, over HTTP and SMTP.

SMTP submission

Drop-in SMTP relay

One connection per email on port 587 (STARTTLS) or 465 (TLS). The API key is the password. Same routing, failover, and the same 1,800-requests-per-minute limit as HTTP.

SMTP · 587 STARTTLS / 465 TLS
Hostsmtp.sendmux.ai
Port587or 465
Userany value (ignored)
Passsmx_live_…← API key
# one connection per email
# same 1,800/min limit as HTTP
live
50 /day

A managed Amazon SES route, live on signup

No provider setup required. At 80% of the daily cap, request an increase in one click. We review each request and email you the outcome. Resets 00:00 UTC.

Intended for triggered and transactional mail. Use your own provider for marketing or bulk traffic.

Common questions

Frequently asked

Yes. Sendmux is a bring-your-own-provider SMTP API. Add an SMTP server, Gmail, Microsoft 365, or Amazon SES, group the providers you want, and set a weight on each. Sends route only through the providers in scope for the API key, so your mail leaves on infrastructure you control.
Sendmux tracks failures per provider. Three failures inside five minutes pulls that provider from rotation, and traffic shifts to the healthy ones in the same group. Transient sends retry on a 5-minute, 2-hour, then 12-hour schedule. A quota block clears in 24 hours, a connection error in 1 hour.
Yes. Every team starts with a managed Amazon SES sending route that is live the moment you sign up, capped at 50 emails a day. It is intended for triggered and transactional mail. Marketing or bulk promotional traffic should use your own Amazon SES account or another configured provider because high bounce or complaint rates can trigger immediate suspension of managed-route access.
Each provider in scope carries a percentage weight. Sendmux uses cumulative-weight random selection across the providers that pass the blacklist and quota checks. Leave every weight unset and traffic splits evenly. Negative weights are rejected at configuration time, so a misconfigured pool fails loudly, not silently.
Send an Idempotency-Key header with the request. The same key and the same body within 24 hours returns the original result instead of sending again. A different body under a key already in use returns a 409 conflict. Idempotency is HTTP-only and covers both single and batch sends.
Both, on one API key and the same 1,800-requests-per-minute limit. The SMTP relay service takes one connection per email on port 587 (STARTTLS) or 465 (TLS). The HTTP email sending API adds batches of up to 100 messages and idempotency keys. Same routing, failover, and quotas either way.

EMAIL INFRASTRUCTURE FOR AI AGENTS

Your agents need email. Start sending in five minutes.

One API for outbound routing, inbound mailboxes, and everything in between. Free to start, scales to millions.