Skip to main content
An API Key is a building access card: each scope opens one door. In production, grant only what your integration needs.

In brief

  • Every key belongs to one workspace.
  • whatsapp:* scopes cover instances, sending, and reading on the channel.
  • The instanceIds field restricts which numbers the key can use.
  • Contacts, tags, and multi-channel templates use separate scopes (only if you need them).
General guide: API Keys. Connection: Quick Start.

How to send the key

Alternative: x-api-key: sk_live_xxxxx.
Empty scopes on create = ADMIN access (everything). In production, always restrict.

Ready-made combinations

Connect and send

whatsapp:instances:create, whatsapp:instances:list, whatsapp:send

Send only

whatsapp:send + instanceIds with the number’s instance id

Bot / support

whatsapp:send, whatsapp:read

Operate the number

whatsapp:instances:list, whatsapp:instances:disconnect, whatsapp:instances:delete

Available scopes

List instances, view details, and get code/QR.
Create instance (official or unofficial, with or without shareable link).
Disconnect active session.
Remove instance (only when disconnected).
Send text, media, templates, buttons, and lists.
Sent history, status by id, and inbound messages.
Edit sent message.
Cancel scheduled or queued message.
Delete for everyone.
Groups, participants, invites, and send to group JID. Requires an unofficial instance. Guide: WhatsApp groups.

Restrict by number (instanceIds)

Beyond scope (WHAT), instanceIds defines WHERE: Example: ERP that only sends from support → whatsapp:send + instanceIds: ["clxx123..."].

Other scopes (if needed)

Sending by template (POST /v1/templates/send) uses whatsapp:send (and other channels), not templates:*. Details: Templates API scopes.

Common errors

More codes: Error responses.

Next steps