Subscriber Endpoints
Get, list, create, update and delete contacts; manage labels, custom fields, sequences and notes; assign chats; change conversation status; and read or update CRM deals.
All endpoints below need apiToken, phone_number_id and the customer's phone_number, unless noted.
Get a subscriber#
POST /whatsapp/subscriber/get — returns the contact's name, labels, assigned agent and whether bot/AI replies are on.
A contact that doesn't exist returns status "1" with a "not found" message. Check that message is an object before reading it.
List subscribers#
POST /whatsapp/subscriber/list
| Parameter | Required | Description |
|---|---|---|
phone_number_id |
Yes | — |
limit |
Yes | Up to 100 per page |
offset |
No | Page number, default 1 |
orderBy |
No | 1 = most recent conversation first |
Create a subscriber#
POST /whatsapp/subscriber/create — note the different parameter names:
| Parameter | Required | Description |
|---|---|---|
phoneNumberID |
Yes | Your sending number's ID |
name |
Yes | Contact's name |
phoneNumber |
Yes | Customer's number, digits only |
Adding a contact doesn't give you permission to message them. Only add people who agreed to hear from you on WhatsApp.
Update a subscriber#
POST /whatsapp/subscriber/update — optional first_name, last_name, gender, label_ids (comma-separated, replaces the contact's labels).
Delete a subscriber#
POST /whatsapp/subscriber/delete — permanently deletes the contact and their chat history.
Labels#
| Endpoint | Extra parameter |
|---|---|
POST /whatsapp/subscriber/chat/assign-labels |
label_ids — comma-separated, e.g. 3,7 |
POST /whatsapp/subscriber/chat/remove-labels |
label_ids |
Custom fields#
| Endpoint | Parameters |
|---|---|
POST /whatsapp/subscriber/custom-fields/list |
apiToken only — must be sent as a parameter, not just a Bearer header. Returns fields under data |
POST /whatsapp/subscriber/chat/assign-custom-fields |
custom_fields — JSON, e.g. {"city":"Tirur","order_id":"1042"} |
Sequences#
| Endpoint | Parameters |
|---|---|
POST /whatsapp/subscriber/sequence/list |
phone_number_id only |
POST /whatsapp/subscriber/chat/assign-sequence |
sequence_ids — comma-separated |
POST /whatsapp/subscriber/chat/remove-sequence |
sequence_ids |
Notes#
| Endpoint | Parameters |
|---|---|
POST /whatsapp/subscriber/chat/add-notes |
note_text |
POST /whatsapp/subscriber/chat/get-notes |
— |
Assign a chat to a team member#
POST /whatsapp/subscriber/chat/assign-to-team-member — team_member_id required.
Conversation status#
POST /whatsapp/subscriber/chat/mark-conversation — action: resolved, reopen, archived, unarchived, blocked or unblocked.
Reset a User Input Flow#
POST /whatsapp/subscriber/reset/user-input-flow — lets a customer who got stuck start the form again.
CRM deal#
| Endpoint | Parameters |
|---|---|
POST /whatsapp/subscriber/crm/get |
— returns pipeline, stage, value, owner, lead score, and the pipeline_id / stage_id values |
POST /whatsapp/subscriber/crm/update |
Optional: title, pipeline_id, stage_id, value, currency (e.g. INR), expected_close_date (YYYY-MM-DD), owner_user_id, lead_score (hot/warm/cold), source |