inworld/tts
Speech · Up to $10.45 per 1M characters
Endpoint
POST /v1/audio/speech — answers 202 with a job. Poll GET /v1/jobs/{id}, or receive it by webhook, until its state is final.
Dependencies
No field depends on another.
Request
curl https://api.opinference.com/v1/audio/speech \
-H "Authorization: Bearer $OP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "inworld/tts",
"prompt": "a paper boat drifting down a rain gutter"
}'Response
The job resource once it has succeeded.
{
"id": "job_01J9K2…",
"generation_id": "gen_01J9K2…",
"object": "job",
"state": "succeeded",
"modality": "audio_tts",
"model": "inworld/tts",
"created_at": "2026-09-30T08:00:00Z",
"started_at": "2026-09-30T08:00:04Z",
"completed_at": "2026-09-30T08:01:12Z",
"output": [
{
"url": "https://…?X-Amz-Signature=…",
"url_expires_at": "2026-09-30T09:01:12Z",
"type": "audio/mpeg",
"bytes": 196413,
"checksum_sha256": "…"
}
],
"usage": {
"units": {
"audio_second": 12
}
}
}Input
A JSON body. A key not listed here is refused, and the error names it.
| Field | Description |
|---|---|
| modelstring · required | The id of this model. |
| promptstring · required | The text to speak.Up to 2000 characters |
| voiceenum | The voice that speaks.One of: Loretta (en), Darlene (en), Marlene (en), Hank (en), Evelyn (en), Celeste (en), Pippa (en), Tessa (en), Liam (en), Callum (en), Hamish (en), Abby (en), Graham (en), Rupert (en), Mortimer (en), Snik (en), Anjali (en), Saanvi (en), Arjun (en), Claire (en), Oliver (en), Simon (en), Elliot (en), James (en), Serena (en), Gareth (en), Vinny (en), Lauren (en), Jessica (en), Ethan (en), Tyler (en), Jason (en), Chloe (en), Veronica (en), Victoria (en), Miranda (en), Sebastian (en), Victor (en), Malcolm (en), Kayla (en), Nate (en), Jake (en), Brian (en), Amina (en), Kelsey (en), Derek (en), Grant (en), Evan (en), Alex (en), Ashley (en), Craig (en), Deborah (en), Dennis (en), Edward (en), Elizabeth (en), Hades (en), Julia (en), Pixie (en), Mark (en), Olivia (en), Priya (en), Ronald (en), Sarah (en), Shaun (en), Theodore (en), Timothy (en), Wendy (en), Dominus (en), Hana (en), Clive (en), Carter (en), Blake (en), Luna (en), Yichen (zh), Xiaoyin (zh), Xinyi (zh), Jing (zh), Erik (nl), Katrien (nl), Lennart (nl), Lore (nl), Alain (fr), Hélène (fr), Mathieu (fr), Étienne (fr), Johanna (de), Josef (de), Gianni (it), Orietta (it), Asuka (ja), Satoshi (ja), Hyunwoo (ko), Minji (ko), Seojun (ko), Yoona (ko), Szymon (pl), Wojciech (pl), Heitor (pt), Maitê (pt), Diego (es), Lupita (es), Miguel (es), Rafael (es), Svetlana (ru), Elena (ru), Dmitry (ru), Nikolai (ru), Riya (hi), Manoj (hi), Yael (he), Oren (he), Nour (ar), Omar (ar) · Default: Craig (en) |
| modelsstring[] | Other model ids to try, in order, if this one is unavailable. Up to 5. |
| providerobject | Routing preferences: region, zdr, data_collection, sort, max_price. |
| opobject | Gateway options: retention (may only tighten), tags, session_id. |
Output
A job resource.
| Field | Description |
|---|---|
| id | The job id. Poll GET /v1/jobs/{id} with it. |
| generation_id | The generation this job belongs to. |
| object | Always "job". |
| state | queued, processing, succeeded, failed or canceled. The last three are final. |
| modality | The kind of output. |
| model | The model id that was asked for. |
| created_at | When the job was accepted. |
| started_at | When work began. Absent while queued. |
| completed_at | When the job reached a final state. |
| progress.percent | Percent complete, 0 to 100, or null when not reported. |
| progress.phase | queued, running or done. |
| progress.queue_position | Always null today. |
| output[] | The files produced: url (signed, re-issued on every read), url_expires_at, type, bytes, checksum_sha256. |
| usage | The billable units the job consumed. |
| usage.cost | An estimate from the published price: billing_usd, cost_source, cost_status ("estimated") and price_version. Your balance is charged the settled amount. |
| op_metadata | What applied when the job was accepted: generation_id, requested_model, retention_class, region and policy[]. |
| error | On failure: code, kind and a fixed message for the code. |