List creators
Returns a cursor-paginated page of creators with rolled-up video metrics plus Cost / CPM / CPE from payouts in the active date range.
Drill chain: Children of campaigns. Pass campaignIds to scope to creators of those campaigns. The returned id can be used as a creatorIds filter on the Accounts / Videos endpoints.
Pagination: cursor-based. Use nextCursor to fetch the next page. Set limit: 0 for a count-only request.
Filtering: pass a filter array for structured constraints (status, country, gender, metrics). Use q for free-text search on name/email. Use statusIn as a shortcut to filter by creator status; it takes precedence over a status entry in filter.
apiKeyAuthx-api-key<token>API key for authentication. Keys are prefixed with cops_.
cursor?|Opaque pagination cursor returned in nextCursor from the previous page. Pass null (or omit) for the first page. Cursors are tied to the active sort + filters and become invalid if those change.
limit?integerPage size, 0–200. Use 0 to skip row materialization and return only totalCount (useful for tab badges / count-only requests). Default 100.
0 <= value <= 200100dateRange?platforms?array<>campaignIds?array<|unknown>creatorIds?array<>sort?stringSingle-column sort. Format: <columnId> for ascending, -<columnId> for descending (e.g. -engagementRate, views, -publishedAt). Allowed columnIds match the entity's sort keys; invalid keys are ignored.
length <= 60q?stringFree-text search. Per-entity semantics: matches name/description for campaigns, name/email for creators, handle/name for accounts, title/handle for videos.
length <= 200includeColumns?array<>Column ids the caller intends to render. When supplied, columns not listed may be skipped for performance and return as null, unless they're sorted or filtered. Unknown ids are silently ignored.
items <= 100statusIn?array<>filter?array<>Filter constraints. Each entry is { columnId, variant, operator, value? }. Supported operators per variant: number/date accept gt/gte/lt/lte/between + isEmpty/isNotEmpty; multi-select accepts isAnyOf/isNoneOf + isEmpty/isNotEmpty; boolean accepts isTrue/isFalse + isEmpty/isNotEmpty; text accepts is/isNot/contains + isEmpty/isNotEmpty. Invalid pairs are silently dropped.
items <= 40Response schema unavailable.
curl -X GET 'https://cops.app/api/brand/manager/creators'List campaigns GET
Returns a cursor-paginated page of campaigns with rolled-up metrics for the active date range — creator/account/video counts plus aggregated views, engagement, payouts (Cost / CPM / CPE). **Drill chain**: Top-level. Use the returned `id` as a `campaignIds` filter on the Creators / Accounts / Videos endpoints to drill down. **Pagination**: cursor-based. Use `nextCursor` to fetch the next page. Set `limit: 0` for a count-only request. **Filtering**: pass a `filter` array of `ManagerFilter` records to narrow on numeric metrics, dates, or enum columns. Combine with `q` for free-text search on name/description, `dateRange` for the metrics window, and `platforms` to scope which videos contribute to the rollup.
List accounts GET
Returns a cursor-paginated page of social accounts (a creator's TikTok / Instagram / etc. handle) with rolled-up video metrics. **Drill chain**: Children of creators (and grandchildren of campaigns). Pass `campaignIds` and/or `creatorIds` to scope. The returned `id` can be used as an `accountIds` filter on the Videos endpoint. **Pagination**: cursor-based. Use `nextCursor` to fetch the next page. Set `limit: 0` for a count-only request. **Filtering**: pass a `filter` array for structured constraints (followers, engagement, account status, scrape health). Use `q` for free-text search on handle/name. **TikTok Ads readiness**: TikTok rows include last-synced org-scoped Business Center readiness fields: `tiktokAdsLinkStatus`, identity metadata, `tiktokAdsAvailableStatus`, `tiktokAdsCanPullVideo`, `tiktokAdsSyncedAt`, and `tiktokAdsLinkReason`. These fields are not realtime ownership proof. **Meta partnership ads**: Instagram rows include last-synced org-scoped partnership-permission fields: `metaAdsLinkStatus` (linked/pending/not_linked/revoked/unknown), `metaAdsPermissionId`, `metaAdsCreatorUsername`, `metaAdsSyncedAt`, and `metaAdsLinkReason`. These fields are not realtime ownership proof.