WhatsApp Reply Message API
During an active Service Conversation Window, you can send free-form WhatsApp messages to users without using templates. This includes text messages, media, and interactive message types.
⚠️ Important: Free-form messages can only be sent within 24 hours of the user’s last message. Outside this window, you must use the Template Sending API.
Supported Message Types
The Free-Form Message API supports the following WhatsApp message types:
- Text Message
- Text with Media
- Button Messages
- List Messages
- Flow/Form Message
- Address Collection Message
- Website CTA Button
- Voice Call Button
All message types are sent using the same API endpoint with different payload structures.
API Endpoint
Authentication
All requests must be authenticated using an API key.
Content-Type: application/json
Message Types and Payloads:
Text Message API
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \ -H 'Content-Type: application/json' \ -H 'API-KEY: {your_api_key}' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "{WHATSAPP_USER_PHONE_NUMBER}", "type": "text", "text": { "body": "{YOUT_BODY_TEXT_HERE}" } }'
{
"messaging_product": "whatsapp",
"contacts": [
{
"input": "{WHATSAPP_USER_PHONE_NUMBER}",
"wa_id": "{WHATSAPP_USER_ID}"
}
],
"messages": [
{
"id": "{WHATSAPP_MESSAGE_ID}",
}
]
}
Media with Caption
Supported Media Types:
| Type | Supported Extensions | MIME type | Max File Size |
|---|---|---|---|
image |
.jpeg , .png | image/jpeg, image/png | 5 MB |
video |
.3gp, .mp4 | video/3gpp, video/mp4 | 16 MB |
audio |
.aac, .amr, .mp3, .m4a, .ogg | audio/aac, audio/amr, audio/mpeg, audio/mp4, audio/ogg (OPUS codecs only; base audio/ogg not supported; mono input only) | 10 MB |
document |
.txt , .xls, .xlsx, .doc, .docx, .ppt, .pptx, .pdf | text/plain, application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheetm application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/pdf | 25 MB |
Image Note: Images must be 8-bit, RGB or RGBA.
Video Note: Only H.264 video codec and AAC audio codec supported. Single audio stream or no audio stream only.
Note that videos encoded with the H.264 “High” profile and B-frames are not supported by Android WhatsApp clients. We recommend that you use H.264 “Main” profile without B-frames, or the H.264 “Baseline” profile when encoding (or re-encoding with a tool like ffmpeg), and place moov boxes before mdat boxes, for broader compatibility. If you are using ffmpeg, you can use the -movflags faststart flag to place moov boxes before mdata boxes.
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \ -H 'Content-Type: application/json' \ -H 'API-KEY: {your_api_key}' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "{WHATSAPP_USER_PHONE_NUMBER}", "type": "image/audio/video/document", "image/audio/video/document": { "id": "{MEDIA_ID}", {Only if using uploaded media} "link": "{MEDIA_URL}", {Only if using hosted media (not recommended)} "caption": "{your_text_body}",{Only if using type: image/video/document} "filename": "{your_displayed_filename}"{Only if using type: document} } }'
| Placeholder | Description | Example Value |
|---|---|---|
| your_api_key | Mandatory. Get your API Key from your Cunnekt Account | Usjhssd23kajsd1222Keysk |
| whatsapp_user_phone_number | WhatsApp business phone number ID. | 919999999999 |
| image/audio/video/document | Mandatory. Use any one of the media types | “type”: “image” |
| media_id | Optional. If you’re using media_url. Recommended for reliable sending | 1056598878988785 |
| media_url | Optional. If you’re using media_id. Recommended for reliable sending. Learn how to create media_id | https://www.cunnekt.com/wp-content/uploads/2026/01/whatsapp-voice-call-image.jpg |
| your_text_body | Optional. This is the caption of your message. Only available when type = image/video/document | Please check the media attached. |
| your_displayed_filename | Optional. This is the displayed filename when a user sees the message on WhatsApp. Only available when type = document | Cunnekt Pitch Deck |
Example of sending a video:
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \ -H 'Content-Type: application/json' \ -H 'API-KEY: {your_api_key}' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "919999999999", "type": "image", "image": { "link": "https://www.cunnekt.com/wp-content/uploads/2026/01/whatsapp-voice-call-image.jpg", "caption": "Thanks for reaching out. You will receive a call from our team shorty. ", } }'
Reply Button Messages
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \ -H 'Content-Type: application/json' \ -H 'API-KEY: {your_api_key}' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "{WHATSAPP_USER_PHONE_NUMBER}", "type": "interactive", "interactive": { "type": "button", "header": {MESSAGE_HEADER}, "body": { "text": "" }, "footer": { "text": " " }, "action": { "buttons": [ { "type": "reply", "reply": { "id": " ", "title": " " } } ] } } }'
List Messages
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \
-H 'Content-Type: application/json' \
-H 'API-KEY: {your_api_key}' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "{WHATSAPP_USER_PHONE_NUMBER}",
"type": "interactive",
"interactive": {
"type": "list",
"header": {
"type": "text",
"text": "{MESSAGE_HEADER_TEXT}"
},
"body": {
"text": "{MESSAGE_BODY_TEXT"
},
"footer": {
"text": "{MESSAGE_FOOTER_TEXT}"
},
"action": {
"button": "{BUTTON_TEXT}",
"sections": [
{
"title": "{SECTION_TITLE_TEXT}",
"rows": [
{
"id": "{ROW_ID}",
"title": "{ROW_TITLE_TEXT}",
"description": "{ROW_DESCRIPTION_TEXT}"
}
{!-- Additional rows would go here --}
]
}
{!-- Additional sections would go here --}
]
}
}
}'
Website CTA Button
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \
-H 'Content-Type: application/json' \
-H 'API-KEY: {your_api_key}' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "{WHATSAPP_USER_PHONE_NUMBER}",
"type": "interactive",
"interactive": {
"type": "cta_url",
{!-- If using document header, otherwise omit --}
"header": {
"type": "document",
"document": {
"link": "{ASSET_URL}"
}
},
{!-- If using image header, otherwise omit --}
"header": {
"type": "image",
"image": {
"link": "{ASSET_URL}"
}
},
{!-- If using text header, otherwise omit --}
"header": {
"type": "text",
"text": "{HEADER_TEXT}"
}
},
{!-- If using video header, otherwise omit --}
"header": {
"type": "video",
"video": {
"link": "{ASSET_URL}"
}
},
"body": {
"text": "{BODY_TEXT}"
},
"action": {
"name": "cta_url",
"parameters": {
"display_text": "{BUTTON_LABEL_TEXT}",
"url": "{BUTTON_URL}"
}
},
{!-- If using footer text, otherwise omit --}
"footer": {
"text": "{FOOTER_TEXT}"
}
}
}'
Fill Flow/Form Button Message
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \
-H 'Content-Type: application/json' \
-H 'API-KEY: {your_api_key}' \
-d '
{
"recipient_type": "individual",
"messaging_product": "whatsapp",
"to": "whatsapp-id",
"type": "interactive",
"interactive": {
"type": "flow",
"header": {
"type": "text",
"text": "Flow message header"
},
"body": {
"text": "Flow message body"
},
"footer": {
"text": "Flow message footer"
},
"action": {
"name": "flow",
"parameters": {
"flow_message_version": "3",
"flow_name": "appointment_booking_v1", //or flow_id
"flow_cta": "Book!"
}
}
}
}'
Address collection message
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \ -H 'Content-Type: application/json' \ -H 'API-KEY: {your_api_key}' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "", "type": "interactive", "interactive": { "type": "address_message", "body": { "text": "Thanks for your order! Tell us what address you’d like this order delivered to." }, "action": { "name": "address_message", "parameters": { "country": " " } } } }'
Voice Call Button
curl 'https://app.cunnekt.com/api/v1/whatsapp/replymessage' \
-H 'Content-Type: application/json' \
-H 'API-KEY: {your_api_key}' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "14085551234",
"type": "interactive",
"interactive" : {
"type" : "voice_call",
"body" : {
"text": "You can call us on WhatsApp now for faster service!"
},
"action": {
"name": "voice_call",
"parameters": {
"display_text": "Call on WhatsApp",
"ttl_minutes": 100,
"payload": "payload data"
}
}
}
}'