MAKEUGC PLATFORM API · DOCS V2
Model API reference
Discover available enterprise models, submit an image or video job, and retrieve its result through a shared API.
Choose an endpoint
| Use case | Endpoint | Input structure |
|---|---|---|
| Enterprise image/video models |
/enterprise/generate
|
model + params
|
| Seedance 2.0, 2.0 Fast, 2.5 |
/seedance/generate
|
Top-level model and inputs |
| Actor and template workflows | Feature-specific endpoints | Defined by each feature |
All paths are relative to
https://app.makeugc.ai/api/platform. The
enterprise path is the existing public model API namespace.
API access and credits remain subject to your account’s permissions.
List available enterprise models #
/enterprise/models
Returns the current enterprise catalog with model IDs, media types and credit descriptions. The response below is an excerpt. Dedicated Seedance IDs such as seedance-2.5 are documented separately and are not returned by this endpoint.
Parameters
No request parameters.
Request example
curl --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/enterprise/models" \
-H "X-Api-Key: $MAKEUGC_API_KEY"
// 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/models", {
method: "GET",
headers: {
"X-Api-Key": apiKey,
},
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
response = requests.get(
"https://app.makeugc.ai/api/platform/enterprise/models",
headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
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())
200 response example
{
"models": [
{
"model": "gpt-image-2",
"media": "image",
"credits": "0.1"
},
{
"model": "veo3-1-fast-t2v",
"media": "video",
"credits": "1.0"
}
]
}
All requests require X-Api-Key. See
errors & retries for unsuccessful
responses.
Generate with an enterprise model #
/enterprise/generate
The same endpoint creates images, edits images and generates videos. Send the exact model ID and put its inputs inside params. Generation is asynchronous.
Request body
| Parameter | Description |
|---|---|
model
string
Required
|
Exact public model ID from the model catalog. |
params
object
Required
|
Model-specific input fields. See the individual model page for required fields, types, defaults and limits. |
project_id
string
Optional
|
Existing project belonging to your account. Omit to create a project automatically. |
webhook_url
string
Optional
|
Optional callback URL for supported models. Models marked polling-only reject this field. Enterprise Seedance does not forward it. Always keep polling available. |
Request example
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": "gpt-image-2",
"params": {
"prompt": "A studio photograph of a ceramic coffee cup.",
"quality": "high",
"output_format": "png"
}
}'
// 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": "gpt-image-2",
"params": {
"prompt": "A studio photograph of a ceramic coffee cup.",
"quality": "high",
"output_format": "png"
}
}),
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": "gpt-image-2",
"params": {
"prompt": "A studio photograph of a ceramic coffee cup.",
"quality": "high",
"output_format": "png"
}
}
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())
200 response example
{
"request_id": "request_123",
"project_id": "project_123",
"media": "image",
"model": "gpt-image-2",
"status": "queued",
"message": "Enterprise API job queued"
}
All requests require X-Api-Key. See
errors & retries for unsuccessful
responses.
Get an enterprise job #
/enterprise/status/{requestId}
Poll by the request_id returned from generation. Supply media to select the image or video result. Jobs must belong to your account.
Parameters
| Parameter | Description |
|---|---|
requestId
string · path
Required
|
The returned request_id. |
media
string · query
Optional
|
Result type. When omitted, video is checked first, then image.
Allowed: |
Request example
curl --fail-with-body --max-time 120 -X GET "https://app.makeugc.ai/api/platform/enterprise/status/REQUESTID" \
-H "X-Api-Key: $MAKEUGC_API_KEY"
// 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/status/REQUESTID", {
method: "GET",
headers: {
"X-Api-Key": apiKey,
},
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
response = requests.get(
"https://app.makeugc.ai/api/platform/enterprise/status/REQUESTID",
headers={"X-Api-Key": os.environ["MAKEUGC_API_KEY"]},
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())
200 response example
{
"request_id": "request_123",
"media": "image",
"status": 1,
"mode": "gpt-image-2",
"project_id": "project_123",
"output": {
"output_link": [
"https://your-cdn.example/result.png"
]
},
"created_at": "2026-10-13T00:00:00.000Z",
"updated_at": "2026-10-13T00:00:30.000Z"
}
All requests require X-Api-Key. See
errors & retries for unsuccessful
responses.
For the dedicated Seedance API, open Seedance 2.5, Seedance 2.0 Pro or Seedance 2.0 Fast.