Email API for multi‑tenant SaaS platforms
Sendmux is an email API for SaaS and platform builders running agent email for many customers. Give each customer its own isolated team, with separate mailboxes, providers, logs, and scoped API keys. Billing is usage-based with no per-mailbox fees, so your cost tracks the email your customers actually send.
Map one team to each customer or workspace. Issue a mailbox-scoped key per surface. Wire signed webhooks and a live event stream into your app. The same public APIs that run one agent scale to your whole customer base.
Self-serve and usage-based. For dedicated infrastructure and SLAs, talk to us.
<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
Usage-based pricing, no per-mailbox cliff
Provision a mailbox for every customer and pay nothing until mail flows. Your cost tracks real usage, so your own pass-through pricing works.
Illustration of cost shape. No per-mailbox and no per-seat fees on Sendmux. Your cost tracks the email your customers actually send.
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 multi-tenant email API 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. Pricing is usage-based with no per-mailbox fees, no per-seat fees, and no minimum commitments. You can provision mailboxes for every customer and pay nothing until their mail flows. Standard email is $0.15 per 1,000, managed Amazon SES sends are $0.25 per 1,000, and mailbox storage is $0.02 per GB each month.
Each team starts with room for 50 mailboxes, 200 sending accounts, 25 domains, 10 webhooks, and 100 credentials. There is no separate cap on email volume through this system. When a resource hits 80% of its limit, you request an increase in one click, and approved increases apply straight away.
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.
The self-serve plan is usage-based with no contract. Dedicated infrastructure, priority support, volume pricing, and SLAs are part of an enterprise agreement shaped around your volume. If you are running email for a large customer base and need those guarantees, talk to us and we will scope it with you.
Build on Sendmux
Give every customer isolated agent email
Map one team per customer, scope a key per surface, and wire the events into your app. Start free and grow with usage.