The AI UGC API.Creators, product photos, videos and scripts — one key.
Everything the ppl.studio dashboard does, over HTTP. Turn a product page into a finished 9:16 creator video, or call any single step — a photo, a script, a Veo clip, a lip-sync — from your app, your automations or your agent.
- Included in every plan
- OpenAPI 3.1 spec
- Using Claude? Try the MCP server
curl https://ppl.studio/api/v1/flows \
-H "Authorization: Bearer $PPL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"preset": "creator-ugc-video",
"briefSource": { "mode": "url", "value": "https://yourstore.com/products/glow-serum" },
"creatorSlug": "mia"
}'
# → { "ok": true, "data": { "runId": "3f1c9a…" } }182
REST endpoints
Everything the dashboard does, one key.
14
Ready workflows
Creator video, testimonial, app demo, carousel, photo packs…
$0
Markup on generation
Gemini and Veo bill your own Google key directly.
1080×1920
Finished MP4
Captions burned in, ready for TikTok, Reels and Shorts.
What teams build with it
The same engine the dashboard runs, without anyone clicking through it.
Ad creative at volume
Agencies and performance teams: one brief in, twenty hook variants out, each a finished 9:16 video — then into the ad account.
UGC inside your product
Shopify apps, marketplaces, store builders: turn a merchant's product page into creator photos and a video without leaving your UI.
Automations
n8n, Make, Zapier's HTTP step or a cron job: a new product lands, a photo pack and a TikTok video follow on their own.
AI agents
Give Claude, Cursor or your own agent the whole studio — through the MCP server, or by calling the API from your agent's tools.
Everything the dashboard does
If you can do it in ppl.studio, you can do it with a key. Six areas, 184 endpoints — each in the reference.
Workflows
Start any of the 19 workflows — creator UGC video, testimonial, TikTok & Reels, app demo, product demo, lip-sync, animated story ad, text message video, screen recording video, carousel, product photo packs, and free data carousels from your products, apps and product feeds — follow it, approve its preview, edit its script or a frame.
POST /api/v1/flowsVideo steps
Run one engine step on its own: animate a still into a Veo clip, voice a script, lip-sync a photo to a take, join clips with burned captions, upscale to 1080p or 4K.
POST /api/v1/bricks/jobsPictures
UGC photos of your creator holding your product, new camera angles, the next moment of a scene, product shots, Amazon and Shopify photo packs, app-screen frames.
POST /api/v1/images/generateWords
Talking-head and ad scripts on proven structures, hooks, long-form monologues, captions, topic ideas — and a critic that ranks, scores and revises them.
POST /api/v1/scripts/generateYour library
Creators (generated from a niche or built by hand), products, briefs, saved scripts with their posting results, storyboards, the gallery, uploads up to 512 MB.
POST /api/v1/personas/generateDistribution
Post a finished video to a Facebook Page, schedule Instagram posts, and read the queue and your plan's limits.
POST /api/v1/social/facebook/shareHow a video run works
A UGC video isn't one render. It's a brief, a script, a frame per line, then video — and the video is where the money goes. So a run stops and asks first.
- Step 01
Start a run
Send a product URL (or a written brief), a creator and a workflow. You get a run id back at once.
POST /api/v1/flows - Step 02
It writes and pictures
The run reads the page into a brief, writes the script and draws a first frame for every line. Seconds to a minute, and cheap.
GET /api/v1/flows/{id} - Step 03
You approve the price
The run stops at the preview: every frame with its line, and what the video will cost. Nothing is rendered until you approve.
POST /api/v1/flows/{id}/approve - Step 04
Collect the MP4
Veo animates the frames, the cut is joined with captions and upscaled. The run's cut.url is your 1080×1920 video.
cut.url
Quickstart: product page to MP4
Five calls from a fresh key to a finished creator video. Copy them into a terminal, or read the developer guide for a Node client.
- 1
Get a key
Create one at Account → API keys. It is shown once; only its hash is stored. Send it as
Authorization: Bearer …orx-api-key. Then ask the API what your plan allows:terminalexport PPL_API_KEY=ppl_live_… curl https://ppl.studio/api/v1/account -H "Authorization: Bearer $PPL_API_KEY" # → plan, image allowance, gemini.connected, video.allowed (and why not) - 2
Make a creator
Generate one from a niche and save it — or list the creators you already have with
GET /api/v1/personas.terminalcurl https://ppl.studio/api/v1/personas/generate \ -H "Authorization: Bearer $PPL_API_KEY" -H "Content-Type: application/json" \ -d '{ "niche": "skincare for busy moms", "save": true }' # → { "draft": { … }, "persona": { "slug": "mia-…", … } } - 3
Add your product
Upload the product photo, then save the product with it. Images up to 5 MB go in one request; video and audio up to 512 MB go in parts.
terminalcurl https://ppl.studio/api/v1/uploads -H "Authorization: Bearer $PPL_API_KEY" -F file=@serum.png # → { "url": "https://…/serum.png", "kind": "image", … } curl https://ppl.studio/api/v1/props \ -H "Authorization: Bearer $PPL_API_KEY" -H "Content-Type: application/json" \ -d '{ "name": "Glow Serum", "category": "handheld", "text": "Vitamin C serum, 30 ml", "image_urls": ["https://…/serum.png"] }' - 4
Start a video run
Pick a workflow from
GET /api/v1/presets— each lists what it needs and an example body. This one reads a product page:terminalcurl https://ppl.studio/api/v1/flows \ -H "Authorization: Bearer $PPL_API_KEY" -H "Content-Type: application/json" \ -d '{ "preset": "creator-ugc-video", "creatorSlug": "mia-…", "briefSource": { "mode": "url", "value": "https://yourstore.com/products/glow-serum" } }' # → { "runId": "3f1c9a…" } - 5
Approve the preview, download the video
Poll the run. Its
nextfield says what it waits on and which call moves it on. At the preview, check the frames and theestimate, approve, and poll again untilcut.urlis set.terminalcurl https://ppl.studio/api/v1/flows/3f1c9a… -H "Authorization: Bearer $PPL_API_KEY" # → "awaiting": "gate", "estimate": { "usd": 1.2, "clips": 3 }, "frames": [ … ], # "next": { "action": "approve", "call": { "method": "POST", "path": "/api/v1/flows/3f1c9a…/approve" } } curl -X POST https://ppl.studio/api/v1/flows/3f1c9a…/approve -H "Authorization: Bearer $PPL_API_KEY" # … a few minutes later: "finishedAt": "…", "cut": { "url": "https://…/final.mp4" }
Built to run unattended
No surprise spend
Video is the only expensive step, and every run stops before it with a price the server works out from the frames it has. Skip the stop per run with straightThrough — only when you mean it.
Jobs, not timeouts
Anything that takes minutes is a run or a job you poll. A run's next field tells your code what to do; a failed step says why and can be retried on its own.
Bring your own media
Upload product photos, reference images, clips and voice-overs. Anything that takes a URL takes one you uploaded — up to 512 MB in 8 MB parts.
Your account, your keys
A key acts as you and sees only your creators, products and runs. Everything it makes lands in your gallery. Revoke a key any time; only its hash is stored.
Retry-safe where it costs
Photo packs and bulk shots take an Idempotency-Key: the same key and body replays the first result instead of paying twice.
Documented, and machine-readable
Every endpoint is in the reference with its body and response, and in an OpenAPI 3.1 spec you can generate a client from.
Priced like the app — because it is the app
The API is included in every plan. Generation runs on your own Google Gemini key, so you pay Google's price with nothing added — and every run shows the video's cost before it renders.
See plans- Free
- 10 hosted photos
- No card. Try the API end to end.
- $1.99 / week
- Unlimited generation
- All workflows, video, the whole API.
- A UGC photo
- ≈ $0.045
- Gemini image, billed to your key.
- An 8-second clip
- ≈ $0.40
- Veo Lite at 720p, billed to your key.
API or MCP server?
The API — for code
Your app, your backend, your automations. Plain HTTPS and JSON, any language, every endpoint.
API referenceThe MCP server — for AI assistants
claude.ai, ChatGPT, Claude Code, Cursor and other MCP clients. Add one URL and sign in — or run it locally to save results to a folder on your machine.
AI UGC MCP serverQuestions
What is the ppl.studio API?
A REST API over everything the ppl.studio dashboard does: AI creators, product photos, UGC videos, scripts, carousels, storyboards and social posting. One per-user API key authorizes all 184 endpoints under /api/v1, and everything it makes shows up in your ppl.studio account.
How much does the API cost?
The API is included in your plan: free with 10 hosted photos, or $1.99 a week for unlimited generation. Generation itself runs on your own Google Gemini key and is billed by Google with no markup — about $0.045 a photo, and about $0.05 per second of Veo Lite video at 720p (an 8-second clip is about $0.40). A run shows the video's price before anything is rendered.
Can I make a UGC video from a product URL?
Yes. POST /api/v1/flows with a workflow (for example creator-ugc-video), a creator and briefSource { mode: "url", value: your product page }. The run reads the page into a brief, writes the script, draws the frames and stops at a priced preview; approve it and the finished 1080×1920 MP4 appears at cut.url.
What does video need?
Video steps need the paid plan and your own Gemini API key connected in the app, because Veo renders on your Google account. GET /api/v1/account says whether video is allowed for your key and, if not, why.
Do you have webhooks?
Clip assembly and upscale jobs accept a callbackUrl. Workflow runs and engine jobs are polled: GET the run or job, and its next field says what it is waiting on. A run takes minutes, so polling every 15–30 seconds is plenty.
Are there rate limits?
Yes, per user: text generation (scripts, hooks, captions) and some image tools have limits, and a refusal comes back as HTTP 429 with a Retry-After header. Veo renders one clip at a time per user; further clips wait their turn.
Is there an OpenAPI spec?
Yes — https://ppl.studio/openapi.yaml (OpenAPI 3.1) describes every /api/v1 endpoint, and the reference at /docs/api has each one's body and response with examples.
Can an AI assistant use the API?
Yes. The ppl.studio MCP server wraps the whole API as tools for AI assistants: add https://ppl.studio/mcp as a connector in claude.ai, ChatGPT, Claude Code or Cursor and sign in, or run it locally with one npx command to save results to your disk. A Claude skill teaches the workflows.
Your first video is five calls away
Make a key, generate a creator, point a run at your product page. 10 free photos to start, no card.