Key concepts
Tenant, API keys, scopes, templates, and other product terminology.
Before integrating, it helps to align on vocabulary. These concepts appear in the API, dashboard, and webhooks.
Tenant
Isolated workspace. Each tenant has its own domains, templates, contacts, campaigns, and email quota. Almost all API routes require the X-Tenant-Id header.
API key
Credential for server-side integrations or the SDK. Format: mc_live_... (production) or mc_test_... (testing). Send it as:
Authorization: Bearer mc_live_xxxx
Each key has scopes (granular permissions) and is shown in full only once when created.
Scopes
Permissions in resource:action format. Examples:
| Scope | Allows |
|---|---|
email:send | Send emails (POST /emails/send, batch, scheduled) |
email:read | Read send logs |
contacts:read / contacts:write | Manage audience |
campaigns:read / campaigns:write | Newsletter campaigns |
webhooks:manage | Outbound webhook endpoints |
Dashboard routes for templates, domains, and analytics use session JWT, not API keys.
Template and version
A template groups versions. Each version can be DRAFT or PUBLISHED. Publishing inlines CSS. You can send with templateVersionId instead of htmlBody.
Suppression
List of email addresses that must not receive further messages (hard bounce, complaint, voluntary unsubscribe). Sends to suppressed addresses are blocked.
Send queue
Transactional sends enter a BullMQ queue (QUEUED → SENT). The API responds immediately with the log id; a worker delivers in the background.
Monthly quota
Each plan has a monthly email limit. The API returns X-Quota-* headers on each send. Above 110% of the limit, the API responds with 429.