Reach
List Promotion Subscribers
Returns the paginated list of subscribers who joined via a specific promotion. Each row is a full user profile with the discounted price, regular price, and lifetime spend totals. Requires permission api_reach_list_promotion_subscribers.
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.
promo_id*integerPromotion ID from
/reach/promotions.
Query Parameters
limitintegerPage size. Default 10. Min 1, max 100.
offsetintegerRows to skip.
Response Fields
data.list[]arraySubscriber rows. Newest claims first.
data.list[].idintegerSubscriber user ID.
data.list[].usernamestringSubscriber username.
data.list[].subscribedOnData.pricenumberDiscounted price the fan paid via this promo.
data.list[].subscribedOnData.regularPricenumberNormal subscription price (what they'd pay without the promo).
data.list[].subscribedOnData.subscribeAtstringWhen the fan subscribed (ISO 8601).
data.list[].subscribedOnData.expiredAtstringWhen their subscription expired.
data.list[].subscribedOnData.durationstringHuman-readable subscription length (
"6 months","1 month", …).data.list[].subscribedOnData.totalSummnumberLifetime spend across tips, messages, posts, streams, subscriptions.
data.list[].promoOffersarrayOther promos this user is eligible for. Often empty.
data.hasMorebooleanWhether more pages are available.
dataobject | arrayEndpoint-specific payload. See the fields below for this route.
_pagination.next_pagestringRelative URL for the next page, with the cursor or offset already applied. Append it to the API base URL and send it as-is. Omitted entirely on the last page.
_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 | Subscriber rows. Newest claims first. |
| data.list[].id | integer | Subscriber user ID. |
| data.list[].username | string | Subscriber username. |
| data.list[].subscribedOnData.price | number | Discounted price the fan paid via this promo. |
| data.list[].subscribedOnData.regularPrice | number | Normal subscription price (what they'd pay without the promo). |
| data.list[].subscribedOnData.subscribeAt | string | When the fan subscribed (ISO 8601). |
| data.list[].subscribedOnData.expiredAt | string | When their subscription expired. |
| data.list[].subscribedOnData.duration | string | Human-readable subscription length ("6 months", "1 month", …). |
| data.list[].subscribedOnData.totalSumm | number | Lifetime spend across tips, messages, posts, streams, subscriptions. |
| data.list[].promoOffers | array | Other promos this user is eligible for. Often empty. |
| data.hasMore | boolean | Whether more pages are available. |
| data | object | array | Endpoint-specific payload. See the fields below for this route. |
| _pagination.next_page | string | Relative URL for the next page, with the cursor or offset already applied. Append it to the API base URL and send it as-is. Omitted entirely on the last page. |
| _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/reach/promotions/sample_promo_id/subscribers?limit=20&offset=0" \
--header "Authorization: Bearer YOUR_API_KEY"Response
200