API Reference

Snow exposes ingestion APIs for getting data into Snow, and a Stats API for reading it back out. Most sites only need the tracking snippet, which calls the browser endpoint for you. Reach for an API when you need to send events from a server, identify a visitor, connect crawler telemetry, or read your numbers from another tool.

EndpointAuthUse it for
POST /api/flakeNone (public)The raw page-view / event endpoint the browser snippet uses.
POST /api/v1/eventsAPI keySending events from your server or backend.
POST /api/identifyAPI keyAttaching an identity, and optionally a Stripe customer, to a visitor.
POST /api/beacon/hitsBeacon keySending crawler hits from a supported server integration.
GET /api/v1/stats/*API keyReading totals, a daily series, and breakdowns.

Choose an endpoint

Base URL

All endpoints live on your Snow collector. Throughout these docs that's:

https://api.snowanalytics.app

Replace it with your own collector URL.

Authentication

/api/flake is public because the browser calls it. Every other endpoint uses a bearer token in the Authorization header:

Authorization: Bearer YOUR_KEY

A single API key (format snw_live_…), created and managed in the dashboard under API keys, works for every endpoint whose scope it carries:

EndpointKey
POST /api/v1/eventssnw_live_… (events:write)
POST /api/identifysnw_live_… (identify:write; legacy ski_… keys also accepted)
GET /api/v1/stats/*snw_live_… (stats:read, off by default)

Send JSON with Content-Type: application/json. Keep keys secret. Treat them like passwords, and revoke or rotate any that leak.

Reading data: a key reads stats only if you tick Read stats when you create it. Keys made for events, identify or crawlers cannot read anything.

Rate limits

Each endpoint is rate-limited. See Rate limits & errors for the limits and the error format.

On this page