Ekha

Ekha Docs

Getting started

  1. Login with Discord
  2. Add website (domain + timezone)
  3. Copy tracker snippet
  4. Paste before </head>
  5. Visit site, check dashboard

Installation

<script defer src="http://localhost:10000/tracker.js" data-site="ek_YOUR_SITE_ID"></script>

Tracking API

POST http://localhost:10000/api/v1/event
Content-Type: application/json
{"site":"ek_...","path":"/news/foo","referrer":"https://facebook.com/"}

Stats API

Authorization: Bearer ek_live_...

GET /api/v1/sites/{site}/summary
GET /api/v1/sites/{site}/timeseries?days=30
GET /api/v1/sites/{site}/pages
GET /api/v1/sites/{site}/referrers
GET /api/v1/sites/{site}/devices
GET /api/v1/sites/{site}/countries
GET /api/v1/sites/{site}/realtime

Errors

Errors use {"error":{"code":"...","message":"...","request_id":"..."}}. Codes: bad_request, unauthorized, forbidden, not_found, validation_failed, rate_limited, internal_error, service_unavailable.

Privacy

No analytics cookies. Short-lived pseudonymous visitor buckets only. Raw events deleted within 72h. See /privacy.

FAQ

Does Ekha slow my site? No — the tracker is deferred, uses sendBeacon, and fails silently.

Multiple sites? Yes, first-class.

How fresh are stats? The tracker records instantly; read APIs are cached very briefly (about a minute for totals, seconds for realtime).