API & MCP
Everything on the studio is available programmatically. Keys are issued on your account page; the same per-video credits apply. Machine-readable spec: /openapi.json.
Generate videos
POST https://ugcmaker.app/api/videos
X-Api-Key: ugc_sk_…
Content-Type: application/json
{ "url": "https://www.amazon.com/…", "count": 3,
"format": "Unboxing", "hook": "Product Dodge",
"setting": "Kitchen", "avatar": "chloe",
"desc": "optional creative direction" }
→ 201 { "batch": ["a1b2c3d4e5", …] }Poll a job
GET https://ugcmaker.app/api/videos/{id}
X-Api-Key: ugc_sk_…
→ { "state": "done", "videoUrl": "https://…/videos/{id}.mp4" }List your videos
GET https://ugcmaker.app/api/videos
X-Api-Key: ugc_sk_…
→ { "jobs": [ { "id", "state", "url", "video_url", "created_at" }, … ] }Download the file
GET https://ugcmaker.app/api/videos/{id}/file?download=1
X-Api-Key: ugc_sk_…
→ 302 redirect to the mp4Check credits & catalog
GET https://ugcmaker.app/api/credits (X-Api-Key) → { "credits": 42 }
GET https://ugcmaker.app/api/formats (no auth) → { formats, hooks, settings, pricing }MCP server (Claude, Cursor, agents)
claude mcp add --transport http ugcmaker https://ugcmaker.app/api/mcp # tools: list_formats · generate_video · get_result · get_credits
Errors: 401 missing auth · 402 not enough credits · 404 unknown job. Rate limits are generous; batch cap is 5 videos per request. Every read endpoint accepts the same X-Api-Key as generate.