Welcome to the API documentation. Here you can find all the details about our API methods, error codes, and more.
| Header | Value | Description |
|---|---|---|
Mumble-Api-Key |
<TOKEN> |
Your API token for authentication. Find your token in your account technical settings. |
Content-Type |
application/json |
Indicates that the request body format is JSON. |
Add a new customer.
{"adset_id": "123", "bot_token": "example-bot-token", "campaign_id": "campaign_123456", "cid": "cid_123456", "current_url": "http://example.com", "customer_phone": "1234567890", "device": "desktop", "email": "[email protected]", "fbc": "fbc_123456", "fbclid": "fbclid_123456", "fbp": "fbp_123456", "form": "form_1", "ga_id": "GA-123456", "ga_session_id": "session_123456", "gbraid": "gbraid_123456", "gclid": "gclid_123456", "ip": "192.168.1.1", "keyword_id": "keyword_123456", "layer": "layer_1", "li_fat_id": "li_fat_id_123456", "matchtype": "broad", "msclickid": "msclickid_123456", "name": "John Doe", "network": "network_1", "obcid": "obcid_123456", "placement": "top_banner", "source": "web", "tblci": "tblci_123456", "ttcid": "ttcid_123456", "twclid": "twclid_123456", "user_agent": "Mozilla/5.0", "utm_campaign": "summer_sale", "utm_content": "ad_content", "utm_medium": "cpc", "utm_source": "google", "utm_term": "keyword", "wbraid": "wbraid_123456", "yclid": "yclid_123456"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
name |
string |
No |
string |
No |
|
source |
string |
No |
bot_token |
string |
No |
utm_source |
string |
No |
utm_medium |
string |
No |
utm_campaign |
string |
No |
utm_content |
string |
No |
utm_term |
string |
No |
placement |
string |
No |
adset_id |
string |
No |
ga_id |
string |
No |
ga_session_id |
string |
No |
campaign_id |
string |
No |
keyword_id |
string |
No |
gclid |
string |
No |
wbraid |
string |
No |
gbraid |
string |
No |
fbclid |
string |
No |
msclickid |
string |
No |
ttcid |
string |
No |
yclid |
string |
No |
obcid |
string |
No |
li_fat_id |
string |
No |
tblci |
string |
No |
twclid |
string |
No |
current_url |
string |
No |
user_agent |
string |
No |
ip |
string |
No |
fbc |
string |
No |
fbp |
string |
No |
cid |
string |
No |
matchtype |
string |
No |
device |
string |
No |
layer |
string |
No |
network |
string |
No |
form |
string |
No |
| Code | Message |
|---|---|
| 200 | {"message": "added successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Failed to add customer due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Edit an existing customer.
{"adset_id": "123", "bot_token": "example-bot-token", "campaign_id": "campaign_123456", "cid": "cid_123456", "current_url": "http://example.com", "customer_phone": "1234567890", "device": "desktop", "email": "[email protected]", "fbc": "fbc_123456", "fbclid": "fbclid_123456", "fbp": "fbp_123456", "form": "form_1", "ga_id": "GA-123456", "ga_session_id": "session_123456", "gbraid": "gbraid_123456", "gclid": "gclid_123456", "ip": "192.168.1.1", "keyword_id": "keyword_123456", "layer": "layer_1", "li_fat_id": "li_fat_id_123456", "matchtype": "broad", "msclickid": "msclickid_123456", "name": "John Doe", "network": "network_1", "obcid": "obcid_123456", "placement": "top_banner", "source": "web", "tblci": "tblci_123456", "ttcid": "ttcid_123456", "twclid": "twclid_123456", "user_agent": "Mozilla/5.0", "utm_campaign": "summer_sale", "utm_content": "ad_content", "utm_medium": "cpc", "utm_source": "google", "utm_term": "keyword", "wbraid": "wbraid_123456", "yclid": "yclid_123456"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
name |
string |
No |
string |
No |
|
source |
string |
No |
bot_token |
string |
No |
utm_source |
string |
No |
utm_medium |
string |
No |
utm_campaign |
string |
No |
utm_content |
string |
No |
utm_term |
string |
No |
placement |
string |
No |
adset_id |
string |
No |
ga_id |
string |
No |
ga_session_id |
string |
No |
campaign_id |
string |
No |
keyword_id |
string |
No |
gclid |
string |
No |
wbraid |
string |
No |
gbraid |
string |
No |
fbclid |
string |
No |
msclickid |
string |
No |
ttcid |
string |
No |
yclid |
string |
No |
obcid |
string |
No |
li_fat_id |
string |
No |
tblci |
string |
No |
twclid |
string |
No |
current_url |
string |
No |
user_agent |
string |
No |
ip |
string |
No |
fbc |
string |
No |
fbp |
string |
No |
cid |
string |
No |
matchtype |
string |
No |
device |
string |
No |
layer |
string |
No |
network |
string |
No |
form |
string |
No |
| Code | Message |
|---|---|
| 200 | {"message": "added successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Failed to add customer due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Delete an existing customer.
{"customer_phone": "1234567890"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "deleted successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Failed to delete customer due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Add a customer to a label.
{"customer_phone": "1234567890", "label_name": "example_label"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
label_name |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "added successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Label name is required."} |
| 400 | {"error": true, "message": "Failed to add customer to label due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 404 | {"error": true, "message": "Label not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Remove a customer from a label.
{"customer_phone": "1234567890", "label_name": "example_label"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
label_name |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "removed successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Label name is required."} |
| 400 | {"error": true, "message": "Failed to remove customer from label due to invalid input"} |
| 400 | {"error": true, "message": "Customer is not in the label"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 404 | {"error": true, "message": "Label not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Get customer information.
{"customer_phone": "1234567890"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"customer": {"email": "[email protected]", "name": "John Doe", "phone": "1234567890"}, "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Failed to get customer due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Get all customers with pagination.
{"page": 1}
| Name | Type | Required |
|---|---|---|
page |
int |
No |
| Code | Message |
|---|---|
| 200 | {"current_page": 1, "customers": [], "pages": 2, "per_page": 250, "success": true, "total": 250, "total_pages": 2} |
| 400 | {"error": true, "message": "Failed to get customers due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Get conversation of a customer.
{"customer_phone": "1234567890"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"current_page": 1, "messages": [{"from": "123456789", "id": 1, "is_audio": false, "is_geo_location": false, "is_img": false, "is_pdf": false, "is_sticker": false, "is_video": false, "media_url": "https://example.com", "text": "Hello", "timestamp": 1630000000, "to": "987654321"}], "pages": 1, "success": true, "total": 1} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Failed to get conversation due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Add a new label.
{"label_name": "example_label"}
| Name | Type | Required |
|---|---|---|
label_name |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "Label \u0027\u003clabel_name\u003e\u0027 created successfully", "success": true} |
| 400 | {"error": true, "message": "Label name is required."} |
| 400 | {"error": true, "message": "Failed to add label due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Delete a label.
{"label_name": "example_label"}
| Name | Type | Required |
|---|---|---|
label_name |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "Label \u0027\u003clabel_name\u003e\u0027 deleted successfully", "success": true} |
| 400 | {"error": true, "message": "Label name is required."} |
| 400 | {"error": true, "message": "Failed to delete label due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Label not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Get all labels.
{}
| Name | Type | Required |
|---|
| Code | Message |
|---|---|
| 200 | {"labels": [], "success": true} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Send a template message to a customer.
{"bot_token": "example-bot-token", "button_variables": ["offer25"], "customer_phone": "123456789", "email": "[email protected]", "media_link": "https://example.com", "name": "John Doe", "source": "web", "template_id": "123 #can be found on templates url"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
template_id |
string |
Yes |
button_variables |
list |
No |
source |
string |
No |
bot_token |
string |
No |
name |
string |
No |
string |
No |
|
media_link |
string |
No |
| Code | Message |
|---|---|
| 200 | {"message": "Template message sent successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Template ID is required."} |
| 400 | {"error": true, "message": "Failed to send template message due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Check if a conversation is active.
{"customer_phone": "1234567890"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"is_active": true, "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Failed to check conversation status due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Send a template message with text variables to a customer.
{"bot_token": "example-bot-token", "button_variables": ["offer25"], "customer_phone": "123456789", "email": "[email protected]", "name": "John Doe", "source": "web", "template_id": "123 #can be found on templates url", "variable": ["variable1", "variable2"]}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
template_id |
string |
Yes |
variable |
list |
Yes |
button_variables |
list |
No |
source |
string |
No |
bot_token |
string |
No |
name |
string |
No |
string |
No |
| Code | Message |
|---|---|
| 200 | {"message": "Template message sent successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Template ID is required."} |
| 400 | {"error": true, "message": "Variables are required."} |
| 400 | {"error": true, "message": "Failed to send template message due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Get all templates.
{}
| Name | Type | Required |
|---|
| Code | Message |
|---|---|
| 200 | {"success": true, "templates": []} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Send a text message to a customer.
{"bot_token": "example-bot-token", "customer_phone": "123456789", "email": "[email protected]", "name": "John Doe", "source": "web", "text": "Hello"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
text |
string |
Yes |
source |
string |
No |
bot_token |
string |
No |
name |
string |
No |
string |
No |
| Code | Message |
|---|---|
| 200 | {"message": "Text message sent successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Text is required."} |
| 400 | {"error": true, "message": "Failed to send text message due to invalid input"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Get all bots.
{}
| Name | Type | Required |
|---|
| Code | Message |
|---|---|
| 200 | {"bots": [], "success": true} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Assign a customer to an agent.
{"agent_id": "1234-5678-9012-345678901234", "customer_phone": "1234567890"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
agent_id |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "Customer assigned to agent successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Agent ID is required."} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 404 | {"error": true, "message": "Agent not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Assign a customer to a team.
{"customer_phone": "1234567890", "team_id": "1234-5678-9012-345678901234"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
team_id |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "Customer assigned to team successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Team ID is required."} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 404 | {"error": true, "message": "Team not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Edit a customer's conversation status.
{"customer_phone": "1234567890", "status": "new"}
| Name | Type | Required |
|---|---|---|
customer_phone |
string |
Yes |
status |
string |
Yes |
| Code | Message |
|---|---|
| 200 | {"message": "Customer conversation status updated successfully", "success": true} |
| 400 | {"error": true, "message": "Phone number is required."} |
| 400 | {"error": true, "message": "Invalid conversation status."} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 404 | {"error": true, "message": "Customer not found"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |
Create a new WhatsApp message template. Templates must be approved by WhatsApp before use. Supports: Body variables {{1}}, {{2}}, etc., Media headers (IMAGE, VIDEO, DOCUMENT, AUDIO), Buttons (URL, QUICK_REPLY, PHONE_NUMBER). Does NOT support: Header variables, MPM, Carousels, Catalogs.
{"body": "Hi {{1}}! Your order {{2}} has been confirmed. Total: {{3}}.", "body_examples": ["John Doe", "#12345", "$99.99"], "buttons": [{"example": "order-12345", "text": "Track Order", "type": "URL", "url": "https://example.com/track/{{1}}"}], "category": "MARKETING", "footer": "Thank you for shopping!", "header": {"format": "IMAGE"}, "language": "en_US", "media_url": "https://example.com/banner.jpg", "name": "order_confirmation", "template_type": "custom"}
Simple Text
Basic template with body text only, no variables
{"body": "Welcome to our store! We\u0027re glad to have you.", "category": "MARKETING", "language": "en_US", "name": "welcome_message"}
With Variables
Template with body variables {{1}}, {{2}}, {{3}}
{"body": "Hi {{1}}! Your order {{2}} will arrive on {{3}}.", "body_examples": ["John", "#12345", "Jan 30"], "category": "UTILITY", "language": "en_US", "name": "order_update"}
Image Header
Template with image header (no header variables supported)
{"body": "Summer Sale! Get {{1}} off.", "body_examples": ["25%"], "category": "MARKETING", "header": {"format": "IMAGE"}, "language": "en_US", "media_url": "https://example.com/banner.jpg", "name": "summer_sale"}
Video Header
Template with video header
{"body": "Check out our new {{1}}!", "body_examples": ["Smart Watch"], "category": "MARKETING", "header": {"format": "VIDEO"}, "language": "en_US", "media_url": "https://example.com/video.mp4", "name": "product_demo"}
PDF Document
Template with PDF document header
{"body": "Hi {{1}}, your invoice {{2}} is attached.", "body_examples": ["Customer", "INV-001"], "category": "UTILITY", "header": {"format": "DOCUMENT"}, "language": "en_US", "media_url": "https://example.com/invoice.pdf", "name": "invoice"}
Audio Header
Template with audio header
{"body": "Listen to this important message about {{1}}.", "body_examples": ["your account"], "category": "UTILITY", "header": {"format": "AUDIO"}, "language": "en_US", "media_url": "https://example.com/audio.mp3", "name": "voice_message"}
Quick Reply Button
Template with quick reply button
{"body": "We received your order {{1}}. Confirm?", "body_examples": ["#12345"], "buttons": [{"text": "Yes, Confirmed", "type": "QUICK_REPLY"}, {"text": "No, Cancel", "type": "QUICK_REPLY"}], "category": "UTILITY", "language": "en_US", "name": "order_received"}
Phone Call Button
Template with phone number button (CTA - Call)
{"body": "Need help with order {{1}}? Call us!", "body_examples": ["#12345"], "buttons": [{"phone_number": "+1234567890", "text": "Call Support", "type": "PHONE_NUMBER"}], "category": "UTILITY", "language": "en_US", "name": "customer_support"}
Multiple Buttons
Template with URL, Quick Reply, and Phone buttons
{"body": "Hi {{1}}! How can we help you?", "body_examples": ["Customer"], "buttons": [{"text": "Visit Help Center", "type": "URL", "url": "https://example.com/help"}, {"text": "Talk to Agent", "type": "QUICK_REPLY"}, {"phone_number": "+1234567890", "text": "Call Us", "type": "PHONE_NUMBER"}], "category": "UTILITY", "language": "en_US", "name": "help_center"}
Complete Template
Full template: Image header + Body variables + Footer + Buttons
{"body": "Hi {{1}}! Order {{2}} confirmed. Total: {{3}}. Delivery: {{4}}. View Order - https://example.com/orders/{{5}}", "body_examples": ["John", "#12345", "$99.99", "Jan 30", "12345"], "buttons": [{"text": "Contact Support", "type": "QUICK_REPLY"}], "category": "UTILITY", "footer": "Thank you for your purchase!", "header": {"format": "IMAGE"}, "language": "en_US", "media_url": "https://example.com/order-banner.jpg", "name": "order_complete"}
| Name | Type | Required |
|---|---|---|
name |
string |
Yes |
language |
string |
Yes |
category |
string |
Yes |
template_type |
string |
No |
header |
object |
No |
body |
string |
Yes |
body_examples |
array |
No |
footer |
string |
No |
buttons |
array |
No |
media_url |
string |
No |
| Code | Message |
|---|---|
| 200 | {"data": {"id": "1234567890", "status": "PENDING"}, "error": false, "message": "Template created successfully"} |
| 400 | {"error": true, "message": "Template name is required"} |
| 400 | {"error": true, "message": "Template name already exists"} |
| 400 | {"error": true, "message": "Body text is required"} |
| 400 | {"error": true, "message": "Invalid template configuration"} |
| 400 | {"error": true, "message": "Media link is not valid"} |
| 401 | {"error": true, "message": "Unauthorized"} |
| 500 | {"error": true, "message": "An unexpected error occurred"} |