Platform Partner feature: Sub Accounts is part of our Platform Partner capabilities and is currently in early access. Contact us to enable it on your account.
Why Use Sub Accounts?
Full Sending Isolation
Each sub account has its own domains, suppressions, reputation context, and sending activity. One customer’s sending never affects another’s.
Consolidated Billing
All sub-account usage rolls up to the parent account as a single invoice, with per-sub-account cost visibility.
The Full API, Per Customer
A sub-account API key authenticates as the child and can use every regular v2 endpoint: domains, messages, webhooks, routes, and more.
Central Control
Create, update, suspend, unsuspend, and soft-delete sub accounts from the parent, view per-sub-account usage, and set an optional monthly sending cap on each one.
How It Works
Sub accounts follow a parent and child model:- All sub-account management endpoints are addressed under the parent account ID, for example
/v2/accounts/{account_id}/sub-accounts. The{account_id}is always the parent. - Each sub account has its own child account ID (
sub_account_id). Once a sub account has its own API key, that key uses the child account ID on ordinary routes, for example/v2/accounts/{sub_account_id}/domains. - Sub-account API keys can only be created and managed with parent credentials that hold the right
sub-account-api-keys:*scope. A sub account cannot manage its own nested API keys.
Each sub account has an optional
monthly_credit field, a monthly sending cap where 0 means no cap.When to Use Sub Accounts
Sub Accounts are ideal when you send on behalf of distinct end customers and need each kept separate:- SaaS platforms giving each of their customers their own sending setup and domains.
- Agencies managing email for multiple clients under one account and one bill.
- Resellers who want isolation and per-customer usage reporting without running multiple top-level accounts.
- Cloud and hosting providers offering transactional email as part of their platform, with a separate, isolated sending account provisioned per tenant.
- Managed service providers (MSPs) running transactional email on behalf of the clients they manage, keeping each client’s sending, domains, and reputation cleanly separated and individually reportable.
Provisioning a Sub Account
You provision a sub account from the parent in two API calls: create the sub account, then create its bootstrap API key. After that, the child key and child account ID are all you need to run that customer’s email.Create the sub account
With parent credentials, call
POST /v2/accounts/{account_id}/sub-accounts using the parent account ID and a unique Idempotency-Key. The response id is the new sub_account_id.Create a bootstrap API key
Call
POST /v2/accounts/{account_id}/sub-accounts/{sub_account_id}/api-keys with the parent account ID, the new sub_account_id, and a different unique Idempotency-Key. The parent credential must hold the sub-account-api-keys:write scope. The 201 response returns a one-time secret_key.Example: Provision, Verify a Domain, and Send
The flow below runs end to end: it provisions a sub account with the parent key, then switches to the child key to verify a sending domain and send a message. It usesjq to capture the IDs and secret returned along the way.
Step 1 uses the parent credentials. Steps 2 and 3 use the child account ID and the child secret. Parent credentials are only needed to manage the sub account itself and its API keys.
Sub Account Status
Each sub account reports astatus:
| Status | Meaning |
|---|---|
active | The sub account is operating normally. |
suspended | The sub account was suspended directly via the suspend endpoint. |
parent-suspended | The sub account is suspended because its parent account is suspended. |
deleted | The sub account has been soft-deleted. |
Usage and Billing
The usage endpoint returns current billing-period message volume and the proportional cost allocated to the parent and each active sub account:- Proportional allocation: each sub account’s
allocated_costis a share of the parent’s pooled invoice for the period, distributed by message volume. - Not standalone pricing:
allocated_costreflects a proportional share of the parent’s pooled invoice, not what the sub account would pay on its own plan. - Removed sub accounts: usage from sub accounts soft-deleted during the period is still billed to the parent and reported in a separate aggregate.
Scopes
Sub-account operations require dedicated scopes, all granted to parent-account API keys:| Scope | Grants |
|---|---|
sub-accounts:read | List and read sub accounts |
sub-accounts:write | Create and update sub accounts |
sub-accounts:delete | Soft-delete sub accounts |
sub-accounts:suspend | Suspend and unsuspend sub accounts |
sub-accounts:usage | Read per-sub-account usage and allocated cost |
sub-account-api-keys:read | List and read sub-account API keys |
sub-account-api-keys:write | Create and update sub-account API keys |
sub-account-api-keys:delete | Delete sub-account API keys |
Next Steps
Sub Accounts API Overview
The full API model for managing sub accounts and their keys
Create a Sub Account
Provision a new isolated child account under your parent account
Create a Sub-Account API Key
Issue a bootstrap key that authenticates as the child account
Sub-Account Usage
Track per-sub-account volume and allocated cost for the billing period

