MAKEUGC PLATFORM API · DOCS V2
Scenes
Generate individual scenes from descriptions and image references.
Workflow
- Describe one scene, including subject, movement, camera and setting.
- Choose a video model and provide an image reference when required.
- Submit and poll each scene separately. Use Video Extend for connected Veo scenes.
Example IDs and media URLs are placeholders. Replace them with values from your account and accessible media files.
Choose a model
Generate video from a prompt, with optional image and audio references.
seedance-2.5 Kling 2.5 TurboGenerate a video from text or a first frame with Kling 2.5 Turbo.
kling-2-5-turbo Kling 2.6 ProGenerate a video from text or a first frame with Kling 2.6 Pro.
kling-2-6-pro Kling 3.0Animate a first frame with Kling 3.0.
kling-3-0 WAN 2.6 VideoGenerate a video from text or a first frame with WAN 2.6 Video.
wan-2-6-video Seedance 1.5 ProGenerate a video from text or a first frame with Seedance 1.5 Pro.
seedance-1-5-pro Pixverse 5.5Generate a video from text or a first frame with Pixverse 5.5.
pixverse-5-5Example request
This example uses Seedance 2.5. Replace media URLs with your own files. The model reference documents all options and the matching status request.
curl --fail-with-body --max-time 120 -X POST "https://app.makeugc.ai/api/platform/seedance/generate" \
-H "X-Api-Key: $MAKEUGC_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "seedance-2.5",
"prompt": "A creator picks up a ceramic travel cup from a kitchen counter, turns toward the camera and smiles. Soft daylight, natural movement, vertical framing.",
"duration": 10,
"aspect_ratio": "9:16",
"resolution": "720p",
"generate_audio": true
}'
// Run on your server with Node.js 20+.
const apiKey = process.env.MAKEUGC_API_KEY;
if (!apiKey) throw new Error("Set MAKEUGC_API_KEY first");
const response = await fetch("https://app.makeugc.ai/api/platform/seedance/generate", {
method: "POST",
headers: {
"X-Api-Key": apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "seedance-2.5",
"prompt": "A creator picks up a ceramic travel cup from a kitchen counter, turns toward the camera and smiles. Soft daylight, natural movement, vertical framing.",
"duration": 10,
"aspect_ratio": "9:16",
"resolution": "720p",
"generate_audio": true
}),
signal: AbortSignal.timeout(120000),
});
const text = await response.text();
if (!response.ok) {
throw new Error(`HTTP ${response.status}: ${text} (request ${response.headers.get("x-request-id")})`);
}
const result = JSON.parse(text);
console.log(result);
# Install the requests package before running.
import os
import requests
payload = {
"model": "seedance-2.5",
"prompt": "A creator picks up a ceramic travel cup from a kitchen counter, turns toward the camera and smiles. Soft daylight, natural movement, vertical framing.",
"duration": 10,
"aspect_ratio": "9:16",
"resolution": "720p",
"generate_audio": True
}
response = requests.post(
"https://app.makeugc.ai/api/platform/seedance/generate",
headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
json=payload,
timeout=120,
)
if not response.ok:
raise RuntimeError(f"HTTP {response.status_code}: {response.text} "
f"(request {response.headers.get('x-request-id')})")
print(response.json())
See Jobs & status for polling and result formats.