OpenAPI Specification
openapi: 3.1.0
info:
title: PlayHT TTS API
description: 'REST API for PlayHT TTS, voice listing, and voice cloning. The v2
endpoints sit under https://api.play.ht/api/v2. Authentication uses two
credentials supplied as headers: `AUTHORIZATION` (the secret API key)
and `X-USER-ID` (the user identifier).
'
version: 1.0.0
contact:
name: API Evangelist
email: kin@apievangelist.com
license:
name: Proprietary
servers:
- url: https://api.play.ht/api/v2
description: PlayHT v2 API
security:
- apiKey: []
userId: []
tags:
- name: TTS
description: Text-to-speech generation jobs.
paths:
/tts:
post:
tags:
- TTS
summary: Stream audio from text
description: 'Streams the audio bytes for the supplied text in real time using
PlayHT''s text-in, audio-out API.
'
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
/tts/job:
post:
tags:
- TTS
summary: Create a batch TTS job
description: 'Converts one or more input texts into audio asynchronously. Poll the
job endpoints to retrieve completion status.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TTSJobRequest'
responses:
'201':
description: Job created.
content:
application/json:
schema:
$ref: '#/components/schemas/TTSJob'
get:
tags:
- TTS
summary: Get batch TTS job details
description: Retrieves batch job information including all child jobs and status.
responses:
'200':
description: Batch job.
content:
application/json:
schema:
$ref: '#/components/schemas/TTSJob'
/tts/job/{jobId}:
parameters:
- $ref: '#/components/parameters/JobId'
get:
tags:
- TTS
summary: Get batch TTS child job by ID
responses:
'200':
description: Child job.
content:
application/json:
schema:
$ref: '#/components/schemas/TTSJob'
components:
schemas:
TTSJob:
type: object
properties:
id:
type: string
status:
type: string
enum:
- queued
- processing
- complete
- failed
url:
type: string
format: uri
duration:
type: number
created:
type: string
format: date-time
TTSStreamRequest:
type: object
required:
- text
- voice
properties:
text:
type: string
description: Text to synthesize.
voice:
type: string
description: Voice identifier.
voice_engine:
type: string
description: Voice engine, for example `PlayDialog`, `Play3.0-mini`.
output_format:
type: string
enum:
- mp3
- wav
- ogg
- flac
- mulaw
speed:
type: number
quality:
type: string
enum:
- draft
- low
- medium
- high
- premium
TTSJobRequest:
type: object
required:
- text
- voice
properties:
text:
oneOf:
- type: string
- type: array
items:
type: string
voice:
type: string
voice_engine:
type: string
output_format:
type: string
speed:
type: number
quality:
type: string
parameters:
JobId:
name: jobId
in: path
required: true
schema:
type: string
description: TTS batch job identifier.
securitySchemes:
apiKey:
type: apiKey
in: header
name: AUTHORIZATION
description: Secret API key generated in the PlayHT studio.
userId:
type: apiKey
in: header
name: X-USER-ID
description: PlayHT user identifier paired with the API key.