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