Fans
FansMetric dataGet Fan Transaction Counts
How many transactions match your filters, split by type and by status. Takes the same body as Get Fan Transactions, so you can show the counts without pulling the rows. Requires permission api_fans_read_transactions.
https://public-api.fansmetric.comAuthorization
defaultAuthorizationBearer <token>Send your FansMetric API key as a Bearer token in the Authorization header.
In: header
Path Parameters
fan_id*integerThe fan's OnlyFans numeric user ID.
Request Body
application/jsonaccount_ids*arrayArray of OnlyFans numeric account IDs.
categoriesarrayKeep only these transaction kinds. Any of
tip,message,recurring_subscription,new_subscription,unlock,unknown. Absent or[]means every category. An unrecognised value returns 400 listing the allowed set — it never silently matches nothing.statusesarrayKeep only these statuses. Any of
done,undo,pending_return,loading. Absent or[]means every status, chargebacks included. An unrecognised value returns 400.fromstringWindow start, inclusive.
YYYY-MM-DD,YYYY-MM-DD HH:MM:SS, RFC 3339,now, or a relative shorthand like-30days. Absent means no lower bound.tostringWindow end, inclusive. Same formats as
from. Absent means no upper bound. Sendingfromlater thantoreturns 400.limitintegerAccepted and ignored — this endpoint counts rather than pages, so nothing is truncated. Present only so the identical body works on Get Fan Transactions too.
offsetintegerAccepted and ignored, like
limit.
Response Fields
data.allintegerTotal transactions matching the filters.
data.categoriesobjectOne key per category —
tip,message,recurring_subscription,new_subscription,unlock,unknown— each an integer. Every key is always present,0when empty.data.statusesobjectOne key per status —
done,undo,pending_return,loading. Always all four,0when empty.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.all | integer | Total transactions matching the filters. |
| data.categories | object | One key per category — tip, message, recurring_subscription, new_subscription, unlock, unknown — each an integer. Every key is always present, 0 when empty. |
| data.statuses | object | One key per status — done, undo, pending_return, loading. Always all four, 0 when empty. |
| 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 POST "https://public-api.fansmetric.com/v1/fans/XXXXX/transactions/counts" \
--header "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"account_ids": ["100000001"],
"statuses": ["undo"]
}'Response
200