Authentication
All requests require an API key. You can generate one from Workspace → Account → API Keys. Pass the key in of these ways:Base URL
Request format
Every endpoint accepts both GET and POST. Parameters can be passed as URL query strings or as a JSON body — they work identically.Channels
List Channels
Returns all channels accessible to your API key. Endpoint:GET/POST /channels/list
Parameters: none
Response:
Contacts
Create or Update a Contact
Creates a new contact or updates an existing one matched byphoneNumber.
Endpoint: GET/POST /contacts/manage
Example:
List Contacts
Returns a paginated list of contacts for a channel. Endpoint:GET/POST /contacts/list
Response:
Custom Fields
Create or Update a Custom Field
Creates a new custom field definition or updates an existing one matched byname.
Endpoint: GET/POST /custom-fields/manage
List Custom Fields
Returns all custom field definitions for a channel. Endpoint:GET/POST /custom-fields/list
Labels
Create or Update a Label
Creates a new label or updates an existing one matched byname.
Endpoint: GET/POST /labels/manage
List Labels
Returns all labels for a channel. Endpoint:GET/POST /labels/list
List Templates
Returns all approved WhatsApp templates for a channel. Endpoint:GET/POST /whatsapp/templates/list
Send a Template
Sends an approved WhatsApp template message to a phone number. The language code is automatically resolved from the stored template if not provided. Endpoint:GET/POST /whatsapp/templates/send
Example:
Send a Message
Sends a regular WhatsApp message (text or media) within a 24-hour session window. Endpoint:GET/POST /whatsapp/message/send
Get Message Status
Returns the delivery status of a sent WhatsApp message by its WAMID. Endpoint:GET/POST /whatsapp/message/status
Response fields:
status, direction, type, content, timestamp, deliveredAt, readAt, error
Automations
List Automations
Returns all automations for a channel. Endpoint:GET/POST /automations/list
Trigger an Automation
Manually triggers an automation for a contact. Creates the contact and conversation automatically if they don’t exist. Endpoint:GET/POST /automations/trigger
Response: