MAKEUGC PLATFORM API · DOCS V2
B-roll
Generate supporting product shots, cutaways and atmospheric footage.
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.
Example IDs and media URLs are placeholders. Replace them with values from your account and accessible media files.
Choose a model
Animate an image with the Kling model available in B-roll.
kling-broll Seedance 2.5Generate video from a prompt, with optional image and audio references.
seedance-2.5 Kling 2.6 ProGenerate a video from text or a first frame with Kling 2.6 Pro.
kling-2-6-pro WAN 3.0 · Text to videoText to video with WAN 3.0, from 2 to 30 seconds.
wan-3-0-t2v WAN 3.0 · Image to videoImage to video with WAN 3.0, from 2 to 30 seconds.
wan-3-0-i2vExample request
This example uses Kling · B-roll. 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/enterprise/generate" \
-H "X-Api-Key: $MAKEUGC_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"model": "kling-broll",
"params": {
"prompt": "A slow macro shot of a ceramic coffee cup, steam rising in soft morning light, clean product framing, no text overlays.",
"image_url": "https://your-cdn.example/product.jpg"
}
}'
// 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/enterprise/generate", {
method: "POST",
headers: {
"X-Api-Key": apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "kling-broll",
"params": {
"prompt": "A slow macro shot of a ceramic coffee cup, steam rising in soft morning light, clean product framing, no text overlays.",
"image_url": "https://your-cdn.example/product.jpg"
}
}),
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": "kling-broll",
"params": {
"prompt": "A slow macro shot of a ceramic coffee cup, steam rising in soft morning light, clean product framing, no text overlays.",
"image_url": "https://your-cdn.example/product.jpg"
}
}
response = requests.post(
"https://app.makeugc.ai/api/platform/enterprise/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.