Reach

Get Profile Visitors Overview

Full "Profile Visitors" reach payload — top countries + duration users + visitors/duration chart + total counter — in one response. For a smaller card-shaped summary, use Earnings Overview with by=visitors. Requires permission api_reach_read_profile_visitors.

https://public-api.fansmetric.com
GET/v1/{account_id}/reach/profile-visitors
Bearer

Authorization

default
AuthorizationBearer <token>

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

In: header

Path Parameters

  • account_id*integer

    OnlyFans numeric account ID.

Query Parameters

  • start_datestring

    Window start. Default 2 years ago, UTC.

  • end_datestring

    Window end. Default end of today, UTC.

  • bystring

    Bucket used to rank topCountries. Values: total (default), guests, users, subscribers.

  • limitinteger

    Top-N rows in topCountries. Default 10. Capped at 100. Pass 0 for upstream default.

Response Fields

  • data.isAvailableboolean

    true when reach analytics is enabled for the account.

  • data.hasStatsboolean

    true when there's data for the window.

  • data.topCountriesobject

    Country leaderboard. See the dedicated countries endpoint for field details.

  • data.topDurationUsersobject

    Total time-on-profile breakdown (in seconds). Same totals shape as topCountries.

  • data.chart.visitorsarray

    Monthly { date, count } visitor count.

  • data.chart.durationarray

    Monthly { date, count } total time on profile, in seconds.

  • data.total.currentstring

    Window-total visitor count. Returned as a string.

  • data.total.deltainteger

    Percent change vs the prior equal-length window. Saturates at 100.

  • 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 GET "https://public-api.fansmetric.com/v1/100000001/reach/profile-visitors?start_date=2026-01-01%2000%3A00%3A00&end_date=2026-01-31%2023%3A59%3A59&by=sample_by" \
  --header "Authorization: Bearer YOUR_API_KEY"

Response

200
{
"data":{
"isAvailable":true
"hasStats":true
"topCountries":{
"hasMore":true
"totals":{
"total":2581195
"guests":"22445"
"users":"2558750"
"subscribers":0
}
"rows":[]
}
"topDurationUsers":{
"totals":{
"total":17803159
"guests":"258154"
"users":"17545005"
"subscribers":0
}
}
"chart":{
"visitors":[
0:{
"date":"2025-09-01T00:00:00+00:00"
"count":19922
}
]
"duration":[
0:{
"date":"2025-09-01T00:00:00+00:00"
"count":116885
}
]
}
"total":{
"current":"2581195"
"delta":100
}
}
"_meta":{
"_credits":{
"used":1
}
"_rate_limits":{
"limit_minute":1000
"remaining_minute":999
"limit_day":50000
"remaining_day":49999
}
}
}