curl --request GET \
--url https://api.onlyx.ai/v1/stats/today \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onlyx.ai/v1/stats/today"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onlyx.ai/v1/stats/today', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"aiShare": 0.942,
"asOf": "2026-09-26T14:05:00.000Z",
"buyers": 57,
"date": "2026-09-26",
"earnings": {
"complete": true,
"netCents": 184250,
"pendingCents": 184250,
"settledCents": 0
},
"messages": {
"ai": 1402,
"in": 1320,
"out": 1488,
"team": 86
},
"newFans": 41,
"paidMessagesUnlocked": 38,
"timezone": "Europe/London",
"yesterday": {
"buyers": 90,
"netCents": 301400,
"newFans": 64,
"paidMessagesUnlocked": 61
},
"yesterdaySameTime": {
"buyers": 51,
"netCents": 171900,
"newFans": 36,
"paidMessagesUnlocked": 33
}
}Get today's numbers
Returns today so far, from local midnight in the workspace time zone: earnings (settled and still clearing), new fans, buyers, paid messages unlocked, message volume and how much of it the AI wrote — with yesterday up to the same time of day and all of yesterday for comparison. Covers every creator the credential can see, or one with creatorId (a creator it cannot see is 404 CREATOR_NOT_FOUND). The figures are cached for a minute or two, so polling faster does not make them fresher. Limited to 20 requests per minute per credential across all /stats endpoints.
Scope: requires stats:read.
Rate limits: 20 requests to /stats endpoints per 60 seconds per credential — on top of the general limit of 120 requests per 60 seconds per credential.
curl --request GET \
--url https://api.onlyx.ai/v1/stats/today \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onlyx.ai/v1/stats/today"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onlyx.ai/v1/stats/today', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"aiShare": 0.942,
"asOf": "2026-09-26T14:05:00.000Z",
"buyers": 57,
"date": "2026-09-26",
"earnings": {
"complete": true,
"netCents": 184250,
"pendingCents": 184250,
"settledCents": 0
},
"messages": {
"ai": 1402,
"in": 1320,
"out": 1488,
"team": 86
},
"newFans": 41,
"paidMessagesUnlocked": 38,
"timezone": "Europe/London",
"yesterday": {
"buyers": 90,
"netCents": 301400,
"newFans": 64,
"paidMessagesUnlocked": 61
},
"yesterdaySameTime": {
"buyers": 51,
"netCents": 171900,
"newFans": 36,
"paidMessagesUnlocked": 33
}
}Authorizations
An API key (onx_sk_…) created in OnlyX under Settings → API & MCP, or an OAuth access token (onx_at_…) issued to a connected app. Send it as Authorization: Bearer <credential>. API keys may also be sent as X-API-Key: <key>.
Query Parameters
Only this creator (cre_…). Without it, every creator the credential can see. A creator the credential cannot see is 404 CREATOR_NOT_FOUND, never an empty report.
1 - 64Response
Today so far, with yesterday for comparison.
Today so far, in the workspace time zone. New fields may be added; ignore fields you do not know.
Share of today's delivered messages the AI wrote, 0 to 1. null when nothing was sent yet.
When the earnings and fan figures were computed (UTC). They are refreshed every minute or two.
Distinct fans who paid anything today.
Today's date in the workspace time zone (YYYY-MM-DD).
Show child attributes
Show child attributes
Message volume since local midnight.
Show child attributes
Show child attributes
Fans whose relationship with a creator started today (earliest subscription or message).
Paid messages unlocked today.
The workspace time zone the day is counted in (IANA).
All of yesterday.
Show child attributes
Show child attributes
Yesterday up to the same local time — the fair comparison for a day still in progress.
Show child attributes
Show child attributes