curl --request POST \
--url https://api.magnific.com/v1/ai/text-to-video/veo-3-1 \
--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": 1
}
'import requests
url = "https://api.magnific.com/v1/ai/text-to-video/veo-3-1"
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": 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({
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: 1
})
};
fetch('https://api.magnific.com/v1/ai/text-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/text-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([
'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' => 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/text-to-video/veo-3-1"
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\": 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/text-to-video/veo-3-1")
.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\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/text-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 \"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\": 1\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
Generate a video from text prompt using Google Veo 3.1 model. Supports multiple resolutions (720p, 1080p, 4K) and optional audio generation.
curl --request POST \
--url https://api.magnific.com/v1/ai/text-to-video/veo-3-1 \
--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": 1
}
'import requests
url = "https://api.magnific.com/v1/ai/text-to-video/veo-3-1"
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": 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({
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: 1
})
};
fetch('https://api.magnific.com/v1/ai/text-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/text-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([
'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' => 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/text-to-video/veo-3-1"
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\": 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/text-to-video/veo-3-1")
.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\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/text-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 \"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\": 1\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
20000"blurry, low quality, distorted"
Duration of the generated video in seconds.
4, 6, 8 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
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?