curl --request POST \
--url https://api.magnific.com/v1/ai/reference-to-video/veo-3-1 \
--header 'Content-Type: application/json' \
--header 'x-magnific-api-key: <api-key>' \
--data '
{
"image_urls": [
"https://example.com/character1.jpg",
"https://example.com/character2.jpg"
],
"prompt": "The character walks through a futuristic city at night",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"seed": 1
}
'import requests
url = "https://api.magnific.com/v1/ai/reference-to-video/veo-3-1"
payload = {
"image_urls": ["https://example.com/character1.jpg", "https://example.com/character2.jpg"],
"prompt": "The character walks through a futuristic city at night",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
"seed": 1
}
headers = {
"x-magnific-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-magnific-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
image_urls: ['https://example.com/character1.jpg', 'https://example.com/character2.jpg'],
prompt: 'The character walks through a futuristic city at night',
webhook_url: '<string>',
negative_prompt: 'blurry, low quality, distorted',
resolution: '720p',
aspect_ratio: '16:9',
generate_audio: true,
seed: 1
})
};
fetch('https://api.magnific.com/v1/ai/reference-to-video/veo-3-1', 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.magnific.com/v1/ai/reference-to-video/veo-3-1",
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([
'image_urls' => [
'https://example.com/character1.jpg',
'https://example.com/character2.jpg'
],
'prompt' => 'The character walks through a futuristic city at night',
'webhook_url' => '<string>',
'negative_prompt' => 'blurry, low quality, distorted',
'resolution' => '720p',
'aspect_ratio' => '16:9',
'generate_audio' => true,
'seed' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-magnific-api-key: <api-key>"
],
]);
$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.magnific.com/v1/ai/reference-to-video/veo-3-1"
payload := strings.NewReader("{\n \"image_urls\": [\n \"https://example.com/character1.jpg\",\n \"https://example.com/character2.jpg\"\n ],\n \"prompt\": \"The character walks through a futuristic city at night\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-magnific-api-key", "<api-key>")
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.magnific.com/v1/ai/reference-to-video/veo-3-1")
.header("x-magnific-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"image_urls\": [\n \"https://example.com/character1.jpg\",\n \"https://example.com/character2.jpg\"\n ],\n \"prompt\": \"The character walks through a futuristic city at night\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/reference-to-video/veo-3-1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-magnific-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image_urls\": [\n \"https://example.com/character1.jpg\",\n \"https://example.com/character2.jpg\"\n ],\n \"prompt\": \"The character walks through a futuristic city at night\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 1\n}"
response = http.request(request)
puts response.read_bodyCreate video with reference images - Veo 3.1
Generate a video with character or object consistency using reference images. Maintains visual identity across scenes for storytelling and multi-scene projects. Supports 720p, 1080p, and 4K resolutions with native audio generation including dialogue and sound effects. Fixed 8-second duration at 24 FPS.
curl --request POST \
--url https://api.magnific.com/v1/ai/reference-to-video/veo-3-1 \
--header 'Content-Type: application/json' \
--header 'x-magnific-api-key: <api-key>' \
--data '
{
"image_urls": [
"https://example.com/character1.jpg",
"https://example.com/character2.jpg"
],
"prompt": "The character walks through a futuristic city at night",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"seed": 1
}
'import requests
url = "https://api.magnific.com/v1/ai/reference-to-video/veo-3-1"
payload = {
"image_urls": ["https://example.com/character1.jpg", "https://example.com/character2.jpg"],
"prompt": "The character walks through a futuristic city at night",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
"seed": 1
}
headers = {
"x-magnific-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-magnific-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
image_urls: ['https://example.com/character1.jpg', 'https://example.com/character2.jpg'],
prompt: 'The character walks through a futuristic city at night',
webhook_url: '<string>',
negative_prompt: 'blurry, low quality, distorted',
resolution: '720p',
aspect_ratio: '16:9',
generate_audio: true,
seed: 1
})
};
fetch('https://api.magnific.com/v1/ai/reference-to-video/veo-3-1', 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.magnific.com/v1/ai/reference-to-video/veo-3-1",
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([
'image_urls' => [
'https://example.com/character1.jpg',
'https://example.com/character2.jpg'
],
'prompt' => 'The character walks through a futuristic city at night',
'webhook_url' => '<string>',
'negative_prompt' => 'blurry, low quality, distorted',
'resolution' => '720p',
'aspect_ratio' => '16:9',
'generate_audio' => true,
'seed' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-magnific-api-key: <api-key>"
],
]);
$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.magnific.com/v1/ai/reference-to-video/veo-3-1"
payload := strings.NewReader("{\n \"image_urls\": [\n \"https://example.com/character1.jpg\",\n \"https://example.com/character2.jpg\"\n ],\n \"prompt\": \"The character walks through a futuristic city at night\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-magnific-api-key", "<api-key>")
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.magnific.com/v1/ai/reference-to-video/veo-3-1")
.header("x-magnific-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"image_urls\": [\n \"https://example.com/character1.jpg\",\n \"https://example.com/character2.jpg\"\n ],\n \"prompt\": \"The character walks through a futuristic city at night\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/reference-to-video/veo-3-1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-magnific-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image_urls\": [\n \"https://example.com/character1.jpg\",\n \"https://example.com/character2.jpg\"\n ],\n \"prompt\": \"The character walks through a futuristic city at night\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 1\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Your Magnific API key. Required for authentication. Learn how to obtain an API key
Body
Array of reference image URLs (1-3 images) for character or object consistency. Images must be publicly accessible HTTPS URLs.
1 - 3 elements[ "https://example.com/character1.jpg", "https://example.com/character2.jpg" ]
Text prompt describing the video to generate with the reference subjects
20000"The character walks through a futuristic city at night"
Webhook URL to notify when the task is completed
Text describing what to avoid in the generated video
20000"blurry, low quality, distorted"
Resolution of the generated video.
720p, 1080p, 4k Aspect ratio of the generated video. 16:9 for landscape, 9:16 for portrait.
16:9, 9:16 Whether to generate audio for the video including dialogue and sound effects
Random seed for reproducibility
x >= 0Response
OK - The task exists and the status is returned
Show child attributes
Show child attributes
{ "task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91", "status": "CREATED", "generated": [ "https://openapi-generator.tech", "https://openapi-generator.tech" ] }
Was this page helpful?