Chat
Chat Chart
Returns a time-series for one chat stat over the requested window, with per-bucket values for both the current window and the previous window (same length, immediately before). Use for line/bar charts. For the full 11-stat headline card in a single call, use Chat Overview. Requires permission api_chat_read_chart.
https://public-api.fansmetric.comAuthorization
defaultAuthorizationBearer <token>Send your FansMetric API key as a Bearer token in the Authorization header.
In: header
Path Parameters
account_id*integerOnlyFans numeric account ID.
Query Parameters
stat*stringWhich stat to chart. One of
outgoingmessages,monthlychattingfans,monthlychatearnings,chatafv,chatearnings,averagetip,averagemessage,tips,messages,tipscount,messagescount.fromstringWindow start (UTC). Default 30 days ago. Accepts ISO 8601 or relative shorthand (
-30days).tostringWindow end (UTC). Default now. Must be after
from.granularitystringBucket size —
hour,day,week, ormonth. Defaults:hourunder a day,monthover four months, otherwiseday.monthlychatearnings,monthlychattingfans, andchatafvare day-only; other granularities are treated asdayon those stats.revenue_typestringnet(default) orgross. Same semantics as Chat Overview. Ignored for count stats and for always-net rolling stats.
Response Fields
data.statstringEchoes the requested stat.
data.statHumanstringHuman-readable label.
data.descriptionstringOne-line explanation of the stat.
data.granularitystringResolved bucket size.
data.chartLabels[]arrayRFC 3339 UTC timestamps at the start of each current-window bucket.
data.chartValues[]arrayPer-bucket values for the current window. Empty buckets are zero-filled.
data.chartValuesPrevious[]arrayPer-bucket values for the previous window (same length, aligned index-by-index with
chartValues).data.currentnumberSummary for the current window. Sum of
chartValuesfor most stats; last value for rolling stats (monthlychatearnings,monthlychattingfans,chatafv).data.previousnumberSummary for the previous window (same rule as
current).data.changenumber(current − previous) / previousas a decimal.0whenpreviousis 0.data.symbolstring$,%, or empty.data.valueIsIntegerbooleanRender hint.
data.symbolFirstbooleanRender hint.
data.positiveIsGoodbooleanRender hint.
data.fromstringBucket-aligned start of the current window (RFC 3339 UTC). May be snapped to the bucket boundary — e.g.
2026-07-15T14:32:00Zatdaybecomes2026-07-15T00:00:00Z.data.tostringBucket-aligned end of the current window.
data.revenueTypestringEchoes the effective revenue variant.
dataobject | arrayEndpoint-specific payload. See the fields below for this route.
_meta._credits.usedintegerCredits consumed by this request (currently always
1)._meta._rate_limits.limit_minuteintegerMaximum requests per minute for the organization.
_meta._rate_limits.remaining_minuteintegerRemaining requests in the current minute window.
_meta._rate_limits.limit_dayintegerMaximum requests per day for the organization.
_meta._rate_limits.remaining_dayintegerRemaining requests in the current day window.
| Field | Type | Description |
|---|---|---|
| data.stat | string | Echoes the requested stat. |
| data.statHuman | string | Human-readable label. |
| data.description | string | One-line explanation of the stat. |
| data.granularity | string | Resolved bucket size. |
| data.chartLabels[] | array | RFC 3339 UTC timestamps at the start of each current-window bucket. |
| data.chartValues[] | array | Per-bucket values for the current window. Empty buckets are zero-filled. |
| data.chartValuesPrevious[] | array | Per-bucket values for the previous window (same length, aligned index-by-index with chartValues). |
| data.current | number | Summary for the current window. Sum of chartValues for most stats; last value for rolling stats (monthlychatearnings, monthlychattingfans, chatafv). |
| data.previous | number | Summary for the previous window (same rule as current). |
| data.change | number | (current − previous) / previous as a decimal. 0 when previous is 0. |
| data.symbol | string | $, %, or empty. |
| data.valueIsInteger | boolean | Render hint. |
| data.symbolFirst | boolean | Render hint. |
| data.positiveIsGood | boolean | Render hint. |
| data.from | string | Bucket-aligned start of the current window (RFC 3339 UTC). May be snapped to the bucket boundary — e.g. 2026-07-15T14:32:00Z at day becomes 2026-07-15T00:00:00Z. |
| data.to | string | Bucket-aligned end of the current window. |
| data.revenueType | string | Echoes the effective revenue variant. |
| data | object | array | Endpoint-specific payload. See the fields below for this route. |
| _meta._credits.used | integer | Credits consumed by this request (currently always 1). |
| _meta._rate_limits.limit_minute | integer | Maximum requests per minute for the organization. |
| _meta._rate_limits.remaining_minute | integer | Remaining requests in the current minute window. |
| _meta._rate_limits.limit_day | integer | Maximum requests per day for the organization. |
| _meta._rate_limits.remaining_day | integer | Remaining requests in the current day window. |
curl --request GET "https://public-api.fansmetric.com/v1/100000001/chat/chart?stat=sample_stat&from=sample_from&to=sample_to" \
--header "Authorization: Bearer YOUR_API_KEY"Response
200