curl --request POST \
--url https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite \
--header 'Content-Type: application/json' \
--header 'x-magnific-api-key: <api-key>' \
--data '
{
"prompt": "A serene mountain landscape at sunset with clouds moving slowly",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"seed": 2147483647
}
'import requests
url = "https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite"
payload = {
"prompt": "A serene mountain landscape at sunset with clouds moving slowly",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
"seed": 2147483647
}
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({
prompt: 'A serene mountain landscape at sunset with clouds moving slowly',
webhook_url: '<string>',
negative_prompt: 'blurry, low quality, distorted',
duration: 8,
resolution: '720p',
aspect_ratio: '16:9',
generate_audio: true,
seed: 2147483647
})
};
fetch('https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite', 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/text-to-video/veo-3-1-lite",
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([
'prompt' => 'A serene mountain landscape at sunset with clouds moving slowly',
'webhook_url' => '<string>',
'negative_prompt' => 'blurry, low quality, distorted',
'duration' => 8,
'resolution' => '720p',
'aspect_ratio' => '16:9',
'generate_audio' => true,
'seed' => 2147483647
]),
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/text-to-video/veo-3-1-lite"
payload := strings.NewReader("{\n \"prompt\": \"A serene mountain landscape at sunset with clouds moving slowly\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"duration\": 8,\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 2147483647\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/text-to-video/veo-3-1-lite")
.header("x-magnific-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"A serene mountain landscape at sunset with clouds moving slowly\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"duration\": 8,\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 2147483647\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite")
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 \"prompt\": \"A serene mountain landscape at sunset with clouds moving slowly\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"duration\": 8,\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 2147483647\n}"
response = http.request(request)
puts response.read_body{
"data": {
"generated": [],
"task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"status": "CREATED"
}
}Create video from text - Veo 3.1 Lite
Generate a video from a text prompt using Google Veo 3.1 Lite. A cost-efficient variant of Veo 3.1 supporting 720p and 1080p resolutions with optional native audio generation.
curl --request POST \
--url https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite \
--header 'Content-Type: application/json' \
--header 'x-magnific-api-key: <api-key>' \
--data '
{
"prompt": "A serene mountain landscape at sunset with clouds moving slowly",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"seed": 2147483647
}
'import requests
url = "https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite"
payload = {
"prompt": "A serene mountain landscape at sunset with clouds moving slowly",
"webhook_url": "<string>",
"negative_prompt": "blurry, low quality, distorted",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": True,
"seed": 2147483647
}
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({
prompt: 'A serene mountain landscape at sunset with clouds moving slowly',
webhook_url: '<string>',
negative_prompt: 'blurry, low quality, distorted',
duration: 8,
resolution: '720p',
aspect_ratio: '16:9',
generate_audio: true,
seed: 2147483647
})
};
fetch('https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite', 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/text-to-video/veo-3-1-lite",
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([
'prompt' => 'A serene mountain landscape at sunset with clouds moving slowly',
'webhook_url' => '<string>',
'negative_prompt' => 'blurry, low quality, distorted',
'duration' => 8,
'resolution' => '720p',
'aspect_ratio' => '16:9',
'generate_audio' => true,
'seed' => 2147483647
]),
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/text-to-video/veo-3-1-lite"
payload := strings.NewReader("{\n \"prompt\": \"A serene mountain landscape at sunset with clouds moving slowly\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"duration\": 8,\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 2147483647\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/text-to-video/veo-3-1-lite")
.header("x-magnific-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"A serene mountain landscape at sunset with clouds moving slowly\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"duration\": 8,\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 2147483647\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/text-to-video/veo-3-1-lite")
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 \"prompt\": \"A serene mountain landscape at sunset with clouds moving slowly\",\n \"webhook_url\": \"<string>\",\n \"negative_prompt\": \"blurry, low quality, distorted\",\n \"duration\": 8,\n \"resolution\": \"720p\",\n \"aspect_ratio\": \"16:9\",\n \"generate_audio\": true,\n \"seed\": 2147483647\n}"
response = http.request(request)
puts response.read_body{
"data": {
"generated": [],
"task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"status": "CREATED"
}
}Authorizations
Your Magnific API key. Required for authentication. Learn how to obtain an API key
Body
Text prompt describing the video to generate
20000"A serene mountain landscape at sunset with clouds moving slowly"
Webhook URL to notify when the task is completed
Text describing what to avoid in the generated video
2000"blurry, low quality, distorted"
Duration of the generated video in seconds (4, 6, or 8).
4, 6, 8 Resolution of the generated video. Veo 3.1 Lite supports 720p and 1080p.
720p, 1080p 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
Random seed for reproducibility
0 <= x <= 4294967295Response
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?