Roster API

Getting started

REST over HTTPS, JSON in and out, Bearer auth. One base URL for creator data and the campaign workflow.

Base URL

https://api.ugcroster.com/v1

Always call this host. The apex domain (ugcroster.com) issues a redirect, and most HTTP clients, including curl, drop the Authorization header when following one: you will see a misleading AUTH_REQUIRED 401.

1. Get a key

Two key types, one format (rsk_ + 40 hex chars, 44 characters total):

Data key: self-serve at api.ugcroster.com/keys. Read-only access to creator search and creator profiles, metered in credits. No brand account needed.

Brand key: included with any Roster brand plan, unmetered, full surface (briefs, campaigns, contracts, messages, payouts, webhooks). Created in Settings → API & Integrations.

2. Make your first request

request

curl "https://api.ugcroster.com/v1/creators/search" \
  -H "Authorization: Bearer rsk_your_key_here" \
  -G \
  -d niche=fitness \
  -d follower_min=10000 \
  -d engagement_min=0.03 \
  -d limit=5

response 200

{
  "data": [
    {
      "pk": "…",
      "username": "…",
      "full_name": "…",
      "follower_count": 48210,
      "engagement_rate": 0.041,
      "category": "Fitness",
      "niches": ["fitness"],
      "city": "…", "state": "…", "country": "…",
      "extracted_email": "…",
      "is_verified": false
    }
  ],
  "pagination": { "page": 1, "limit": 5, "total": 1284 }
}

Responses use snake_case keys throughout. List endpoints share the same envelope: { data: [...], pagination: { page, limit, total } }. Pass page/limit (max 100) or offset to paginate.

3. Any language

javascript

const res = await fetch(
  'https://api.ugcroster.com/v1/creators/search?niche=fitness&follower_min=10000',
  { headers: { Authorization: 'Bearer rsk_your_key_here' } },
);
const { data, pagination } = await res.json();

python

import requests

r = requests.get(
    "https://api.ugcroster.com/v1/creators/search",
    headers={"Authorization": "Bearer rsk_your_key_here"},
    params={"niche": "fitness", "follower_min": 10000},
)
creators = r.json()["data"]