Skip to main content
Sub-accounts separate client sending under a parent account. Access requires an eligible active plan; unavailable features return 403 with feature_not_available_for_active_plan. Check your plan before provisioning.

Authentication

Base URL: https://pro.api.serversmtp.com/api/v2 Send the parent account’s consumerKey and consumerSecret headers with Statistics & Management APIs (APIS) permission. Its IP restrictions must allow your server. See authentication.

Dashboard setup

The Sub Accounts creation wizard has four steps:
  1. Enter the email, a password set by the parent, and profile details.
  2. Select a sending IP already assigned to the parent.
  3. Review domain verification instructions.
  4. Confirm the details and click Create.
Set sending credits from the sub-account list after creation. Create a Consumer Key and Consumer Secret for the new sub-account before sending. New sub-accounts do not receive a key automatically. SMTP credentials are the sub-account’s Consumer Key and Consumer Secret.

List sub-accounts

Terminal
GET /subaccounts/list accepts these optional query parameters: The response is {count, results}. Each result includes subaccount_id, parent_id, email, ip, active, limit, sent, last_used, plan_expiration, plan_limit_interval, and expired. Use subaccount_id in the paths below.

Check an email address

GET /subaccounts/email-exists checks whether an email is already associated with a turboSMTP account. The query name is case-sensitive: use capital Email.
Terminal
Example response:

Create a sub-account

POST /subaccounts requires email, password, confirm_password, first_name, last_name, ip, and policy_agree: true. Choose a password with at least 10 characters, an uppercase letter, a lowercase letter, and a digit. Both password fields must match. Replace the example password and IP; the IP must already belong to the parent account.
Terminal
Optional profile fields are address_1, address_2, city, company_name, country, region, zip_code, phone_number, and site_url. The 201 response includes subaccount_id, parent_id, email, active, ip, and profile fields. Set limits and status with the separate endpoints below. limit and active sent to the create endpoint are ignored.

Read and update a profile

GET /subaccounts/{Id} returns the sub-account’s identifiers, email, status, IP, and profile. Use PATCH /subaccounts/{Id} to update it. Send first_name, last_name, ip, and policy_agree: true, plus any optional profile fields to change. To change the password, also send matching password and confirm_password fields.
Terminal
The response is the updated sub-account profile.

Set limits and status

limit must be an integer from -1 to the parent account’s limit. -1 removes the sub-account-specific cap; the parent plan still applies. The period is given by plan_limit_interval. The active-plan response includes subaccount_id, parent_id, ip, active, limit, sent, last_used, plan_expiration, plan_limit_interval, and expired. The active flag controls login availability; sending also requires an active subscription.

Delete a sub-account

DELETE /subaccounts/{Id} soft-deletes the sub-account and frees its email address for reuse.
Terminal

Access a sub-account session

POST /subaccounts/authorize accepts {"email":"client@example.com"} using the parent’s management credentials. It returns an auth value for the sub-account session. Pass that value as the raw Authorization header on session-authenticated requests.

Agency branding