Email sending API with provider failover
Use the email API for AI agents to bring SMTP, Gmail, Microsoft 365, or Amazon SES. Sendmux weights traffic, enforces per-provider quotas, and reroutes around failure on its own.
What happens when you hit send
The routing layer, in pieces
Pulled from rotation when a provider hits three failures inside five minutes.
Per API key, shared across HTTP and SMTP. A batch of 100 counts as one request.
Cumulative-weight random selection. Weights unset means an equal split; negative is rejected.
24h after a quota block, 1h after a connection error, manual on auth or config faults.
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.
Send scope: all · specific · group
Isolated pools
Separate groups, so transactional and bulk traffic never share a reputation.
A bad provider doesn't become a bad day
Sendmux watches every send. When a provider degrades, traffic moves before your queue notices.
Provider 5xx → sends fail
You retry by hand, or you lose mail. One provider's bad night becomes your incident.
# t = 0s POST /emails/send → 503 upstream # t = 2s retry 503 upstream # t = 4s retry 503 upstream # t = 5s page on-call
3 fails / 5 min → rerouted
The provider is pulled, healthy ones take over, transient sends retry 5m → 2h → 12h.
# t = 0s POST /emails/send → 202 queued # gmail-oauth: 5xx (3 in 5m) # failover → ses-au-1 # delivered 250 OK
Choose your sending limits
On Pro and Enterprise, Sendmux adds no sending caps to your own providers. Your provider's limits still apply. You can set optional quotas, and queued sends wait when they reach them.
Example quotas. Choose your own limits or leave them unset.
One JSON call, bearer auth
POST /api/v1/emails/send/batch Idempotency-Key: run-001 { "messages": [ {…}, {…} ] } → { "summary": { "total":2, "queued":2, "failed":0 } }
Total request body up to 25 MB. Same API key, same 60,000 requests/minute limit, over HTTP and SMTP.
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 60,000-requests-per-minute limit as HTTP.
# same 60,000/min limit as HTTP
From the docs
Product updates
API reference
Common questions