Tracking Links
OnlyFans liveList Tracking Links
Relays the creator's tracking campaigns live from OnlyFans — the same payload OF's webapp renders on its Campaigns tab, wrapped in the FansMetric envelope. GET /v1/{account_id}/campaigns is an alias for this route: same handler, same response, under OF's own naming. For revenue, cost, tags and the search / tag_ids / visibility filters, call the FansMetric-backed list instead. Requires permission api_tracking_links_list.
https://public-api.fansmetric.comAuthorization
defaultAuthorizationBearer <token>Send your FansMetric API key as a Bearer token in the Authorization header.
In: header
Path Parameters
account_id*integerOnlyFans numeric account ID.
Query Parameters
limitintegerPage size. Default 100. Min 1, max 200 (values above 200 are clamped).
offsetintegerRows to skip. Default 0.
fieldstringSort and stats column. One of
created_date(default),subscribers_counts,transitions_counts,clicks_count,name,shared.sortstringdesc(default) orasc.with_deletedbooleantrue(default) includes soft-deleted campaigns;falsereturns only active ones. Matches the OF webapp's Campaigns-tab toggle.sorting_deletedbooleanWhen
true, soft-deleted campaigns are sorted to the bottom even when included. Defaultfalse.statsbooleanWhen
true, OF computescountSubscribersandcountTransitionsover thestart_date/end_datewindow. Defaultfalse— leave off unless you need windowed stats.start_datestringOnly forwarded when
stats=true. FormatYYYY-MM-DD HH:MM:SS(UTC). Default: 2 years ago. TheTseparator is normalized to a space.end_datestringOnly forwarded when
stats=true. FormatYYYY-MM-DD HH:MM:SS(UTC). Default: end of today UTC.
Response Fields
data.list[]arrayCampaigns on this page, including soft-deleted entries when
with_deleted=true.data.list[].idintegerOnlyFans campaign ID.
data.list[].campaignNamestringFriendly display name on OnlyFans.
data.list[].campaignCodeintegerNumeric code embedded in the tracking URL (
https://onlyfans.com/{username}/c{code}).data.list[].countTransitionsintegerClick-throughs. Scoped to the window when
stats=true; otherwise all-time.data.list[].countSubscribersintegerSubscribers attributed to this campaign. Scoped to the window when
stats=true; otherwise all-time.data.list[].createdAtstringISO timestamp when the campaign was created.
data.list[].endDatestring | nullISO timestamp when the campaign expires;
nullif open-ended.data.list[].deletedAtstring | nullISO timestamp when the campaign was soft-deleted;
nullif active.data.hasMorebooleanWhether more pages remain.
_pagination.next_pagestringRelative URL preserving query parameters with
offsetbumped. Omitted on the last page.dataobject | arrayEndpoint-specific payload. See the fields below for this route.
_meta._credits.usedintegerCredits consumed by this request (currently always
1)._meta._rate_limits.limit_minuteintegerMaximum requests per minute for the organization.
_meta._rate_limits.remaining_minuteintegerRemaining requests in the current minute window.
_meta._rate_limits.limit_dayintegerMaximum requests per day for the organization.
_meta._rate_limits.remaining_dayintegerRemaining requests in the current day window.
| Field | Type | Description |
|---|---|---|
| data.list[] | array | Campaigns on this page, including soft-deleted entries when with_deleted=true. |
| data.list[].id | integer | OnlyFans campaign ID. |
| data.list[].campaignName | string | Friendly display name on OnlyFans. |
| data.list[].campaignCode | integer | Numeric code embedded in the tracking URL (https://onlyfans.com/{username}/c{code}). |
| data.list[].countTransitions | integer | Click-throughs. Scoped to the window when stats=true; otherwise all-time. |
| data.list[].countSubscribers | integer | Subscribers attributed to this campaign. Scoped to the window when stats=true; otherwise all-time. |
| data.list[].createdAt | string | ISO timestamp when the campaign was created. |
| data.list[].endDate | string | null | ISO timestamp when the campaign expires; null if open-ended. |
| data.list[].deletedAt | string | null | ISO timestamp when the campaign was soft-deleted; null if active. |
| data.hasMore | boolean | Whether more pages remain. |
| _pagination.next_page | string | Relative URL preserving query parameters with offset bumped. Omitted on the last page. |
| data | object | array | Endpoint-specific payload. See the fields below for this route. |
| _meta._credits.used | integer | Credits consumed by this request (currently always 1). |
| _meta._rate_limits.limit_minute | integer | Maximum requests per minute for the organization. |
| _meta._rate_limits.remaining_minute | integer | Remaining requests in the current minute window. |
| _meta._rate_limits.limit_day | integer | Maximum requests per day for the organization. |
| _meta._rate_limits.remaining_day | integer | Remaining requests in the current day window. |
curl --request GET "https://public-api.fansmetric.com/v1/100000001/tracking-links?limit=20&offset=0&field=sample_field" \
--header "Authorization: Bearer YOUR_API_KEY"Response
200