Skip to content

Provisioning API

Overview

Provision and manage cold email infrastructure for your customers.

Internal testing — not generally available. The Provisioning API is still in internal testing. Endpoints and payloads may change without notice, and access is granted case by case. Treat this reference as a preview rather than a contract, and talk to us before building against it.

The sending.ac Partner API lets integration partners white-label mailbox provisioning for their end customers. You create senders, connect domains, and the platform handles Microsoft 365 tenant setup, DNS configuration, and mailbox creation automatically.

Core concepts

  • User — an end customer on your platform.
  • Sender — a logical grouping of domains and mailboxes belonging to a user.
  • Domain — a domain connected to the platform. After you connect a domain, the platform assigns nameservers. Update the registrar, wait for propagation (up to 48 h), and the platform provisions M365 automatically.
  • Mailbox — an individual email account with IMAP/SMTP credentials.
  • Operation — every write request returns an operation_id you can poll or receive via webhook.

Authentication

All requests require a Bearer token in the Authorization header:

Authorization: Bearer sac_live_xxxxx

Tokens are scoped. A request that requires a scope your token does not have will return 403 auth.insufficient_scope.

Pagination

List endpoints use cursor-based pagination. Pass page[size] (max 100, default 25) and page[after] (an opaque cursor from a previous response).

Async provisioning

All provisioning is asynchronous. A POST that triggers infrastructure changes returns immediately with status: "pending" and an operation_id. Poll GET /v1/operations/{id} to track progress.

Rate limits

The API enforces 120 requests per minute per token. Exceeding this returns 429 rate.quota_exceeded with a Retry-After header.

API key issued from the sending.ac partner dashboard. Live keys begin with sac_live_, sandbox keys with sac_test_.

Security scheme type: http

Bearer format: sac_live_xxxxx or sac_test_xxxxx