Docs
Read API
JSON reads for one site. Auth is the same site id as the dashboard and MCP. There are no write endpoints that mint keys, delete sites, or connect processors. There is no CLI.
Markdown · same page for crawlers. index, follow.
Auth
site is required. Same id you already send on collect. Empty sites return zeros and empty arrays — no sample rows.
Endpoints
GET /api/read?site=YOUR_SITE&range=7d GET /api/read/overview?site=YOUR_SITE&range=7d GET /api/read/timeseries?site=YOUR_SITE&range=7d&grain=day GET /api/read/pages?site=YOUR_SITE&range=7d GET /api/read/referrers?site=YOUR_SITE&range=7d GET /api/read/realtime?site=YOUR_SITE GET /api/read/countries?site=YOUR_SITE&range=7d GET /api/read/devices?site=YOUR_SITE&range=7d GET /api/read/browsers?site=YOUR_SITE&range=7d GET /api/read/campaigns?site=YOUR_SITE&range=7d GET /api/read/payments?site=YOUR_SITE&range=7d GET /api/read/goals?site=YOUR_SITE&range=7d GET /api/read/funnels?site=YOUR_SITE&range=7d GET /api/read/hostnames?site=YOUR_SITE&range=7d
range is 7d, 30d, or all. Optional from and to are Africa/Johannesburg calendar days (YYYY-MM-DD). Invalid or reversed dates are ignored. Timeseries grain=hour is for 7d or a custom span of 7 days or shorter. Previous-period overlay is included on day grain when the range has a same-length prior window.
What is not here
No POST that creates sites or API keys. No processor connect. Same numbers as MCP. Amount is rand, not cents.