Fans
List Latest Fans
Get a paginated list fans, filterable by total, only new subscribers, or only renewals. Newest fans are first.
AuthorizationBearer <token>
Get your API Key from OnlyFansAPI Console - https://app.onlyfansapi.com/api-keys
In: header
Path Parameters
accountstring
The Account ID
Query Parameters
start_date?string
Start date for filtering (required with end_date)
end_date?string
End date for filtering (required with start_date)
type?string
Filter by type: total, renew, or new
offset?string
Number of fans to skip
limit?string
Number of fans to return (1-100)
start_date?string
This field is required when end_date is present.
end_date?string
This field is required when start_date is present.
type?string
Value in
"total" | "renew" | "new"
offset?integer
Must be at least 0.
limit?integer
Must be at least 1. Must not be greater than 100.
Response Body
curl -X GET "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/fans/latest?start_date=2024-01-01&end_date=2024-12-31&type=total&limit=50" \
-H "Content-Type: application/json" \
-d '{}'
const body = JSON.stringify({})
fetch("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/fans/latest?start_date=2024-01-01&end_date=2024-12-31&type=total&limit=50", {
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/fans/latest?start_date=2024-01-01&end_date=2024-12-31&type=total&limit=50"
body := strings.NewReader(`{}`)
req, _ := http.NewRequest("GET", url, body)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/fans/latest?start_date=2024-01-01&end_date=2024-12-31&type=total&limit=50"
body = {}
response = requests.request("GET", url, json = body, headers = {
"Content-Type": "application/json"
})
print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/fans/latest?start_date=2024-01-01&end_date=2024-12-31&type=total&limit=50"))
.header("Content-Type", "application/json")
.GET(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
using System;
using System.Net.Http;
using System.Text;
var body = new StringContent("""
{}
""", Encoding.UTF8, "application/json");
var client = new HttpClient();
var response = await client.GetAsync("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/fans/latest?start_date=2024-01-01&end_date=2024-12-31&type=total&limit=50", body);
var responseBody = await response.Content.ReadAsStringAsync();
{
"data": {
"users": [
{
"view": "x",
"avatar": "https://public.onlyfans.com/files/l/la/lal/.../123/avatar.jpg",
"avatarThumbs": {
"c50": "https://thumbs.onlyfans.com/public/files/thumbs/c50/l/la/lal/.../123/avatar.jpg",
"c144": "https://thumbs.onlyfans.com/public/files/thumbs/c144/l/la/lal/.../123/avatar.jpg"
},
"header": null,
"headerSize": null,
"headerThumbs": null,
"id": 123,
"name": "name",
"username": "username",
"canLookStory": false,
"canCommentStory": false,
"hasNotViewedStory": false,
"isVerified": true,
"canPayInternal": true,
"hasScheduledStream": false,
"hasStream": false,
"hasStories": false,
"tipsEnabled": false,
"tipsTextEnabled": true,
"tipsMin": 5,
"tipsMinInternal": 1,
"tipsMax": 200,
"canEarn": true,
"canAddSubscriber": true,
"subscribePrice": 4.99,
"subscriptionBundles": [],
"displayName": "",
"notice": "",
"isPaywallRequired": true,
"isRestricted": false,
"canRestrict": true,
"subscribedBy": false,
"subscribedByExpire": null,
"subscribedByExpireDate": null,
"subscribedByAutoprolong": null,
"subscribedIsExpiredNow": null,
"currentSubscribePrice": null,
"subscribedOn": true,
"subscribedOnExpiredNow": false,
"subscribedOnDuration": "6 days",
"listsStates": [
{
"id": "following",
"type": "following",
"name": "Following",
"hasUser": false,
"canAddUser": false,
"cannotAddUserReason": "SYSTEM_LIST"
},
{
"id": "fans",
"type": "fans",
"name": "Fans",
"hasUser": true,
"canAddUser": false,
"cannotAddUserReason": "ALREADY_EXISTS"
},
{
"id": "recent",
"type": "recent",
"name": "Recent (last 24 hours)",
"hasUser": false,
"canAddUser": false,
"cannotAddUserReason": "SYSTEM_LIST"
},
{
"id": "tagged",
"type": "tagged",
"name": "Tagged",
"hasUser": false,
"canAddUser": false,
"cannotAddUserReason": "SYSTEM_LIST"
},
{
"id": "friends",
"type": "friends",
"name": "Friends",
"hasUser": false,
"canAddUser": true,
"cannotAddUserReason": null
},
{
"id": "muted",
"type": "muted",
"name": "Muted",
"hasUser": false,
"canAddUser": true,
"cannotAddUserReason": null
}
],
"canReport": false,
"canReceiveChatMessage": true,
"hideChat": false,
"lastSeen": "2025-01-01T00:00:00+00:00",
"isPerformer": true,
"isRealPerformer": true,
"subscribedByData": null,
"subscribedOnData": {
"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": null,
"discountFinishedAt": null,
"discountStartedAt": null,
"status": "Set to Expire",
"isMuted": false,
"unsubscribeReason": "No reason given",
"duration": "6 days",
"tipsSumm": 0,
"subscribesSumm": 0,
"messagesSumm": 0,
"postsSumm": 0,
"streamsSumm": 0,
"totalSumm": 0,
"lastActivity": "2025-01-01T00:00:00+00:00",
"recommendations": 0,
"subscribes": [
{
"id": 123,
"userId": 123,
"subscriberId": 123,
"date": "2025-01-01T00:00:00+00:00",
"duration": 7,
"startDate": "2025-01-01T00:00:00+00:00",
"expireDate": "2025-01-01T00:00:00+00:00",
"cancelDate": null,
"price": 0,
"regularPrice": 4.99,
"discount": 0,
"earningId": 0,
"action": "subscribe",
"type": "trial",
"offerStart": "2025-01-01T00:00:00+00:00",
"offerEnd": "2025-01-01T00:00:00+00:00",
"isCurrent": true
}
],
"hasActivePaidSubscriptions": false
},
"canTrialSend": false,
"isBlocked": false,
"promoOffers": [
{
"id": 123,
"subscribeDays": 7,
"createdAt": "2025-01-01T00:00:00+00:00",
"expiredAt": "2025-01-01T00:00:00+00:00",
"finishedAt": "2025-01-01T00:00:00+00:00",
"subscriberId": "123",
"userId": "123"
}
]
}
],
"offset": 0,
"hasMore": false
},
"_pagination": {
"next_page": null
},
"_meta": {
"_credits": {
"used": 1,
"balance": 999999226,
"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": 49951
}
}
}