# vigie Agent-first, cookieless web analytics in one static binary. No dashboard: JSON verbs for agents, on-demand hart-published HTML snapshots (and a living globe) for humans. - Repo: https://github.com/javimosch/vigie (MIT) - Docs: https://javimosch.github.io/vigie/ - Binary: https://github.com/javimosch/vigie/releases/latest/download/vigie - Manual: run `vigie guide` (embedded, version-exact). Catalog: `vigie help-json`. - CLI contract: https://cli-specs.intrane.fr/ This instance: - POST /api/event — ingest {site,t:pageview|event|vital|error,name,path,ref,q,props,uid,v} (open; 404 for unregistered sites) - GET /vigie.js — the ~2KB tracking snippet (SPA tracking, custom events, identify, web vitals, error capture) - GET /_health — liveness - GET /api/stats/?site=&since=... — overview|timeseries|live|goals|retention|vitals|errors|journeys|channels|heatmap|event-props|pages|entry-pages|exit-pages|referrers|countries|devices|browsers|events|utm-* (Bearer VIGIE_ADMIN_TOKEN) - GET /api/sessions?site=[&sid=] — session explorer (Bearer) - GET /api/snapshot?site= — HTML dashboard (Bearer) - POST /api/sites?domain= — register a site (Bearer) Snippet: HOSTED SELF-SERVE (this instance): 1. POST /v1/signup {"email":"you@x.com","org":"my-org"} -> org Bearer token (shown once) + 10k free events/mo 2. POST /api/sites?domain=your-site.com (Bearer) -> register; GET /v1/org/sites -> read keys for /report + /globe 3. Over quota -> HTTP 402 with a peage pay pointer: fund a wallet at https://peage.intrane.fr, POST /v1/org/wallet {"wallet_token":"pw_..."}, retry. EUR 1 per 100k extra events, prepaid, no subscription. 4. GET /v1/org/quota anytime (solvency preflight). 5. Lost the org token: POST /v1/org/recover with {"org":"my-org"} OR {"email":"you@x.com"} -> code(s) emailed to the signup address; POST /v1/org/recover/confirm {"org","code"} -> fresh token (old one invalidated).