UGCBloom Logo MarkUGCBloom Wordmark

UGCBloom API: read-only access to campaigns, creators, videos, stats. OpenAPI spec: /openapi.json. MCP server: /api/mcp (see /docs/mcp). Auth: Bearer ugcb_live_... Base URL: https://ugcbloom.com/api/v1. Rate limit: 100/min.

UGCBloom API

Read-only API for brands to access campaign data, creator performance, and video statistics.

Base URLhttps://ugcbloom.com/api/v1
AuthAuthorization: Bearer ugcb_live_...
FormatJSON responses with data + meta envelope
Rate limit100 requests/min per API key
🤖

Building with AI agents?

Skip the REST API — connect Claude or other AI agents directly via the MCP Server. OAuth-based, no manual auth setup needed.

Authentication

Create API keys in your organization's Settings > API Keys page. Pass the key in the Authorization header:

curl https://ugcbloom.com/api/v1/campaigns \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
readalways included

Campaigns, creators, videos, stats, leaderboards

messagesoptional

DM conversations and message history

Request & Response

Response Format

// Success
{ "data": [ ... ], "meta": { "page": 1, "per_page": 25, "total": 42 } }

// Error
{ "error": { "code": "not_found", "message": "Campaign not found" } }

Pagination

Use page and per_page (max 100). Check meta.total for total count.

Campaigns

GET/campaigns

List all campaigns

Returns a paginated list of all campaigns. This is typically the first endpoint to call — use the campaign id from the response with other endpoints.

ParameterTypeDescription
pageintegerPage number (default: 1)
per_pageintegerItems per page, max 100 (default: 25)
searchstringSearch by campaign title
statusenumdraft, requires_payment, active, under_review, ended, disapproved
sortstringField to sort by (e.g. created_at, budget)
orderenumasc or desc (default: desc)
sincedateFilter campaigns created after this date (ISO 8601)
untildateFilter campaigns created before this date (ISO 8601)
curl "https://ugcbloom.com/api/v1/campaigns" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
Example response
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Summer TikTok Campaign",
      "status": "active",
      "budget": 5000,
      "platforms": ["tiktok", "instagram"],
      "created_at": "2026-01-15T10:00:00Z"
    }
  ],
  "meta": { "page": 1, "per_page": 25, "total": 3 }
}
GET/campaigns/{campaignId}

Get campaign details

Full details for a single campaign including brief URL, geo targeting, and configuration.

curl "https://ugcbloom.com/api/v1/campaigns/:campaignId" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
GET/campaigns/{campaignId}/stats

Get campaign statistics

Comprehensive stats with optional sections. Always includes overview (views, spend, CPM, video status). Optional: growth (creator growth 48h/7d), production (submitted/approved/live with 7d deltas), spend (breakdown by unit), top_videos (ranked with per-video CPM).

ParameterTypeDescription
includestringComma-separated sections: growth, production, spend, top_videos. Omit for all.
curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/stats" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
Example response
{
  "data": {
    "overview": {
      "total_creators": 12, "total_videos": 28,
      "videos_by_status": { "submitted": 3, "approved": 10, "live": 15 },
      "total_views": 450000, "total_spend": 2340.50,
      "cpm": 5.20, "cpm_with_fees": 6.80
    },
    "growth": {
      "active_creators": 8, "new_creators_7d": 3, "new_creators_48h": 1
    },
    "production": {
      "total_live": 15, "new_live_7d": 4
    }
  }
}
GET/campaigns/{campaignId}/chart

Campaign growth time-series

Daily data points for views, likes, comments, CPM, and budget remaining. Use to track growth trends, CPM trajectory, and budget burn rate.

ParameterTypeDescription
daysintegerNumber of days (default: 30, max: 365)
curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/chart" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
Example response
{
  "data": [
    {
      "date": "2026-03-15",
      "total_views": 125000,
      "total_likes": 8500,
      "cpm": 5.20,
      "cpm_with_fees": 6.80,
      "budget_remaining": 2660.50
    }
  ]
}
GET/campaigns/{campaignId}/analytics

Creator cohort analysis

Follower tier distribution, country distribution, active creator rate, and average reach. Answers: where are my creators from? What size are they? What % have gone live?

curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/analytics" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
Example response
{
  "data": {
    "total_participants": 45,
    "active_creator_rate": 0.67,
    "average_creator_reach": 28500,
    "follower_distribution": [
      { "tier": "0-5K", "count": 12 },
      { "tier": "10K-50K", "count": 15 }
    ],
    "country_distribution": [
      { "country": "US", "label": "United States", "count": 18 }
    ]
  }
}
GET/campaigns/{campaignId}/leaderboard

Get creator leaderboard

Ranked list of top-performing videos. Sort by views, likes, comments, or payout.

ParameterTypeDescription
limitintegerNumber of entries, max 100 (default: 25)
sortenumviews, likes, comments, or payout (default: views)
curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/leaderboard" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"

Creators

GET/campaigns/{campaignId}/creators

List creators in a campaign

Creators with performance metrics, CPM, cost per video, live video count, and social accounts. Sort by cpm or cost_per_video to find best/worst performers.

ParameterTypeDescription
pageintegerPage number
per_pageintegerItems per page
searchstringSearch by creator name
statusenumactive or blocked
sortstringtotal_views, total_likes, total_payout, cpm, cost_per_video
curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/creators" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
GET/campaigns/{campaignId}/creators/{creatorId}

Get creator details

Detailed creator info including all their video submissions with per-platform stats.

curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/creators/:creatorId" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"

Videos

GET/campaigns/{campaignId}/videos

List videos in a campaign

All video submissions with performance stats. Filter by status.

ParameterTypeDescription
pageintegerPage number
per_pageintegerItems per page
statusenumsubmitted, approved, rejected, live, resubmitted
curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/videos" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
GET/campaigns/{campaignId}/videos/{videoId}

Get video details

Single video with current stats, plus full stats_history showing engagement over time (all snapshots). Use to assess video growth trajectory.

curl "https://ugcbloom.com/api/v1/campaigns/:campaignId/videos/:videoId" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"

Statistics

GET/stats

Organization-wide statistics

Comprehensive org stats with optional sections. Always includes overview (campaigns, creators, spend, CPM). Optional: growth (active/new creators), production (submitted/approved/live with 7d deltas), spend (by unit), campaigns (per-campaign breakdown), top_videos.

ParameterTypeDescription
includestringComma-separated sections: growth, production, spend, campaigns, top_videos. Omit for all.
curl "https://ugcbloom.com/api/v1/stats" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
GET/stats/historical

Historical statistics

Daily time-series with CPM tracking. Each day includes views, likes, comments, creators, campaigns, plus cumulative CPM and CPM with fees.

ParameterTypeDescription
daysintegerNumber of days of history (default: 30, max: 365)
curl "https://ugcbloom.com/api/v1/stats/historical" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"

Messages

GET/conversationsmessages

List conversations

All DM conversations involving your org members. Includes participants and last message.

ParameterTypeDescription
pageintegerPage number
per_pageintegerItems per page
curl "https://ugcbloom.com/api/v1/conversations" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"
GET/conversations/{conversationId}/messagesmessages

Get messages

Paginated messages from a conversation. Includes sender info, attachments, and reactions.

ParameterTypeDescription
pageintegerPage number
per_pageintegerMessages per page
curl "https://ugcbloom.com/api/v1/conversations/:conversationId/messages" \
  -H "Authorization: Bearer ugcb_live_your_api_key_here"