MAKEUGC PLATFORM API · DOCS V2
Cinematic
Create cinematic shots with deliberate camera movement, lighting and pacing.
Workflow
- Choose a model below and check its supported inputs, duration, resolution and credits.
- Send a generation request with your prompt and any required public reference URLs. Save the returned job ID.
- Poll the matching status endpoint until completion, then download the output.
This app entry opens the Seedance 2.5 composer. Describe the style in the prompt and supply references through the supported Seedance fields.
These workflows use the public model generation endpoints. The selected model controls available parameters and billing.
For /enterprise/generate, save request_id and poll /enterprise/status/{request_id}?media=video (or image for image models). Status 0 is processing, 1 is completed and 2 is failed. Video output is video_url; image output is output.output_link.
For /seedance/generate, save data.id and poll /seedance/status?id=ID. Read data.status and the completed data.url. Keep these two response formats separate.
Example IDs and media URLs are placeholders. Replace them with values from your account and accessible media files.
Choose a model
Example 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 cinematic tracking shot following a traveler through a sunlit old town, soft film grain, warm color grade, slow deliberate pacing.",
"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 cinematic tracking shot following a traveler through a sunlit old town, soft film grain, warm color grade, slow deliberate pacing.",
"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 cinematic tracking shot following a traveler through a sunlit old town, soft film grain, warm color grade, slow deliberate pacing.",
"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.