Platform

One bill, isolated tenants

Give each client or product its own account. Own domains, own API keys, own suppression list, while quota comes from one shared pool you control.

Isolation

A tenant is an account

Each sub-account is a real account: its own credentials, domains, keys, and reputation surface. One client’s bad list cannot poison another’s deliverability. Depth is capped at one level. Sub-accounts inherit the parent plan and cannot spawn their own children, which keeps the hierarchy auditable.

curl -X POST https://api.euromail.dev/v1/accounts \
  -H "X-EuroMail-Api-Key: em_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Client A",
    "email": "[email protected]",
    "monthly_quota": 5000
  }'
Quota

One pool, allocated precisely

The parent’s monthly quota is the pool; each sub-account gets an explicit allocation from it. Over-allocating returns a 422 instead of overselling, allocation changes are row-locked against races, and deleting a sub-account returns its quota instantly. Aggregate analytics across all tenants stay root-only.

Plans
Business (5) · Enterprise (unlimited)
Depth
One level, by design
Over-allocation
Rejected with 422
Aggregate analytics
Root account only