DocumentationContacts and audience

Contacts and audience

Contact model, externalId, locale, and opt-in for newsletter sends.

Contacts are your newsletter audience inside a tenant. Sync them from your CRM or app via the API; campaigns fan out to matching contacts at send time.

Required API key scopes: contacts:read (list and read) and contacts:write (create, update, bulk import, GDPR erasure).

Authorization: Bearer mc_live_xxxx
X-Tenant-Id: clxxxxxxxx

See API keys and scopes.

Contact model

FieldDescription
emailPrimary address (unique per tenant)
externalIdYour system's id (max 128 chars); used for upsert and DELETE
localePreferred language (es, en, it, fr, ca, de) for template routing
optInMarketing consent flag; campaigns can filter on this
attributesFree-form JSON (name, plan, tags, etc.)
consentVersionVersion string of the consent text the user accepted
sourceWhere the contact came from (signup, import, api)
projectIdOptional SMTP project scope

List contacts

GET /contacts?page=1&limit=50&locale=en&optIn=true

Query parameters:

ParameterDescription
page / limitPagination (limit max 500)
localeFilter by locale
optInFilter by consent (true / false)
updatedSinceISO timestamp — incremental sync
cursorCursor-based pagination
projectIdFilter by project

Read one contact

GET /contacts/{idOrExternalId}

Accepts the internal MailingCore id or your externalId.

GDPR erasure

DELETE /contacts/{externalId}

Permanently removes the contact and triggers the erasure flow. Requires contacts:write.

Related endpoints

ActionPage
Create or update oneUpsert contact
Import manyBulk import
Unsubscribe flowUnsubscribe