UGCBloom Logo MarkUGCBloom Wordmark

Reading data

Videos

Video submissions are the atomic unit you're paying for. Each video has a status (submitted → approved → live), a set of platform-specific stats that grow over time, and a creator. The list endpoint is filterable by status, which is handy for moderation dashboards or budget projections.

GET/campaigns/{campaignId}/videos

List videos in a campaign

Each entry includes current stats. Filter by status to look at just submissions awaiting review, or just live videos for performance work.
pageinteger

Page number

per_pageinteger

Items per page

statusenum

submitted, approved, rejected, live, resubmitted

const response = await fetch(
  "https://ugcbloom.com/api/v1/campaigns/:campaignId/videos", {
  headers: {
    "Authorization": "Bearer ugcb_live_your_api_key_here"
  }
}
);

const data = await response.json();
GET/campaigns/{campaignId}/videos/{videoId}

Get a single video

Includes stats_history, a full series of engagement snapshots over time. Use it to assess whether a video has plateaued or is still climbing.
const response = await fetch(
  "https://ugcbloom.com/api/v1/campaigns/:campaignId/videos/:videoId", {
  headers: {
    "Authorization": "Bearer ugcb_live_your_api_key_here"
  }
}
);

const data = await response.json();