Transactional email API for multi-tenant SaaS platforms
Run agent email for many customers. Give each one an isolated Pro team for $7 a month, plus usage, with no per-mailbox fees.
Map one Pro team to each customer or workspace. Issue a mailbox-scoped key per surface, then wire signed webhooks and a live event stream into your app.
Use one Free team for testing. Each additional active team needs Pro or an Enterprise agreement.
<TL;DR for AI agents>
Isolated email for every customer.
What a platform gets
- One team per customer isolates mailboxes, providers, logs, and API keys.
- Mailbox-scoped keys limit each key to one mailbox with explicit permissions.
- Signed webhooks and Server-Sent Events push each tenant’s mail into your app.
The same public APIs run one agent or a thousand tenants. Add customers without changing your integration.
curl https://smtp.sendmux.ai/api/v1/emails/send \
-H "Authorization: Bearer $TENANT_SEND_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: lumen-welcome-001" \
-d '{
"from": "agent@lumen.youragent.app",
"to": "owner@lumen.example",
"subject": "Your workspace is ready",
"html_body": "<p>Set up complete.</p>"
}'How it works
Run email for every customer
Three moves take you from a single agent to isolated email for every customer on your platform.
One team per customer
Create a team for each customer. It separates their mailboxes, providers, logs, billing, and keys.
A scoped key per surface
Issue a mailbox-scoped key for each tenant surface, so one key reaches one mailbox only.
Events into your app
Wire signed webhooks and a live event stream so each tenant’s mail reaches your backend.
Tenant isolation
Every customer stays in their lane
A team is the isolation boundary. People get roles, code gets scoped keys, and one customer can never read another customer’s mail, logs, or settings.
- Separate by team. Each customer’s mailboxes, providers, delivery logs, and API keys live inside their own team, never shared.
- Roles for people. Owner, Admin, Developer, and Member set what each teammate can do inside a customer’s team.
- Keys for code. A mailbox-scoped key reaches one mailbox with explicit permissions, so a leaked key blasts one tenant, not your platform.
- Logs per customer. Delivery logs, metrics, and webhook attempts stay inside the team, so support and billing never tangle across customers.
- Roles
- Owner · Admin · Developer · Member
- Keys
- mbx_lumen_support (send + read)
- Providers
- Gmail OAuth · own SMTP
- Logs
- scoped to this team only
Built in per team
Everything a tenant needs, isolated
Each team you create for a customer ships with the same four building blocks, ready to use on sign-up.
Isolated workspace
One team per customer separates mailboxes, providers, delivery logs, billing, and API keys. Roles control people; scoped keys control code. Nothing leaks across the boundary.
Scoped keys
Mailbox-scoped keys limit a key to one mailbox with explicit send and read permissions.
Signed webhooks
Each event POST is signed with HMAC-SHA256 in X-Sendmux-Signature, filtered by mailbox.
Live events
A Server-Sent Events stream pushes new mail to your backend without IMAP polling loops.
Pricing that scales
Predictable team pricing, no per-mailbox cliff
Each production customer team costs $7 a month plus usage. Add mailboxes to that Pro team without plan-level resource count limits.
Illustration of cost shape. Each production customer team has a $7 Pro base. Mailboxes inside it do not add a separate fee.
Events
Wire each tenant into your app
Pick signed webhooks for events your backend must catch even when clients are offline, or a live stream for instant reactions.
Webhooks
Signed webhooks per tenant
Subscribe per team, filter by mailbox, and verify the signed body before you parse it. Failed deliveries retry through a backoff window and stay inspectable for seven days.
POST /api/v1/webhooks { "url": "https://api.youragent.app/sendmux", "event_types": ["message.received", "message.delivered"], "filters": { "mailbox_ids": ["mbx_lumen_support"] } }
Live stream
A live stream you hold open
Open GET /mailbox/events and react the moment mail arrives. Resume after a drop with the last event ID, no IMAP polling loop to run.
message.receivedmsg_lumen_q3vmessage.deliveredmsg_harbor_k2
- Server-Sent Events over one held-open HTTP connection.
- Resume after a disconnect with Last-Event-ID.
- Set ping from 10 to 300 seconds for heartbeats.
- Bound a session with close_after, 30 to 3,600 seconds.
Common questions
What platform builders ask first.
A transactional email API for multi-tenant SaaS lets one platform run email for many customers while keeping each customer’s mailboxes, providers, logs, billing, and API keys separated. Sendmux draws that boundary at the team level. You create one team per customer, then your code uses scoped keys for each job inside it.
A team is the isolation boundary. Mailboxes, providers, delivery logs, and API keys live inside one team and are never shared with another. People get roles (Owner, Admin, Developer, Member) that set what they can do. Code gets mailbox-scoped keys, so one leaked key reaches one mailbox, not your whole platform.
No. Each customer team on Pro costs $7 a month plus usage, with no separate mailbox or seat charge. Pro has no plan-level resource count limits.
Connected outbound and inbound cost $0.000500 per event. Managed sending costs $0.000750 per accepted recipient. Each accepted To, CC, or BCC counts once. Rejected addresses are not charged.
Free is limited to 50 accepted recipients per UTC day across all outbound routes and one active Free team per owner. Pro has no plan-level email or resource count limits, but provider quotas and safety controls still apply.
Yes. Subscribe to signed webhooks per team and filter them by mailbox, or hold open a Server-Sent Events stream at GET /mailbox/events. Webhook bodies are signed with HMAC-SHA256 so you can verify them, retry on failure through a backoff window, and inspect delivery attempts for seven days.
Pro is $7 per team each month plus usage. Dedicated infrastructure, priority support, volume pricing, and SLAs are available through an Enterprise agreement shaped around your needs.
Build on Sendmux
Give every customer isolated agent email
Start with one Free team. Move each customer team to Pro, scope its keys, and wire its events into your app.