Bookmarks
List Bookmarks
Returns the creator's Saved for later collection. Saved posts and saved chat messages come back in the same feed, so branch on responseType before rendering a row — saved messages carry chat fields that saved posts do not. Narrow to one kind with entity_type. Requires permission api_bookmarks_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 10. Min 1, max 100.
offsetintegerRows to skip. Default 0.
categorystringMedia bucket to return:
all(default),photos,videos,audios,other,locked.otherholds text-only items;lockedholds items whose paywall can no longer be opened.entity_typestringWhat to include:
posts,messages, orall(default) for both.filterstringRestrict by age:
date_last_1_week,date_last_1_month,date_last_3_months. Omit for all time.
Response Fields
data.list[].responseTypestringpostormessage. Both kinds are mixed together whenentity_type=all, so branch on this before reading the rest of the row.data.list[].idintegerPost or message ID, depending on
responseType.data.list[].textstringCaption or message body, as HTML.
data.list[].priceintegerPrice. Saved messages only.
data.list[].chatUserIdintegerThe fan on the other side of the chat. Saved messages only.
data.list[].fromUserobjectWho sent the message. Saved messages only.
data.list[].isAddedToBookmarksbooleanAlways
truein this feed — every row here is saved by definition.data.hasMorebooleanWhether another page exists.
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[].responseType | string | post or message. Both kinds are mixed together when entity_type=all, so branch on this before reading the rest of the row. |
| data.list[].id | integer | Post or message ID, depending on responseType. |
| data.list[].text | string | Caption or message body, as HTML. |
| data.list[].price | integer | Price. Saved messages only. |
| data.list[].chatUserId | integer | The fan on the other side of the chat. Saved messages only. |
| data.list[].fromUser | object | Who sent the message. Saved messages only. |
| data.list[].isAddedToBookmarks | boolean | Always true in this feed — every row here is saved by definition. |
| data.hasMore | boolean | Whether another page exists. |
| 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/bookmarks?limit=20&offset=0&category=sample_category" \
--header "Authorization: Bearer YOUR_API_KEY"Response
200