Skip to Content
Exports

Exports

Every dashboard table can be downloaded as CSV or JSON. Use the Export links on the bot’s pages, or call the endpoint directly.

GET /api/bots/{botId}/export

Requires a session with access to the bot. The response carries a Content-Disposition header, so a browser downloads it as mochi-{data}-{range}.{format}.

ParameterValuesDefault
datacommands, custom, guilds, rawcommands
formatcsv, jsoncsv
range24h, 7d, 30d, 90d30d

An unrecognized data returns 400. An unrecognized format or range falls back to its default.

Datasets

commands

Top 1,000 commands for the range.

command,uses,users,success_rate_pct,p50_ms,p95_ms play,18402,5210,99.4,88,310

custom

Custom events grouped by name.

event,count,users,last_seen premium_purchased,412,388,2026-07-08T22:41:55.000Z

guilds

Top 1,000 guilds by event volume.

guild_id,events,users,last_seen 935512380767846400,20418,3102,2026-07-09T05:02:11.000Z

raw

The 10,000 most recent events, with their metadata JSON intact.

at,type,name,guild_id,channel_type,success,duration_ms,metadata 2026-07-09T05:02:11.000Z,command,play,935512380767846400,guild_text,1,143,"{""source"":""slash""}"

raw is the only capped dataset. The aggregates are bounded by their own LIMIT, which no real bot reaches.

JSON

format=json wraps the same rows in an envelope, with camelCase keys and timestamps as ISO 8601 strings:

{ "range": "30d", "data": [ { "name": "play", "uses": 18402, "users": 5210, "successRate": 99.4, "p50": 88, "p95": 310 } ] }

For programmatic access on a schedule, the Stats API authenticates with a per-bot API key rather than a browser session, and returns the same aggregates without the download headers.

Last updated on