UGC video API: one clip to TikTok, Reels, Facebook and Shorts
Short vertical video is the core of UGC. Send the MP4 once with format: 'video' and UGC API publishes it to every connected account you list, in each platform's short-video placement.
Updated
Where the video goes
| Platform | Published as | Options |
|---|---|---|
| TikTok | Video post | draft, ai_generated, title |
| Reel, optionally on the grid and as a Story | grid, story | |
| Facebook Page | Reel, optionally as a Story | story |
| YouTube | Short (vertical or square, up to 3 minutes) | title, privacy |
One export that works everywhere
- 9:16, 1080x1920, MP4 H.264. This is the safe default on all four platforms.
- 3 to 90 seconds if you include Facebook. Meta's Page Reels spec caps duration at 90 seconds, and 60 seconds for Reels shared as Page Stories.
- Under 3 minutes for YouTube to treat it as a Short.
- No watermark from another app. Post a clean master, not a file downloaded from TikTok.
- Captions burned in if you rely on on-screen text. Platform auto-captions differ.
Example
const res = await fetch("https://ugcapi.dev/v1/posts", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.UGCAPI_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
accounts: ["acc_tt_01", "acc_ig_01", "acc_fb_01", "acc_yt_01"],
format: "video",
media: ["https://cdn.example.com/hooks/h-104.mp4"],
caption: "POV: you finally found a serum that works #skincare",
scheduled_at: "2026-11-04T15:30:00Z",
options: {
tiktok: { ai_generated: false },
instagram: { grid: true, story: false },
youtube: { title: "Finally found a serum that works", privacy: "public" },
},
}),
});
const post = await res.json();That is 4 credits, one per account. Turning on the Instagram Story adds 1. Track each account's result with GET /v1/posts/:id or with webhooks.
Captions per platform
One caption field covers all platforms. Keep the first line strong, since TikTok and Reels truncate early. Use youtube.title for a searchable title and tiktok.title if you want different TikTok text. Our repurposing guide covers what to change per platform.
AI UGC and disclosure
If the video uses AI avatars or AI-generated footage, set tiktok.ai_generated: true to apply TikTok's AI-generated content label. TikTok's community guidelines expect realistic AI content to be labeled. See the TikTok AI label guide.
Volume across many accounts
For 50 hooks across 10 creator accounts, don't send 50 posts at once. Create a campaign with a cadence like 1 per account per day and we stagger them. See UGC agencies for how teams run this.
FAQ
What video format should I export?
MP4, H.264, 1080x1920, 3 to 90 seconds. That fits TikTok, Instagram Reels, Facebook Reels and YouTube Shorts.
Can I send different captions per platform?
The caption is shared. You can set tiktok.title and youtube.title separately. For fully different captions, create separate posts.
Does adding an Instagram Story cost more?
Yes, one extra credit per Instagram account, since it is a separate piece of content on that account.
Can the video be longer than 90 seconds?
TikTok and YouTube may accept it, but Facebook Page Reels cap at 90 seconds. Leave Facebook out for longer clips.