Fans
FansMetric dataGet Fan Links
The trial and tracking links this fan claimed on one account — the "how did they find us" panel. Both lists are always arrays, empty when there is nothing to show. Requires permission api_fm_fans_read_links.
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.
fan_id*integerFan's OnlyFans numeric user ID.
Response Fields
data.trial_links[].namestring | nullTrial link name.
data.trial_links[].urlstring | nullThe OnlyFans trial URL.
data.trial_links[].claim_countinteger | nullTotal claims on the link, across all fans — not this fan's claims.
data.trial_links[].is_hiddenboolean | nullWhether the link is hidden in the web app.
data.trial_links[].created_atstring | nullWhen the link was created (RFC 3339, UTC).
data.tracking_links[].namestring | nullCampaign name.
data.tracking_links[].codeinteger | nullOnlyFans campaign code. A number, matching
campaignCodeon the tracking-link endpoints.data.tracking_links[].claim_countinteger | nullTotal claims on the campaign, across all fans.
data.tracking_links[].is_hiddenboolean | nullWhether the campaign is hidden in the web app.
data.tracking_links[].created_atstring | nullWhen the campaign was created (RFC 3339, UTC).
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.trial_links[].name | string | null | Trial link name. |
| data.trial_links[].url | string | null | The OnlyFans trial URL. |
| data.trial_links[].claim_count | integer | null | Total claims on the link, across all fans — not this fan's claims. |
| data.trial_links[].is_hidden | boolean | null | Whether the link is hidden in the web app. |
| data.trial_links[].created_at | string | null | When the link was created (RFC 3339, UTC). |
| data.tracking_links[].name | string | null | Campaign name. |
| data.tracking_links[].code | integer | null | OnlyFans campaign code. A number, matching campaignCode on the tracking-link endpoints. |
| data.tracking_links[].claim_count | integer | null | Total claims on the campaign, across all fans. |
| data.tracking_links[].is_hidden | boolean | null | Whether the campaign is hidden in the web app. |
| data.tracking_links[].created_at | string | null | When the campaign was created (RFC 3339, UTC). |
| 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/fm/fans/XXXXX/links" \
--header "Authorization: Bearer YOUR_API_KEY"Response
200