sendVoice
Send a voice message to a specified chat. Supports uploading a file directly or passing a file_id of a previously uploaded file.
Request
POST /:token/sendVoice
Use multipart/form-data encoding for file uploads.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chat_id | Integer/String | Yes | Unique identifier or username of the target chat |
| voice | String/File | Yes | Voice file or file_id of a previously uploaded file |
| caption | String | No | Voice message caption text |
| parse_mode | String | No | Parsing mode for the caption, supports HTML or Markdown |
| duration | Integer | No | Duration of the voice message in seconds |
| reply_markup | Object | No | Custom keyboard or inline keyboard markup, JSON-serialized object |
| reply_to_message_id | Integer | No | ID of the message to reply to |
Response
Returns the sent Message object on success.
json
{
"ok": true,
"result": {
"message_id": 103,
"from": {
"id": 123456789,
"is_bot": true,
"first_name": "MyBot",
"username": "my_bot"
},
"chat": {
"id": 987654321,
"first_name": "User",
"username": "user123",
"type": "private"
},
"date": 1700000000,
"voice": {
"file_id": "AwACAgIAAxkBAAI...",
"file_unique_id": "AQADAgAT...",
"duration": 5,
"mime_type": "audio/ogg",
"file_size": 23456
},
"caption": "This is a voice message"
}
}Error Codes
| Code | Description |
|---|---|
| 400 | Bad request parameters, e.g. unsupported file format |
| 401 | Invalid or expired token |
| 403 | Bot does not have permission to send messages to this chat |
| 404 | Chat not found |
| 413 | File too large |
| 500 | Internal server error |
Examples
Send Voice via File Upload
bash
curl -X POST "https://api.example.com/<token>/sendVoice" \
-F "chat_id=987654321" \
-F "voice=@/path/to/voice.ogg" \
-F "caption=This is a voice message" \
-F "duration=5"Send Voice via file_id
bash
curl -X POST "https://api.example.com/<token>/sendVoice" \
-H "Content-Type: application/json" \
-d '{
"chat_id": 987654321,
"voice": "AwACAgIAAxkBAAI...",
"duration": 5
}'