Brand key required · unmetered

Campaign workflow

Everything after discovery: brief, hire, contract, review, pay. These endpoints need a brand key (free with any Roster brand plan). A data key gets 403 BRAND_KEY_REQUIRED.

Endpoint groups

GroupTypeDescription
/v1/rosterGET · POSTYour working creator list. POST /v1/roster/add adds by handle (dedupes by handle).
/v1/briefsGET · POSTCreate briefs; send with POST /v1/briefs/{id} and body { "action": "send", "recipients": [{ "email": … }] }.
/v1/campaignsGET · POST · PATCHCreate campaigns, read state and stats.
/v1/applicationsGET · PATCHCampaign applicants; approve or reject via PATCH /v1/applications/{id}.
/v1/contractsGET · POSTIssue and send contracts.
/v1/deliverablesGET · PATCHPromised vs delivered content and its review state.
/v1/messagesGET · POSTConversations. GET /v1/messages/{conversationId} returns the full thread; POST body field is body.
/v1/payoutsGET · POST · PATCHRecord payments; PATCH { "status": "paid" } settles external ones.
/v1/contentGET · POSTTracked posts and metrics; POST /v1/content/{id}/refresh re-pulls metrics.
/v1/affiliates/linksGET · POST · PATCH · DELETETracked links and click attribution.
/v1/shipmentsGET · POSTProduct seeding with carrier tracking.
/v1/analyticsGETAggregate campaign and content performance.
/v1/assetsGET · PATCHContent library files and folders (GET/POST /v1/assets/folders).
/v1/brandGET · PATCHThe identity behind the key; useful as a smoke test.

Example: brief a creator you found via search

1 · add to roster

curl -X POST "https://api.ugcroster.com/v1/roster/add" \
  -H "Authorization: Bearer rsk_brand_key" \
  -H "Content-Type: application/json" \
  -d '{ "ig_handle": "creatorhandle" }'

2 · send a brief

curl -X POST "https://api.ugcroster.com/v1/briefs/BRIEF_ID" \
  -H "Authorization: Bearer rsk_brand_key" \
  -H "Content-Type: application/json" \
  -d '{ "action": "send", "recipients": [{ "email": "creator@example.com" }] }'

3 · record the payout

curl -X POST "https://api.ugcroster.com/v1/payouts" \
  -H "Authorization: Bearer rsk_brand_key" \
  -H "Content-Type: application/json" \
  -d '{ "creator_email": "creator@example.com", "amount": 150, "description": "1 UGC video" }'

Complete field-level reference

This page is the map, not the territory. The full interactive reference documents every endpoint with request/response bodies, all fields, code samples in curl, JavaScript and Python, and the complete MCP tool list.

Notes that save you an hour

Brief send is POST /v1/briefs/{id} with an action field: there is no /send sub-route. Message bodies go in body, not message. The messages LIST endpoint truncates each thread to a 200-character preview; fetch the thread by id for full text. Creator messages containing emails or phone numbers are blocked with 403 by the contact-info guard.