inworld/tts-1.5-mini
Speech · Typically $0.001202 per request
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-1.5-mini",
"prompt": "a paper boat drifting down a rain gutter",
"voice": "Loretta"
}'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-1.5-mini",
"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 · required | The voice that speaks.One of: Loretta, Darlene, Marlene, Hank, Evelyn, Celeste, Pippa, Tessa, Liam, Callum, Hamish, Abby, Graham, Rupert, Mortimer, Snik, Anjali, Saanvi, Arjun, Claire, Oliver, Simon, Elliot, James, Serena, Gareth, Vinny, Lauren, Jessica, Ethan, Tyler, Jason, Chloe, Veronica, Victoria, Miranda, Sebastian, Victor, Malcolm, Kayla, Nate, Jake, Brian, Amina, Kelsey, Derek, Grant, Evan, Alex, Ashley, Craig, Deborah, Dennis, Edward, Elizabeth, Hades, Julia, Pixie, Mark, Olivia, Priya, Ronald, Sarah, Shaun, Theodore, Timothy, Wendy, Dominus, Hana, Clive, Carter, Blake, Luna |
| output_formatenum | File format of the generated audio.One of: MP3, WAV, FLAC, OGG · Default: MP3 |
| speednumber | Speaking rate, where 1 is normal.From 0.5 to 1.5 · Default: 1 |
| 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. |