Skip to main content
Five families: contacts, tags, topics, segments, campaigns. Campaigns also need send scopes per channel (whatsapp:send, sms:send, …).
Each scope unlocks one type of Contacts operation. Use only what your integration needs.

How to send the key

Recommended
Alternative
The API Key belongs to one workspace. You cannot access another workspace with the same key.

Common combinations

Read database only

contacts:read, tags:read

Sync CRM

contacts:read, contacts:create, contacts:update, tags:read, tags:create

Campaigns via API

campaigns:read, campaigns:create, campaigns:run + channel send scopes

Full management

All contacts:*, tags:*, topics:*, segments:*, campaigns:*
An empty scope list on create = ADMIN access. Always restrict in production.

Contacts (contacts:*)

List and get contact by ID.
Create contact (phone and/or email required).
Edit record, tags, and fields.
Delete contact.

Tags (tags:*)

List and get tag.
Create reusable label.
Rename tag.
Delete tag.

Topics (topics:*)

Marketing theme consent. Same as Audience → Topics in the dashboard.
List and get topic.
Create topic with stable slug.
Edit name, description, and default opt-in.
Delete topic.

Segments (segments:*)

Audiences with rules (tags, fields, topics, marketing). Includes preview.
List, get, and preview (paginated audience sample).
Create segment with JSON version: 1, match, rules.
Edit segment rules.
Delete segment.

Campaigns (campaigns:*)

List, get, statistics, and recipients per run.
Create campaign (optionally with scheduledFor).
Edit campaign and cancel (DRAFT/SCHEDULED → CANCELLED).
Delete campaign.
Dispatch now (Run), queues sends on campaign channels.
Running a campaign requires campaigns:run and send scopes for each channel when the queue processes messages.

Next steps