Reach

Get Profile Visitors Top Countries

Ranked country breakdown of profile-page visits — guests + signed-in users + paying subscribers — with an Others rollup row. Requires permission api_reach_read_profile_visitors_countries.

https://public-api.fansmetric.com
GET/v1/{account_id}/reach/profile-visitors/countries
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: total (default), guests, users, subscribers.

  • limitinteger

    Top-N rows. Default 10. Capped at 100.

Response Fields

  • data.topCountries.hasMoreboolean

    true if more country rows are aggregated into the Others rollup beyond the returned top-N.

  • data.topCountries.totalsobject

    Account-wide totals across all countries. Quirk: total and subscribers are numbers, but guests and users come back as strings.

  • data.topCountries.rows[]array

    Ranked country rows. The final row is always an Others rollup with countryCode: "".

  • data.topCountries.rows[].rankinteger

    1-based rank. Others gets limit+1.

  • data.topCountries.rows[].countryNamestring

    Human-readable name. "Others" on the rollup row.

  • data.topCountries.rows[].countryCodestring

    ISO 3166-1 alpha-2. Empty string for Others.

  • data.topCountries.rows[].viewsCountobject

    Per-country { total, guests, users, subscribers } — all numeric.

  • 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/countries?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":[
0:{
"rank":1
"countryName":"United States"
"countryCode":"US"
"viewsCount":{
"total":1407253
"guests":11635
"users":1395618
"subscribers":0
}
}
1:{
"rank":4
"countryName":"Others"
"countryCode":""
"viewsCount":{
"total":862812
"guests":8972
"users":853840
"subscribers":0
}
}
]
}
}
"_meta":{
"_credits":{
"used":1
}
"_rate_limits":{
"limit_minute":1000
"remaining_minute":999
"limit_day":50000
"remaining_day":49999
}
}
}