Chatters

Compare Chatters

Returns per-chatter time-series across 11 chat performance stats for up to 5 chatters over a single window. Powers side-by-side comparison charts — every user shares the same bucket axis so their series overlay directly. Requires permission api_chat_chatters_compare.

https://public-api.buffmetrics.com
POST/v1/chatters/compare
Bearer

Authorization

default
AuthorizationBearer <token>

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

In: header

Request Body

application/json
  • user_ids*array

    Array of FansMetric user UUIDs from List Chatters. 1–5 per call — batch client-side if you need more.

  • account_ids*array

    Array of OnlyFans numeric account IDs (as strings). At least one. Every ID must belong to your org — unknown IDs return 404.

  • fromstring

    Window start (UTC). Default 30 days ago. Accepts ISO 8601 or relative shorthand (-30days).

  • tostring

    Window end (UTC). Default now. Must be after from.

  • team_idsarray

    Array of team UUIDs. When set, every user_ids entry must also be a member of one of these teams — otherwise the call returns 404.

  • granularitystring

    Bucket size — hour, day, week, or month. Default derived from window length.

curl --request POST "https://public-api.buffmetrics.com/v1/chatters/compare" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "from": "2026-07-11T00:00:00Z",
  "to":   "2026-08-10T23:59:59Z",
  "user_ids":    ["b7a9e0f1-2fa4-4d0b-9c2a-6c4d0b41f2c7", "c5d6e7f8-9012-3456-7890-abcdef012345"],
  "account_ids": ["100000001", "100000002"],
  "granularity": "day"
}'

Response

200
{
"data":{
"chatters":[
0:{
"user_id":"b7a9e0f1-2fa4-4d0b-9c2a-6c4d0b41f2c7"
"user_name":"Alex Chen"
"metrics":{
"employee_sales":{
"stat":"employee_sales"
"statHuman":"Employee Sales"
"description":"Total revenue from tips and unlocked PPVs sent on each day"
"chartLabels":[
0:"2026-08-08T00:00:00Z"
1:"2026-08-09T00:00:00Z"
2:"2026-08-10T00:00:00Z"
]
"chartValues":[
0:1240.55
1:985.1
2:1502.2
]
"symbol":"$"
"valueIsInteger":false
"symbolFirst":true
"positiveIsGood":true
"granularity":"day"
}
"golden_ratio":{
"stat":"golden_ratio"
"statHuman":"Golden Ratio"
"description":"Percentage of PPVs sent to messages sent on each day"
"chartLabels":[
0:"2026-08-08T00:00:00Z"
1:"2026-08-09T00:00:00Z"
2:"2026-08-10T00:00:00Z"
]
"chartValues":[
0:12.4
1:10.8
2:14.1
]
"symbol":"%"
"valueIsInteger":false
"symbolFirst":false
"positiveIsGood":true
"granularity":"day"
}
}
}
1:{
"user_id":"c5d6e7f8-9012-3456-7890-abcdef012345"
"user_name":"Jordan Rivera"
"metrics":{
"employee_sales":{
"stat":"employee_sales"
"statHuman":"Employee Sales"
"description":"Total revenue from tips and unlocked PPVs sent on each day"
"chartLabels":[
0:"2026-08-08T00:00:00Z"
1:"2026-08-09T00:00:00Z"
2:"2026-08-10T00:00:00Z"
]
"chartValues":[
0:980.2
1:1105
2:1220.65
]
"symbol":"$"
"valueIsInteger":false
"symbolFirst":true
"positiveIsGood":true
"granularity":"day"
}
}
}
]
"from":"2026-07-11T00:00:00Z"
"to":"2026-08-11T00:00:00Z"
"granularity":"day"
}
"_meta":{
"_credits":{
"used":1
}
"_rate_limits":{
"limit_minute":1000
"remaining_minute":999
"limit_day":50000
"remaining_day":49999
}
}
}