Retrieve Audio
Retrieve the status or result of an audio generation request. If the audio is still being generated, returns processing status with estimated time. If complete, returns the audio data.
Authentication: This endpoint accepts either a Bearer API key or a SIGN-IN-WITH-X header for x402 wallet-based authentication. The legacy X-Sign-In-With-X header is also accepted during migration. When using x402, a 402 Payment Required response indicates insufficient balance and includes top-up instructions.
curl --request POST \
--url https://api.venice.ai/api/v1/audio/retrieve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "elevenlabs-music",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": false
}
'import requests
url = "https://api.venice.ai/api/v1/audio/retrieve"
payload = {
"model": "elevenlabs-music",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'elevenlabs-music',
queue_id: '123e4567-e89b-12d3-a456-426614174000',
delete_media_on_completion: false
})
};
fetch('https://api.venice.ai/api/v1/audio/retrieve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.venice.ai/api/v1/audio/retrieve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'elevenlabs-music',
'queue_id' => '123e4567-e89b-12d3-a456-426614174000',
'delete_media_on_completion' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.venice.ai/api/v1/audio/retrieve"
payload := strings.NewReader("{\n \"model\": \"elevenlabs-music\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.venice.ai/api/v1/audio/retrieve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"elevenlabs-music\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.ai/api/v1/audio/retrieve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"elevenlabs-music\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "PROCESSING",
"average_execution_time": 20000,
"execution_duration": 5200
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"suggested_prompt": "A cinematic instrumental track inspired by stormy weather and dramatic tension."
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}queue_id returned by /audio/queue to check generation status. When the request completes, this endpoint returns the generated audio data. Voice-changer models use /audio/voice-changer/retrieve instead.
Postman Collection
For additional examples, please see this Postman Collection.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The ID of the model used for audio generation. Voice-changer models are not supported on /api/v1/audio/retrieve or /api/v1/audio/complete; use the /api/v1/audio/voice-changer endpoints instead.
"elevenlabs-music"
The ID of the audio generation request. Use this to poll for status and retrieve the result.
"123e4567-e89b-12d3-a456-426614174000"
If true, the audio media will be deleted from storage after the request is completed. If false, you can use the complete endpoint to remove the media once you have successfully downloaded the audio.
false
Response
Audio generation status or completed audio
The status of the audio generation request.
PROCESSING "PROCESSING"
The estimated execution time of the audio generation request in milliseconds (P80).
20000
The current duration of the audio generation request in milliseconds.
5200
Was this page helpful?
curl --request POST \
--url https://api.venice.ai/api/v1/audio/retrieve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "elevenlabs-music",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": false
}
'import requests
url = "https://api.venice.ai/api/v1/audio/retrieve"
payload = {
"model": "elevenlabs-music",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'elevenlabs-music',
queue_id: '123e4567-e89b-12d3-a456-426614174000',
delete_media_on_completion: false
})
};
fetch('https://api.venice.ai/api/v1/audio/retrieve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.venice.ai/api/v1/audio/retrieve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'elevenlabs-music',
'queue_id' => '123e4567-e89b-12d3-a456-426614174000',
'delete_media_on_completion' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.venice.ai/api/v1/audio/retrieve"
payload := strings.NewReader("{\n \"model\": \"elevenlabs-music\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.venice.ai/api/v1/audio/retrieve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"elevenlabs-music\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.ai/api/v1/audio/retrieve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"elevenlabs-music\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "PROCESSING",
"average_execution_time": 20000,
"execution_duration": 5200
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"suggested_prompt": "A cinematic instrumental track inspired by stormy weather and dramatic tension."
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}