Retrieve generated speech
June 25, 2026
Table of contents
Use this endpoint to retrieve a generated speech clip. Attempting to retrieve a job that is still generating will return the current status. Poll until audio_status_final is true.
To generate speech, use POST speech/create.
https://api.useapi.net/v2/pixverse/speech/
audio_id
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
API tokenis required, see Setup useapi.net for details.
Path parameter
audio_idis required. Specify theaudio_idreturned by POST speech/create. The account email is encoded in the id, so no separateemailis needed.
Responses
-
{ "audio_id": "user:<userid>-pixverse:<email>-speech:<number>", "asset_id": 11223344, "audio_status": 1, "status": "finish", "create_mode": "voice", "provider": "minimax", "model": "speech-2.8-hd", "voice_id": "minimax_english_radiant_girl", "voice_name": "Radiant Girl", "language_code": "en", "prompt": "May the Force be with you.", "url": "https://media.pixverse.ai/pixverse/audio/speech/11223344.mp3", "name": "PixVerse_Speech_11223344.mp3", "duration": 3, "credits": 1, "created_at": "2026-06-23T12:34:56Z", "updated_at": "2026-06-23T12:35:06Z", "audio_status_name": "COMPLETED", "audio_status_final": true } -
{ "error": "<Error message>", "code": 400 } -
{ "error": "Unauthorized", "code": 401 } -
The speech clip was deleted or not found.
{ "error": "Speech user:<userid>-pixverse:<email>-speech:<number> not found" }
Audio Status Values
| audio_status | audio_status_name | audio_status_final | Description |
|---|---|---|---|
| 1 | COMPLETED | true | Speech ready, check url |
| 5 | QUEUED | false | Accepted, waiting to start |
| 8 | FAILED | true | Generation failed, see fail_reason |
| 10 | GENERATING | false | Speech is being generated |
When a job fails (audio_status 8) the response also carries fail_code and a human-readable fail_reason describing the underlying error. These are usually transient backend errors, so re-submitting the same request often succeeds.
Model
{ // TypeScript, all fields are optional
audio_id: string
asset_id: number
audio_status: number
status: string
create_mode: string
provider: string
model: string
voice_id: string
voice_name: string
language_code: string
prompt: string
path: string
url: string
name: string
duration: number
file_size: number
format: string
sample_rate: number
bitrate: number
channel: number
credits: number
created_at: string
updated_at: string
// present only when audio_status is 8 (FAILED)
fail_code: string
fail_reason: string
// added
audio_status_name: string
audio_status_final: boolean
error: string
}
Examples
-
curl "https://api.useapi.net/v2/pixverse/speech/audio_id" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" -
const token = "API token"; const audio_id = "audio_id to retrieve"; const apiUrl = `https://api.useapi.net/v2/pixverse/speech/${audio_id}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" audio_id = "audio_id to retrieve" apiUrl = f"https://api.useapi.net/v2/pixverse/speech/{audio_id}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json())