Sendmux

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.

your customers isolated teams
One control plane, one API, one billapi.sendmux.ai · the same surface fans out to every teamfan‑out
team: lumen sealed
scoped keys3
delivery logs1.2k
support@lumen
boundary
team: harbor sealed
scoped keys2
delivery logs840
agent@harbor
boundary
team: blueprint sealed
scoped keys4
delivery logs2.6k
ops@blueprint
boundary
one team per customerN customersN sealed teams

<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.

POST /emails/send 200
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.

01Step 1 of 3

One team per customer

Create a team for each customer. It separates their mailboxes, providers, logs, billing, and keys.

team: lumen
02Step 2 of 3

A scoped key per surface

Issue a mailbox-scoped key for each tenant surface, so one key reaches one mailbox only.

keysupport@lumen
03Step 3 of 3

Events into your app

Wire signed webhooks and a live event stream so each tenant’s mail reaches your backend.

support@lumenwebhook · SSE

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.
tenant fabricall sealed
team: lumenisolated
Roles
Owner · Admin · Developer · Member
Keys
mbx_lumen_support (send + read)
Providers
Gmail OAuth · own SMTP
Logs
scoped to this team only
one key reaches one mailbox

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.

team: lumen sealed
4mailboxes
3scoped keys
1.2kdelivery logs
2providers

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.

cost as teams grow
bundled inbox tiers Sendmux Pro + usage
tenants →your cost →larger tier steps$7 per Pro team

Illustration of cost shape. Each production customer team has a $7 Pro base. Mailboxes inside it do not add a separate fee.

$7
per team / mo
Pro base charge
$0.000500
per event
Connected outbound or inbound
$0
Per mailbox
$0.02
per GB / mo
Mailbox storage

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.

subscribe
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.

GET /mailbox/events connected
message.receivedmsg_lumen_q3v
message.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.

$7 Pro per team No per-mailbox fees Enterprise SLAs when you need them