API ReferenceEndpoints

Endpoints

All nine Hotline UGC API endpoints, their parameters and what each returns.

Every endpoint is a GET and every one is under:

https://app.hotlineugc.com/api/v1

Paginated endpoints take limit, 1 to 100, defaulting to 25, and offset, defaulting to 0. They answer with a pagination object carrying has_more.

Workspaces

List workspaces

GET /workspaces

The workspaces your credential reaches, with your role in each. This is where you get the workspaceId the other eight endpoints need.

No parameters.

Brand context

Get brand context

GET /workspaces/{workspaceId}/context

The workspace's own description of itself: who the brand is, what it sells, how it talks. Meant for grounding a model before it writes anything.

No parameters.

Creators

List creators

GET /workspaces/{workspaceId}/creators

Your roster, with each creator's terms.

ParameterTypeNotes
qstringFree text search, up to 200 characters
tagstringFilter to one tag
limit, offsetintegerPagination

Content

List content

GET /workspaces/{workspaceId}/content
ParameterTypeNotes
qstringFree text search, up to 200 characters
statusenumpending, in_review, approved, rejected, revision_requested
creator_iduuidOne creator's submissions
file_typeenumvideo, image, document
has_analysisbooleantrue or false, for creatives that have been analysed
limit, offsetintegerPagination

Get one creative

GET /workspaces/{workspaceId}/content/{contentId}

One creative in detail, including its versions.

Analysis

Get a version's analysis

GET /workspaces/{workspaceId}/analysis/{versionId}

What the creative intelligence pass found on one version: the hook, the angle, the format, the voice, and the reasoning behind each.

Analysis is on Growth and Agency, like the API itself. See Creative Intelligence.

Performance

Read performance

GET /workspaces/{workspaceId}/performance

Spend, delivery and revenue, attributed to the creative and the creator behind each ad.

ParameterTypeNotes
byenumcreative, the default, or creator
group_byenumcontent folds a creative's ads together, mapping keeps one row per ad
from, tostringA date range
daysstringA trailing window, as an alternative to from and to
creator_iduuidOne creator
file_typeenumvideo or image

Where Meta did not model incremental attribution, incremental figures come back as null with a reason of not_modelled_by_meta rather than as a zero. A zero and an absence are indistinguishable in what Meta returns, so the API withholds the number instead of inventing one. The dashboard shows an estimate and labels it as one.

Royalties

Read royalties

GET /workspaces/{workspaceId}/royalties

What has accrued, and against which terms.

ParameterTypeNotes
creator_iduuidOne creator
from, tostringYYYY-MM-DD

Jobs

Get a job

GET /workspaces/{workspaceId}/jobs/{jobId}

The state of a background job, for work that does not finish inside a request.