In short
- Today: unofficial connection (QR-paired number). Dial → speak/play audio → hang up.
- Soon: the same API on the official (Meta) connection, keeping the same simple shape.
- Use the same instance you already use for messages.
- API key scope
whatsapp:call(andwhatsapp:call:readfor read-only).
When to use
Modes: Connection modes.
What you can do
Place the call
POST /v1/whatsapp/calls with speak, play, or template.List calls
GET /v1/whatsapp/calls with pagination and instance filter.Get a call
GET /v1/whatsapp/calls/{id} with status, duration, and events.Template with voice
type: "template" uses the channel template text/voice.Call webhooks
whatsapp.call.initiated, answered, completed, failed… no polling.Before you start
Not paired yet? WhatsApp Quick Start (unofficial tab). Scopes: API Key scopes.
Replace
sk_live_xxxxx with your key and {instanceId} with the instance id. Base URL: https://api.notifique.dev.
The API Key belongs to one workspace. On v1 do not send
x-workspace-id.1. Place a call (speak text)
Dials, synthesizes speech, and hangs up automatically.202 response
2. Play audio (play)
3. Template with voice
If you already created a call-channel template (whatsapp_call), use type: "template":
speak.
4. List calls
page, limit, instanceId.
5. Get a call
includeEvents=true you get the timeline (QUEUED, INITIATED, COMPLETED, NO_ANSWER, FAILED, …).
Status and hangup
After queueing, the call moves through statuses likeQUEUED → INITIATED → COMPLETED (or NO_ANSWER / FAILED / REJECTED).
hangupReason explains the end (completed, hangup, no_answer, provider_error, …).
Next steps
- Typed examples in OpenAPI (WhatsApp tab → Calls)
- Connection modes
- API Key scopes
- For traditional PSTN voice, see the Voice API

