Amazon Polly
amazonaws · Cloud
Amazon Polly is a web service that makes it easy to synthesize speech from text. The Amazon Polly service provides API operations for synthesizing high-quality speech from plain text and Speech Synthesis Markup Language (SSML), along with managing pronunciations lexicons that enable you to get the best results for your application domain.
Authentication
Sample Requests
Returns the list of voices that are available for use when requesting speech synthesis. Each voice speaks a specified language, is either male or female, and is identified by an ID, which is the ASCII version of the voice name. When synthesizing speech ( SynthesizeSpeech ), y
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/voices?Engine=standard&NextToken=example&LanguageCode=arb&IncludeAdditionalLanguageCodes=true"
import requests
params = {
"Engine": "standard",
"NextToken": "example",
"LanguageCode": "arb",
"IncludeAdditionalLanguageCodes": "true"
}
response = requests.get(
"https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/voices",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/voices');
url.searchParams.set('Engine', 'standard');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('LanguageCode', 'arb');
url.searchParams.set('IncludeAdditionalLanguageCodes', 'true');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/voices")
q := baseURL.Query()
q.Set("Engine", "standard")
q.Set("NextToken", "example")
q.Set("LanguageCode", "arb")
q.Set("IncludeAdditionalLanguageCodes", "true")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/voices")
uri.query = URI.encode_www_form({
"Engine" => "standard",
"NextToken" => "example",
"LanguageCode" => "arb",
"IncludeAdditionalLanguageCodes" => "true"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/voices?" . http_build_query([
"Engine" => "standard",
"NextToken" => "example",
"LanguageCode" => "arb",
"IncludeAdditionalLanguageCodes" => "true"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Returns a list of pronunciation lexicons stored in an Amazon Web Services Region. For more information, see Managing Lexicons .
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/lexicons?NextToken=example"
import requests
params = {
"NextToken": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/lexicons",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/lexicons');
url.searchParams.set('NextToken', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/lexicons")
q := baseURL.Query()
q.Set("NextToken", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/lexicons")
uri.query = URI.encode_www_form({
"NextToken" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/lexicons?" . http_build_query([
"NextToken" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Returns a list of SpeechSynthesisTask objects ordered by their creation date. This operation can filter the tasks by their status, for example, allowing users to list only tasks that are completed.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/synthesisTasks?Status=scheduled&NextToken=example&MaxResults=1"
import requests
params = {
"Status": "scheduled",
"NextToken": "example",
"MaxResults": "1"
}
response = requests.get(
"https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/synthesisTasks",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/synthesisTasks');
url.searchParams.set('Status', 'scheduled');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', '1');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/synthesisTasks")
q := baseURL.Query()
q.Set("Status", "scheduled")
q.Set("NextToken", "example")
q.Set("MaxResults", "1")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/synthesisTasks")
uri.query = URI.encode_www_form({
"Status" => "scheduled",
"NextToken" => "example",
"MaxResults" => "1"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/polly/2016-06-10/v1/synthesisTasks?" . http_build_query([
"Status" => "scheduled",
"NextToken" => "example",
"MaxResults" => "1"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Amazon Polly?
Amazon Polly is a Cloud API. Developers commonly use cloud APIs for:
- provisioning and managing cloud infrastructure
- automating deployments and container orchestration
- monitoring uptime and performance metrics
- managing storage buckets and databases
- setting up auto-scaling and load balancing
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Amazon Polly is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?