Direct Messages
Direct Message Chart
Returns the same shape as Mass Message Chart but scoped to 1:1 direct messages: sent counts under direct_messages and $ purchased from DMs under direct_messages_purchases. Requires permission api_direct_messages_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
start_datestringWindow start. Default 30 days ago, UTC.
YYYY-MM-DD HH:MM:SSor ISO 8601.end_datestringWindow end. Default end of today, UTC. Same format as
start_date.
Response Fields
data.direct_messages.chart[]arrayOne bucket per UTC day inclusive of the window.
dateis midnight UTC ISO 8601;countis the number of DMs sent that day.data.direct_messages.totalnumberSum of
direct_messages.chart[].countover the window.data.direct_messages.deltanumbertotalminus the total of the immediately preceding equal-length window.data.direct_messages_purchases.chart[]arrayOne bucket per UTC day in the window.
countis the $ purchased from DMs that day, in the account's payout currency.data.direct_messages_purchases.totalnumberSum of
direct_messages_purchases.chart[].countover the window.data.direct_messages_purchases.deltanumbertotalminus the prior equal-length window's total.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.direct_messages.chart[] | array | One bucket per UTC day inclusive of the window. date is midnight UTC ISO 8601; count is the number of DMs sent that day. |
| data.direct_messages.total | number | Sum of direct_messages.chart[].count over the window. |
| data.direct_messages.delta | number | total minus the total of the immediately preceding equal-length window. |
| data.direct_messages_purchases.chart[] | array | One bucket per UTC day in the window. count is the $ purchased from DMs that day, in the account's payout currency. |
| data.direct_messages_purchases.total | number | Sum of direct_messages_purchases.chart[].count over the window. |
| data.direct_messages_purchases.delta | number | total minus the prior equal-length window's total. |
| 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/direct-messages/chart?start_date=2026-01-01%2000%3A00%3A00&end_date=2026-01-31%2023%3A59%3A59" \
--header "Authorization: Bearer YOUR_API_KEY"Response
200