PlayHT TTS API
Text-to-speech generation, streaming, and async jobs.
Text-to-speech generation, streaming, and async jobs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/playht-tts-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: PlayAI Agents TTS API
description: 'PlayAI (formerly PlayHT) is a generative voice platform. The REST API
covers text-to-speech generation (PlayDialog, Dialog 1.0 Turbo, and
Play 3.0 Mini models), voice catalog, voice agents, external functions,
and PlayNote document-to-audio jobs.
Authentication uses two headers: `AUTHORIZATION` carries the secret API
key, and `X-USER-ID` carries the PlayAI user identifier.
'
version: 1.0.0
contact:
name: API Evangelist
email: kin@apievangelist.com
license:
name: Proprietary
servers:
- url: https://api.play.ai
description: PlayAI production API
security:
- apiKey: []
userId: []
tags:
- name: TTS
description: Text-to-speech generation, streaming, and async jobs.
paths:
/api/v1/tts:
post:
tags:
- TTS
summary: Create an async TTS job
description: 'Convert text to speech with PlayAI models. Returns an async job that
can be polled via GET /api/v1/tts/{asyncTtsJobId}.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TTSRequest'
responses:
'202':
description: Async TTS job created.
content:
application/json:
schema:
$ref: '#/components/schemas/TTSJob'
/api/v1/tts/{asyncTtsJobId}:
parameters:
- $ref: '#/components/parameters/AsyncTtsJobId'
get:
tags:
- TTS
summary: Retrieve async TTS job status
responses:
'200':
description: TTS job.
content:
application/json:
schema:
$ref: '#/components/schemas/TTSJob'
/api/v1/tts/stream:
post:
tags:
- TTS
summary: Stream speech in real time
description: Streams audio bytes for the supplied text in real time.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TTSStreamRequest'
responses:
'200':
description: Streamed audio bytes.
content:
audio/mpeg:
schema:
type: string
format: binary
audio/wav:
schema:
type: string
format: binary
components:
schemas:
TTSStreamRequest:
allOf:
- $ref: '#/components/schemas/TTSRequest'
TTSJob:
type: object
properties:
id:
type: string
status:
type: string
enum:
- queued
- processing
- complete
- failed
outputUrl:
type: string
format: uri
durationSeconds:
type: number
createdAt:
type: string
format: date-time
TTSRequest:
type: object
required:
- text
- voice
properties:
text:
type: string
voice:
type: string
model:
type: string
enum:
- PlayDialog
- Dialog-1.0-Turbo
- Play3.0-mini
outputFormat:
type: string
enum:
- mp3
- wav
- ogg
- flac
- mulaw
speed:
type: number
parameters:
AsyncTtsJobId:
name: asyncTtsJobId
in: path
required: true
schema:
type: string
securitySchemes:
apiKey:
type: apiKey
in: header
name: AUTHORIZATION
description: Secret API key issued in the PlayAI console.
userId:
type: apiKey
in: header
name: X-USER-ID
description: PlayAI user identifier paired with the API key.