Skip to content
UGC API

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

PlatformPublished asOptions
TikTokVideo postdraft, ai_generated, title
InstagramReel, optionally on the grid and as a Storygrid, story
Facebook PageReel, optionally as a Storystory
YouTubeShort (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

javascript
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.

Related