curl --request POST \
--url https://api.example.com/api/v1/messages/send/voice \
--header 'Content-Type: application/json' \
--data '
{
"phone_number": "6281234567890",
"whatsapp_account_id": "c053d8ef-6c19-4ecb-9cc5-a4a64be79d92"
}
'import requests
url = "https://api.example.com/api/v1/messages/send/voice"
payload = {
"phone_number": "6281234567890",
"whatsapp_account_id": "c053d8ef-6c19-4ecb-9cc5-a4a64be79d92"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
phone_number: '6281234567890',
whatsapp_account_id: 'c053d8ef-6c19-4ecb-9cc5-a4a64be79d92'
})
};
fetch('https://api.example.com/api/v1/messages/send/voice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"message_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"run_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Send Voice Message
Send a voice/audio message.
curl --request POST \
--url https://api.example.com/api/v1/messages/send/voice \
--header 'Content-Type: application/json' \
--data '
{
"phone_number": "6281234567890",
"whatsapp_account_id": "c053d8ef-6c19-4ecb-9cc5-a4a64be79d92"
}
'import requests
url = "https://api.example.com/api/v1/messages/send/voice"
payload = {
"phone_number": "6281234567890",
"whatsapp_account_id": "c053d8ef-6c19-4ecb-9cc5-a4a64be79d92"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
phone_number: '6281234567890',
whatsapp_account_id: 'c053d8ef-6c19-4ecb-9cc5-a4a64be79d92'
})
};
fetch('https://api.example.com/api/v1/messages/send/voice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"message_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"run_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Headers
Body
Request to send a direct message.
Recipient phone number in E.164 or local WhatsApp format.
5 - 50Message text body. Required unless template_id supplies the content.
1Template variables merged into the outgoing content before queueing.
Show child attributes
Show child attributes
Outbound object type. Supported values: text, image, video, voice, document, location, contact.
Optional media type hint, typically image, video, document, or audio.
Publicly fetchable URL for media/document payloads.
Base64-encoded media content or data URI (data:…;base64,…). Takes precedence over media_url when both are provided.
Filename for document sends. Required when media_base64 is used for documents. If not provided for URL-based sends, it is inferred from the URL path.
MIME type hint (e.g. 'image/png', 'application/pdf'). Required when media_base64 is raw base64 (not a data URI). If omitted, guessed from filename or defaults to 'application/octet-stream'.
Optional caption for image, video, and document messages.
Latitude for location messages.
Longitude for location messages.
Display label sent with a location pin.
Optional address or fallback label for location messages.
Contact cards for contact messages. The first item is serialized to a vCard for delivery.
Show child attributes
Show child attributes
Optional future delivery time. When set, the API returns status=scheduled instead of queueing immediately.
When true, validate the destination phone before accepting the request.
Reserved callback URL for downstream status delivery integrations.