Fans

FansMetric data

Get Fan Stats

A fan's spending split by account — one row per account you name, biggest spender first. Accounts they never bought from come back at zero rather than being dropped. The per-account view that List Fans rolls into a single total. Requires permission api_fans_read_stats.

https://public-api.fansmetric.com
POST/v1/fans/{fan_id}/stats
Bearer

Authorization

default
AuthorizationBearer <token>

Send your FansMetric API key as a Bearer token in the Authorization header.

In: header

Path Parameters

  • fan_id*integer

    The fan's OnlyFans numeric user ID.

Request Body

application/json
  • account_ids*array

    Array of OnlyFans numeric account IDs to report on. Every one you name gets a row, including accounts the fan has never bought from — those come back at 0 with null dates.

Response Fields

  • data.stats[].account_idstring

    OnlyFans numeric account ID — the same value you sent in account_ids.

  • data.stats[].account_namestring

    The account's OnlyFans username.

  • data.stats[].total_spendnumber

    Gross lifetime spend by this fan on this account.

  • data.stats[].purchase_countinteger

    Number of non-refunded transactions.

  • data.stats[].largest_purchasenumber

    Single biggest transaction.

  • data.stats[].average_purchasenumber

    Mean transaction value.

  • data.stats[].first_purchase_atstring | null

    Their first purchase on this account (RFC 3339, UTC). null when they have never bought from it.

  • data.stats[].last_purchase_atstring | null

    Their most recent purchase on this account (RFC 3339, UTC). Same field name as on List Fans, where it spans every account you named rather than one.

  • dataobject | array

    Endpoint-specific payload. See the fields below for this route.

  • _meta._credits.usedinteger

    Credits consumed by this request (currently always 1).

  • _meta._rate_limits.limit_minuteinteger

    Maximum requests per minute for the organization.

  • _meta._rate_limits.remaining_minuteinteger

    Remaining requests in the current minute window.

  • _meta._rate_limits.limit_dayinteger

    Maximum requests per day for the organization.

  • _meta._rate_limits.remaining_dayinteger

    Remaining requests in the current day window.

curl --request POST "https://public-api.fansmetric.com/v1/fans/XXXXX/stats" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "account_ids": ["100000002", "100000001"]
}'

Response

200
{
"data":{
"stats":[
0:{
"account_id":"100000001"
"account_name":"creator_XXXXX"
"total_spend":1163.02
"purchase_count":90
"largest_purchase":39
"average_purchase":12.922444444444444
"first_purchase_at":"2022-07-19T10:19:07Z"
"last_purchase_at":"2025-09-06T00:17:16Z"
}
1:{
"account_id":"100000002"
"account_name":"creator_YYYYY"
"total_spend":0
"purchase_count":0
"largest_purchase":0
"average_purchase":0
"first_purchase_at":null
"last_purchase_at":null
}
]
}
"_meta":{
"_credits":{
"used":1
}
"_rate_limits":{
"limit_minute":1000
"remaining_minute":999
"limit_day":50000
"remaining_day":49999
}
}
}