Recupera video
Retrieve a video generation result. Returns the video file if completed, or a status if the request is still processing.
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/video/retrieve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "video-model-123",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": false
}
'import requests
url = "https://api.venice.ai/api/v1/video/retrieve"
payload = {
"model": "video-model-123",
"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: 'video-model-123',
queue_id: '123e4567-e89b-12d3-a456-426614174000',
delete_media_on_completion: false
})
};
fetch('https://api.venice.ai/api/v1/video/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/video/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' => 'video-model-123',
'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/video/retrieve"
payload := strings.NewReader("{\n \"model\": \"video-model-123\",\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/video/retrieve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"video-model-123\",\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/video/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\": \"video-model-123\",\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": 145000,
"execution_duration": 53200
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": {
"message": "The selected model provider rejected this request due to its content policies. Credits have been refunded. Try using wan-2-7-text-to-video instead.",
"type": "provider_content_policy",
"credits_refunded": true,
"recommended_model": "wan-2-7-text-to-video"
}
}{
"error": "<string>"
}{
"error": "<string>"
}download_url restituito da /video/queue (non come binario da questo endpoint). Consulta Link di download privati per scoprire come funziona il link, i retry e l’eventuale DELETE.
Autorizzazioni
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Corpo
The ID of the model used for video generation.
"video-model-123"
The ID of the video generation request.
"123e4567-e89b-12d3-a456-426614174000"
If true, the video 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 video.
false
Risposta
Video file if completed, or processing status if still in progress
The status of the video generation request.
PROCESSING, COMPLETED "PROCESSING"
The estimated execution time of the video generation request in milliseconds (P80).
145000
The current duration of the video generation request in milliseconds.
53200
Questa pagina è stata utile?
curl --request POST \
--url https://api.venice.ai/api/v1/video/retrieve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "video-model-123",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": false
}
'import requests
url = "https://api.venice.ai/api/v1/video/retrieve"
payload = {
"model": "video-model-123",
"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: 'video-model-123',
queue_id: '123e4567-e89b-12d3-a456-426614174000',
delete_media_on_completion: false
})
};
fetch('https://api.venice.ai/api/v1/video/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/video/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' => 'video-model-123',
'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/video/retrieve"
payload := strings.NewReader("{\n \"model\": \"video-model-123\",\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/video/retrieve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"video-model-123\",\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/video/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\": \"video-model-123\",\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": 145000,
"execution_duration": 53200
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": {
"message": "The selected model provider rejected this request due to its content policies. Credits have been refunded. Try using wan-2-7-text-to-video instead.",
"type": "provider_content_policy",
"credits_refunded": true,
"recommended_model": "wan-2-7-text-to-video"
}
}{
"error": "<string>"
}{
"error": "<string>"
}