Skip to content
Developers
API docs / Features

MAKEUGC PLATFORM API · DOCS V2

Animation

Create animated scenes with consistent characters and a defined visual style.

Workflow

  1. Choose a model below and check its supported inputs, duration, resolution and credits.
  2. Send a generation request with your prompt and any required public reference URLs. Save the returned job ID.
  3. 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
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 charming 3D animated fox opens a tiny bakery at sunrise, expressive character movement, soft pastel colors, gentle camera push-in.",
  "duration": 10,
  "aspect_ratio": "9:16",
  "resolution": "720p",
  "generate_audio": true
}'
JavaScript
// 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 charming 3D animated fox opens a tiny bakery at sunrise, expressive character movement, soft pastel colors, gentle camera push-in.",
  "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);
Python
# Install the requests package before running.
import os
import requests

payload = {
    "model": "seedance-2.5",
    "prompt": "A charming 3D animated fox opens a tiny bakery at sunrise, expressive character movement, soft pastel colors, gentle camera push-in.",
    "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.