PixVerse C1 Image-to-Video
curl --request POST \
--url https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"image": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"generate_audio_switch": true
}
'import requests
url = "https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video"
payload = {
"image": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"generate_audio_switch": True
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
image: '<string>',
prompt: '<string>',
duration: 123,
resolution: '<string>',
generate_audio_switch: true
})
};
fetch('https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video', 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.highwayapi.ai/v3/async/pixverse-c1-image-to-video",
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' => '<string>',
'prompt' => '<string>',
'duration' => 123,
'resolution' => '<string>',
'generate_audio_switch' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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.highwayapi.ai/v3/async/pixverse-c1-image-to-video"
payload := strings.NewReader("{\n \"image\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"generate_audio_switch\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.highwayapi.ai/v3/async/pixverse-c1-image-to-video")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"image\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"generate_audio_switch\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"image\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"generate_audio_switch\": true\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}Video
PixVerse C1 Image-to-Video
POST
/
v3
/
async
/
pixverse-c1-image-to-video
PixVerse C1 Image-to-Video
curl --request POST \
--url https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"image": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"generate_audio_switch": true
}
'import requests
url = "https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video"
payload = {
"image": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"generate_audio_switch": True
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
image: '<string>',
prompt: '<string>',
duration: 123,
resolution: '<string>',
generate_audio_switch: true
})
};
fetch('https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video', 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.highwayapi.ai/v3/async/pixverse-c1-image-to-video",
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' => '<string>',
'prompt' => '<string>',
'duration' => 123,
'resolution' => '<string>',
'generate_audio_switch' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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.highwayapi.ai/v3/async/pixverse-c1-image-to-video"
payload := strings.NewReader("{\n \"image\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"generate_audio_switch\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")
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.highwayapi.ai/v3/async/pixverse-c1-image-to-video")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"image\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"generate_audio_switch\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.highwayapi.ai/v3/async/pixverse-c1-image-to-video")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"image\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"generate_audio_switch\": true\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>"
}The PixVerse C1 image-to-video model converts static images into cinematic dynamic videos, supporting durations of 1–15 seconds, up to 1080p resolution, and optional native audio generation.
This is an asynchronous API and will only return the task_id of the asynchronous task. You should use this task_id to request the Get Task Result API to retrieve the generated result.
Request Headers
string
required
Enum value:
application/jsonstring
required
Bearer authentication format: Bearer {{API Key}}.
Request Body
string
required
URL of the reference image for the first frame of the video; supports .jpg, .jpeg, and .png formats.
string
required
A text prompt describing the desired motion effect, camera style, and atmosphere, up to 2048 characters.Length limit: 0 - 2048
integer
default:5
Duration of the generated video in seconds, ranging from 1 to 15.Value range: [1, 15]
string
default:"720p"
Resolution of the output video.Available values:
360p, 540p, 720p, 1080pboolean
default:false
Whether to generate native audio while generating the video.
Response Information
string
required
Use the task_id to request the Get Task Result API to retrieve the generated output.
⌘I