Send simple voice message

This method allows you to send a single voice message to one destination address.

Resource

https://api.infobip.com/tts/3/single

Parameters

Property name Type Description
from string (12345) Numeric sender ID in E.164 format
to* string Destination address must be written in the international format (Example: 41793026727).
text string Message to be converted to speech and played to subscribers.
language string (en) If the message is in text format, the language in which the message is written must be defined for correct pronunciation. Below, in the Languages section, you can find the list of supported languages.
audioFileUrl string Besides the text format of the message, audio recording (in waw or mp3 format) can also be delivered as a voice message to the recipient. Audio file must be uploaded online so the existing URL can be available for the file download. Size of the audio file must be below 4 MB.

Request Example

					POST /tts/3/single HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
Accept: application/json

{
  "from": "12345",
  "to": "41793026727",
  "text": "Test Voice message.",
  "language": "en"
}
					
				
					curl -X POST \
-H "Accept: application/json" \
-H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
  "from": "12345",
  "to": "41793026727",
  "text": "Test Voice message.",
  "language": "en"
}' "http://api.infobip.com/tts/3/single"
					
				
					<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://api.infobip.com/tts/3/single",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\n  \"from\": \"12345\",\n  \"to\": \"41793026727\",\n  \"text\": \"Test Voice message.\",\n  \"language\": \"en\"\n}",
  CURLOPT_HTTPHEADER => array(
    "accept: application/json",
    "authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
    "content-type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
					
				
					require 'uri'
require 'net/http'

url = URI("http://api.infobip.com/tts/3/single")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["authorization"] = 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
request["content-type"] = 'application/json'
request["accept"] = 'application/json'
request["cache-control"] = 'no-cache'
request["postman-token"] = 'feb1ddbf-7c53-9949-7e56-3091808a9e36'
request.body = "{\n \"from\": \"12345\",\n  \"to\": \"41793026727\",\n  \"text\": \"Test Voice message.\",\n  \"language\": \"en\"\n}"

response = http.request(request)
puts response.read_body
					
				
					import http.client

conn = http.client.HTTPConnection("api.infobip.com")

payload = "{\n  \"from\": \"12345\",\n  \"to\": \"41793026727\",\n  \"text\": \"Test Voice message.\",\n  \"language\": \"en\"\n}"

headers = {
    'authorization': "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
    'content-type': "application/json",
    'accept': "application/json"
    }

conn.request("POST", "/tts/3/single", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
					
				
					HttpResponse<String> response = Unirest.post("http://api.infobip.com/tts/3/single")
  .header("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==")
  .header("content-type", "application/json")
  .header("accept", "application/json")
  .body("{\n  \"from\": \"12345\",\n  \"to\": \"41793026727\",\n  \"text\": \"Test Voice message.\",\n  \"language\": \"en\"\n}")
  .asString();
					
				
					var client = new RestClient("http://api.infobip.com/tts/3/single");
var request = new RestRequest(Method.POST);
request.AddHeader("accept", "application/json");
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
request.AddParameter("application/json", "{\n  \"from\": \"12345\",\n  \"to\": \"41793026727\",\n  \"text\": \"Test Voice message.\",\n  \"language\": \"en\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
					
				
					var data = JSON.stringify({
  "from": "12345",
  "to": "41793026727",
  "text": "Test Voice message.",
  "language": "en"
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "http://api.infobip.com/tts/3/single");
xhr.setRequestHeader("authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("accept", "application/json");

xhr.send(data);
					
				

Response

					{
  "messages": [
    {
      "to": "41793026727",
      "status": {
        "groupId": 1,
        "groupName": "PENDING",
        "id": 7,
        "name": "PENDING_ENROUTE",
        "description": "Message sent to next instance"
      },
      "messageId":"2250be2d4219-3af1-78856-aabe-1362af1edfd2"
    }
  ]
}
					
				

Response format

If successful, the response header HTTP status code will be 200 OK and the message will be sent.

If you try to send a message without authorization, you will receive the 401 Unauthorized error .

VoiceResponse

Parameter Type Description
messages VoiceResponseDetails Array of sent message objects, one object per every message.

VoiceResponseDetails

Parameter Type Description
to String The message destination address.
status Status Indicates whether the message has been successfully sent, not sent, delivered, not delivered, waiting for delivery or any other possible status.
messageId String The ID that uniquely identifies the message sent.

Status

Parameter Type Description
groupId int Status group ID.
groupName String Status group name.
id int Status ID.
name String Status name.
description String Human-readable description of the status.

Languages

List of supported languages:

Language Language shortcut
English en
English (British) en-gb
English (Australian) en-au
English (Indian) en-in
English (Welsh) en-gb-wls
Spanish es
Catalan ca
Chinese-Simplified zh-cn
Chinese-Traditional zh-tw
Danish da
Dutch nl
French fr
German de
Italian it
Japanese ja
Korean ko
Norwegian no
Polish pl
Portuguese pt-pt
Portuguese - Brazilian pt-br
Russian ru
Swedish sv
Finnish fi
Turkish tr
Welsh wls