Promotions
List Promotions & Trials
Returns a single chronological feed that interleaves promotions and free-trial-link items — the same view that powers the OnlyFans "Promotions & Trials" tab. Each item is either a promo or a trial object — never both. Requires permission api_promotions_trials_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.
offsetintegerRows to skip. Default 0.
Response Fields
data.items[]arrayFeed entries, newest first. Each entry has either a
promoor atrialkey — discriminate on which is present.data.items[].promoobjectPresent for promotion entries. Same shape as Create Promotion response items.
data.items[].trialobjectPresent for trial-link entries —
id,url,trialLinkName,subscribeDays,subscribeCounts,claimCounts,createdAt,expiredAt,isFinished.data.hasMorebooleanWhether more pages remain.
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.items[] | array | Feed entries, newest first. Each entry has either a promo or a trial key — discriminate on which is present. |
| data.items[].promo | object | Present for promotion entries. Same shape as Create Promotion response items. |
| data.items[].trial | object | Present for trial-link entries — id, url, trialLinkName, subscribeDays, subscribeCounts, claimCounts, createdAt, expiredAt, isFinished. |
| data.hasMore | boolean | Whether more pages remain. |
| 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/promotions-trials?limit=20&offset=0" \
--header "Authorization: Bearer YOUR_API_KEY"Response
200