비디오 검색
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>"
}/video/queue 응답에 download_url이 포함되어 있었다면, 완료된 파일을 해당 URL에서 다운로드하세요(이 엔드포인트에서 바이너리로 받지 않습니다). 그렇지 않으면 이 엔드포인트가 비디오를 반환합니다. 링크 동작 방식, 재시도, 선택적 DELETE에 대해서는 Private download links를 참조하세요.
인증
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
본문
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
응답
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
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>"
}