Abusive Overage Pricing
Mailgun or SendGrid lure you with a base plan, then charge up to $1.10 per 1,000 extra emails. A disguised markup that devours your profitability.
If you’re an Agency, ERP, or SaaS Developer handling email for dozens or hundreds of sub-clients, you know this pain:
Abusive Overage Pricing
Mailgun or SendGrid lure you with a base plan, then charge up to $1.10 per 1,000 extra emails. A disguised markup that devours your profitability.
Billing Amnesia
They retain your sending logs for only 3 to 7 days. When month-end comes and you need to bill Client X for their usage, the data is gone.
Noisy Neighbor Danger
If one of your clients gets hacked and fires 50,000 spam emails, traditional providers just send them — then hand you the surprise bill.
Manual Multi-Tenancy
Creating subaccounts, managing API keys per client, setting individual limits — all manual, all fragile, all your problem.
EmBoux is not just SMTP. It’s an Inbound/Outbound Email Orchestration Engine designed exclusively to run white-label beneath your application.
Instead of charging you penalties, we give you total control. We manage the servers and reputation; you focus on making money with your clients through our API.
Isolate each of your clients automatically. While other providers force you to manage subaccounts manually, the EmBoux API lets you define hard caps per domain from your own code.
The Benefit: You control your fixed costs. If a tenant gets hacked or has a bug in their code, EmBoux rejects the email at SMTP level before you have to pay the bill.
# Provision a new client with one API callcurl -X POST https://api.emboux.com/domains/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name": "client-company.com"}'{ "id": 42, "name": "client-company.com", "created_at": "2026-03-15T10:30:00"}# Set a 2 GB storage limit per mailbox -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"quota_mb": 2048}'# Cap monthly transfer at 10 GB per domaincurl -X PUT https://api.emboux.com/domains/client-company.com/transfer \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"transfer_monthly_mb": 10240}'Each API key is scoped to a partner. Quotas — domains, mailboxes per domain, aliases per mailbox, storage, transfer — are enforced automatically at the infrastructure level. Learn more →
Protect your revenue by freezing service for non-paying clients without losing their data. One API call suspends mail delivery; another restores it instantly when they pay.
The Benefit: Automated grace periods with email reminders at days 7, 15, and 22. After 30 days, excess domains are suspended (most recent first). When the client pays or upgrades, everything reactivates automatically — zero manual intervention.
curl -X PUT https://api.emboux.com/domains/client-company.com/suspend \ -H "Authorization: Bearer YOUR_API_KEY"{ "name": "client-company.com", "suspended": true, "message": "Domain suspended"}EmBoux immediately stops accepting mail for this domain. No data is deleted.
curl -X PUT https://api.emboux.com/domains/client-company.com/activate \ -H "Authorization: Bearer YOUR_API_KEY"{ "name": "client-company.com", "suspended": false, "message": "Domain activated"}Service restored in milliseconds. All emails and config intact.
With the Odoo integration, the entire suspend → notify → reactivate cycle is fully automated based on subscription status. Full lifecycle docs →
Set how long emails are kept per domain. A server-side cron purges expired messages daily — no client action needed.
The Benefit: Offer tiered retention as part of your plans. Starter clients get 30 days, Enterprise gets 90. The infrastructure enforces it automatically.
# Set 90-day retention for a premium clientcurl -X PUT https://api.emboux.com/domains/premium-client.com/retention \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"retention_days": 90}'Combined with per-mailbox storage quotas, you get full capacity governance without manual monitoring. Storage & Quotas docs →
Everything is a REST call. No dashboards to click through, no tickets to open.
import requests
API = "https://api.emboux.com"KEY = "Bearer YOUR_API_KEY"
# Full client provisioning in 3 callsrequests.post(f"{API}/domains/", json={"name": "acme.com"}, headers={"Authorization": KEY})
requests.post(f"{API}/users/", json={"domain_name": "acme.com", "password": "secure-pass"}, headers={"Authorization": KEY})
requests.post(f"{API}/aliases/", json={"domain_name": "acme.com", "source": "@acme.com", headers={"Authorization": KEY})const API = "https://api.emboux.com";const headers = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json",};
// Full client provisioning in 3 callsawait fetch(`${API}/domains/`, { method: "POST", headers, body: JSON.stringify({ name: "acme.com" }),});
await fetch(`${API}/users/`, { method: "POST", headers, body: JSON.stringify({ domain_name: "acme.com", password: "secure-pass", }),});
await fetch(`${API}/aliases/`, { method: "POST", headers, body: JSON.stringify({ domain_name: "acme.com", source: "@acme.com", }),});export KEY="YOUR_API_KEY"export API="https://api.emboux.com"
# 1. Create domaincurl -X POST "$API/domains/" \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d '{"name": "acme.com"}'
# 2. Create admin mailboxcurl -X POST "$API/users/" \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \
# 3. Catch-all → admincurl -X POST "$API/aliases/" \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \| EmBoux | Traditional Providers | |
|---|---|---|
| Multi-tenancy | Native — API keys scoped per partner with enforced quotas | Manual subaccounts, no hard limits |
| Overage protection | Hard caps at infrastructure level — excess is rejected, not billed | Send first, bill later — surprise invoices |
| Suspension control | One API call, data preserved, instant reactivation | Open a support ticket and wait |
| Storage quotas | Per-mailbox enforcement at server level | Not applicable (no inbound) |
| Email retention | Configurable per domain, auto-purge cron | 3-7 day log retention, then gone |
| Pricing model | Predictable plans with included capacity | Per-email pricing with hidden markups |
Using Odoo? EmBoux ships with two native modules that handle everything automatically:
Zero-Code Provisioning
Customer buys a plan → API key created → quotas synced → welcome email sent. No manual steps.
Self-Service Portal
Customers manage domains, mailboxes, aliases, and API keys at /my/emboux. You don’t touch anything.
Automated Lifecycle
Grace periods, suspension, reactivation, overage billing — all triggered by subscription status changes.
Plans & Add-ons
Pre-built Starter / Business / Enterprise plans. Sell extra domains, mailboxes, and alias packs as add-ons.
1. Get your API key
From your Odoo portal at /my/emboux/api or from your account manager.
2. Create a domain
POST /domains/ — one call, immediately active.
3. Add mailboxes
POST /users/ — passwords securely hashed, ready for IMAP/SMTP.
4. Ship it
Your clients send and receive email. You bill them. Done.