Posts

Get Post Statistics

Returns the per-post analytics OnlyFans shows in a post's stats drawer — views, unique viewers, likes, comments, tips and unlocks, each with a time series you can chart. Set with_chart=false when you only need the headline numbers. Requires permission api_posts_read_stats.

https://public-api.fansmetric.com
GET/v1/{account_id}/posts/{post_id}/stats
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.

  • post_id*integer

    The post ID. Numeric.

Query Parameters

  • with_chartboolean

    Include the time-series arrays. Default true; send false for the totals only, which makes the response much smaller.

Response Fields

  • data.hasStatsboolean

    false when OnlyFans has not gathered data for this post yet. The counters are still present, just zero — show an empty state rather than a row of zeroes.

  • data.lookCountinteger

    Total views.

  • data.uniqueLookCountinteger

    Distinct viewers.

  • data.lookDurationAverageinteger

    Mean view duration in seconds. Meaningful on video posts.

  • data.likeCountinteger

    Total likes.

  • data.commentCountinteger

    Total comments.

  • data.tipCountinteger

    Number of tips received on the post.

  • data.tipSuminteger

    Total tipped amount.

  • data.purchasedCountinteger

    Unlocks, on paid posts.

  • data.purchasedSumminteger

    Revenue from those unlocks.

  • data.lookChartarray

    Time series of {date, count} objects. The sibling arrays follow the same shape: uniqueLookChart, likeChart, commentChart, tipChart, tipSumChart, purchasesChart. Present only when with_chart is true.

  • 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/posts/sample_post_id/stats?with_chart=sample_with_chart" \
  --header "Authorization: Bearer YOUR_API_KEY"

Response

200
{
"data":{
"isAvailable":true
"hasStats":true
"hasVideo":false
"hasAudio":false
"lookCount":535
"uniqueLookCount":0
"lookDuration":0
"lookDurationAverage":0
"likeCount":5
"commentCount":0
"tipCount":0
"tipSum":0
"purchasedCount":0
"purchasedSumm":0
"lookChart":[
0:{
"date":"2026-08-16T10:00:00+00:00"
"count":73
}
1:{
"date":"2026-08-16T11:00:00+00:00"
"count":100
}
]
"uniqueLookChart":[
0:{
"date":"2026-08-16T10:00:00+00:00"
"count":48
}
]
"likeChart":[
0:{
"date":"2026-08-16T10:00:00+00:00"
"count":1
}
]
"commentChart":[]
"tipChart":[]
"tipSumChart":[]
"purchasesChart":[]
}
"_meta":{
"_credits":{
"used":1
}
"_rate_limits":{
"limit_minute":1000
"remaining_minute":999
"limit_day":50000
"remaining_day":49999
}
}
}