Send a voice message
curl --request POST \
--url https://{host}/api/sendVoice \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"session": "session",
"chatId": "5511999999999@c.us",
"url": "https://example.com/audio.mp3"
}
'import requests
url = "https://{host}/api/sendVoice"
payload = {
"session": "session",
"chatId": "5511999999999@c.us",
"url": "https://example.com/audio.mp3"
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
session: 'session',
chatId: '5511999999999@c.us',
url: 'https://example.com/audio.mp3'
})
};
fetch('https://{host}/api/sendVoice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/api/sendVoice",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'session' => 'session',
'chatId' => '5511999999999@c.us',
'url' => 'https://example.com/audio.mp3'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/api/sendVoice"
payload := strings.NewReader("{\n \"session\": \"session\",\n \"chatId\": \"5511999999999@c.us\",\n \"url\": \"https://example.com/audio.mp3\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/api/sendVoice")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"session\": \"session\",\n \"chatId\": \"5511999999999@c.us\",\n \"url\": \"https://example.com/audio.mp3\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/sendVoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"session\": \"session\",\n \"chatId\": \"5511999999999@c.us\",\n \"url\": \"https://example.com/audio.mp3\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"messageId": "3EB0XXXXXX"
}
Messaging
Send Voice Audio
Send audio message (voice note) to a contact or group
POST
/
api
/
sendVoice
Send a voice message
curl --request POST \
--url https://{host}/api/sendVoice \
--header 'Content-Type: application/json' \
--header 'apikey: <api-key>' \
--data '
{
"session": "session",
"chatId": "5511999999999@c.us",
"url": "https://example.com/audio.mp3"
}
'import requests
url = "https://{host}/api/sendVoice"
payload = {
"session": "session",
"chatId": "5511999999999@c.us",
"url": "https://example.com/audio.mp3"
}
headers = {
"apikey": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {apikey: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
session: 'session',
chatId: '5511999999999@c.us',
url: 'https://example.com/audio.mp3'
})
};
fetch('https://{host}/api/sendVoice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{host}/api/sendVoice",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'session' => 'session',
'chatId' => '5511999999999@c.us',
'url' => 'https://example.com/audio.mp3'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"apikey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{host}/api/sendVoice"
payload := strings.NewReader("{\n \"session\": \"session\",\n \"chatId\": \"5511999999999@c.us\",\n \"url\": \"https://example.com/audio.mp3\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("apikey", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{host}/api/sendVoice")
.header("apikey", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"session\": \"session\",\n \"chatId\": \"5511999999999@c.us\",\n \"url\": \"https://example.com/audio.mp3\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/sendVoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["apikey"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"session\": \"session\",\n \"chatId\": \"5511999999999@c.us\",\n \"url\": \"https://example.com/audio.mp3\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"messageId": "3EB0XXXXXX"
}
Description
This endpoint allows you to send audio messages (voice notes) to individual contacts or groups on WhatsApp. The audio must be sent in base64 format. Voice notes are displayed as playable audio messages on WhatsApp.Body
{
"sessionId": "my-session",
"jid": "5511999999999@s.whatsapp.net",
"audio": {
"content": "iVBORw0KGgoAAAANSUhEUgAAAA...",
"mimetype": "image/png"
}
}
Body Parameters
| Property | Type | Required | Description |
|---|---|---|---|
sessionId | string | ✅ Yes | Authenticated session ID that will send the audio |
jid | string | ✅ Yes | Recipient identifier (WhatsApp JID). Format: 5511999999999@s.whatsapp.net for contacts or 120363XXXXX@g.us for groups |
audio | object | ✅ Yes | Object containing the audio data |
audio.content | string | ✅ Yes | Audio content encoded in base64 |
audio.mimetype | string | ❌ No | Audio MIME type (e.g., audio/ogg, audio/mpeg, audio/mp4). If not specified, will be detected automatically |
{
"success": true,
"messageId": "3EB0XXXXXX"
}
Status Codes
200- Audio sent successfully400- Invalid parameters or audio corrupted401- Unauthorized session404- Session not found413- Audio too large
Usage Example
curl -X POST https://api.wappfy.com.br/api/sendVoice \
-H "Content-Type: application/json" \
-d '{
"sessionId": "my-session",
"jid": "5511999999999@s.whatsapp.net",
"audio": {
"content": "T2dnUwACAAAAAAAAAABNcnEoAAAAABYMN3EBHFN...",
"mimetype": "audio/ogg"
}
}'
// Read file and convert to base64
const fs = require('fs');
const audioBuffer = fs.readFileSync('audio.ogg');
const base64Audio = audioBuffer.toString('base64');
const response = await fetch('https://api.wappfy.com.br/api/sendVoice', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
sessionId: 'my-session',
jid: '5511999999999@s.whatsapp.net',
audio: {
content: base64Audio,
mimetype: 'audio/ogg'
}
})
});
const data = await response.json();
console.log(data);
import requests
import base64
# Read file and convert to base64
with open('audio.ogg', 'rb') as audio_file:
base64_audio = base64.b64encode(audio_file.read()).decode('utf-8')
response = requests.post(
'https://api.wappfy.com.br/api/sendVoice',
json={
'sessionId': 'my-session',
'jid': '5511999999999@s.whatsapp.net',
'audio': {
'content': base64_audio,
'mimetype': 'audio/ogg'
}
}
)
data = response.json()
print(data)
Authorizations
Your Wappfy API key (get it at dash.wappfy.com.br)
Body
application/json
Response
201 - application/json
The response is of type object.
⌘I
