List All Followings
Get a paginated list of followings for an Account. By default OnlyFans returns this list newest-first, sorted by subscribedByData.subscribeAt descending. The expired list does not share this order, so do not assume it applies there. Pass sort (optionally with sortDirection) to reorder the list — see the parameter description for the caveat that OnlyFans persists the chosen order account-wide. An empty page is not the end of the list: OnlyFans applies offset to the whole following collection before filtering it down to the requested list, so a page can come back empty while more results follow. Keep following _pagination.next_page until it is null instead of stopping at the first empty page.
Authorization
default Get your API Key from OnlyFansAPI Console - https://app.onlyfansapi.com/api-keys
In: header
Path Parameters
The Account ID
Query Parameters
Number of followings to return (1-50). Must be at least 1. Must not be greater than 50.
Pagination offset. Must be at least 0.
Search within following name/username.
Filter by online status (1 for online, 0 for offline, null for all).
1 | 0Filter by paid status (1 for paid, 0 for free, null for all).
1 | 0Order the list by last_activity (the followed creator's last activity), expire_date (subscription expiry), subscribe_date (subscription start) or is_expired (expired first — OnlyFans only offers this one on the expired list). Omit it to keep whichever order is currently stored for the account. Note: OnlyFans persists this order account-wide, so it also applies to later requests that omit sort and to the creator's own onlyfans.com UI, until it is changed again. Expired list: OnlyFans applies offset to the whole following collection and only then filters it down to expired subscriptions, so ordering by expiry descending puts the still-active subscriptions first and moves the expired rows to the tail of the collection — the first several hundred offsets then come back empty. Use sortDirection=asc or sort=is_expired to get expired-first results. For that reason sort=expire_date on the expired list defaults to asc instead of desc when you do not pass sortDirection. Whatever order you pick, an empty page is not the end of the list: keep following _pagination.next_page until it is null rather than stopping at the first empty page. This field is required when sortDirection is present.
"last_activity" | "expire_date" | "subscribe_date" | "is_expired"Direction for sort: desc (default) or asc. Requires sort to be set. Exception: sort=expire_date on the expired list defaults to asc, because desc moves the expired rows to the tail of the underlying collection and leaves the early pages empty. Passing sortDirection explicitly always wins.
"asc" | "desc"Response Body
application/json
curl -X GET "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/following/all?limit=10&offset=0&query=john&filter=&filter.online=1&filter.paid=1&sort=subscribe_date&sortDirection=desc"{
"data": {
"list": [
{
"view": "x",
"avatar": "https://public.onlyfans.com/files/j/jr/jrh/jrhrmrkcgwyldumcgfgsij7h9hncsf3b1640855614/avatar.jpg",
"avatarThumbs": {
"c50": "https://thumbs.onlyfans.com/public/files/thumbs/c50/j/jr/jrh/jrhrmrkcgwyldumcgfgsij7h9hncsf3b1640855614/avatar.jpg",
"c144": "https://thumbs.onlyfans.com/public/files/thumbs/c144/j/jr/jrh/jrhrmrkcgwyldumcgfgsij7h9hncsf3b1640855614/avatar.jpg"
},
"header": "https://public.onlyfans.com/files/x/xl/xlu/xlusgobxpcebctdptohj7bogxvl9flfu1671047829/254/header.jpg",
"headerSize": {
"width": 4868,
"height": 851
},
"headerThumbs": {
"w480": "https://thumbs.onlyfans.com/public/files/thumbs/w480/x/xl/xlu/xlusgobxpcebctdptohj7bogxvl9flfu1671047829/254/header.jpg",
"w760": "https://thumbs.onlyfans.com/public/files/thumbs/w760/x/xl/xlu/xlusgobxpcebctdptohj7bogxvl9flfu1671047829/254/header.jpg"
},
"id": 254,
"name": "OnlyFans Creators",
"username": "onlyfanscreators",
"canLookStory": true,
"canCommentStory": false,
"hasNotViewedStory": false,
"isVerified": true,
"canPayInternal": true,
"hasScheduledStream": false,
"hasStream": false,
"hasStories": false,
"tipsEnabled": true,
"tipsTextEnabled": false,
"tipsMin": 5,
"tipsMinInternal": 1,
"tipsMax": 200,
"canEarn": true,
"canAddSubscriber": false,
"subscribePrice": 0,
"isPaywallRequired": true,
"isRestricted": false,
"canRestrict": true,
"subscribedBy": true,
"subscribedByExpire": false,
"subscribedByExpireDate": "2025-01-01T00:00:00+00:00",
"subscribedByAutoprolong": true,
"subscribedIsExpiredNow": false,
"currentSubscribePrice": 0,
"subscribedOn": false,
"subscribedOnExpiredNow": null,
"subscribedOnDuration": null,
"listsStates": [
{
"id": "following",
"type": "following",
"name": "Following",
"hasUser": true,
"canAddUser": false,
"cannotAddUserReason": "ALREADY_EXISTS"
}
],
"canReport": false,
"canReceiveChatMessage": false,
"hideChat": false,
"lastSeen": null,
"isPerformer": true,
"isRealPerformer": true,
"subscribedByData": {
"price": 0,
"newPrice": 0,
"regularPrice": 0,
"subscribePrice": 0,
"discountPercent": 0,
"discountPeriod": 1,
"subscribeAt": "2025-01-01T00:00:00+00:00",
"expiredAt": "2025-01-01T00:00:00+00:00",
"renewedAt": "2025-01-01T00:00:00+00:00",
"discountFinishedAt": null,
"discountStartedAt": null,
"status": null,
"isMuted": false,
"unsubscribeReason": "No reason given",
"duration": "4 months",
"showPostsInFeed": true,
"subscribes": [
{
"id": 123,
"userId": 254,
"subscriberId": 123,
"date": "2025-01-01T00:00:00+00:00",
"duration": 3652,
"startDate": "2025-01-01T00:00:00+00:00",
"expireDate": "2025-01-01T00:00:00+00:00",
"cancelDate": null,
"price": 0,
"regularPrice": 0,
"discount": 0,
"earningId": 0,
"action": "subscribe",
"type": "auto",
"offerStart": null,
"offerEnd": null,
"isCurrent": true
}
],
"hasActivePaidSubscriptions": false
},
"subscribedOnData": null,
"canTrialSend": false,
"isBlocked": false,
"canUnsubscribe": true,
"isPendingAutoprolong": false
}
],
"hasMore": true
},
"_pagination": {
"next_page": "https://app.onlyfansapi.com/api/acct_abc123/following/all?offset=10&limit=10"
},
"_meta": {
"_credits": {
"used": 1,
"balance": 999999988,
"note": "Always"
},
"_cache": {
"is_cached": false,
"note": "Cache disabled for this endpoint"
},
"_rate_limits": {
"limit_minute": 1000,
"limit_day": 50000,
"remaining_minute": 999,
"remaining_day": 49942
}
}
}