REST API v1

Read-only, programmatic access to your own analytics aggregates: dashboards of dashboards, internal reporting, spreadsheets. Everything the API returns is aggregate data your dashboard already shows; the privacy architecture (no cookies, no visitor identifiers, hour precision) holds by construction.

Authentication

Create an API key in Settings, then send it as a Bearer token. Keys are account-wide and stored hashed on our side; the full key is shown once, at creation.

curl -H "Authorization: Bearer $ILLUMINO_API_KEY" https://illumino.app/api/v1/sites

Session cookies are ignored on /api/v1 routes, and API keys are not accepted anywhere else. The API is served without CORS headers: call it from your servers, not from browsers, so your key never ships to a client.

Limits and errors

BehaviourDetail
MethodsGET only. Anything else returns 405.
Rate limit60 requests per minute per key. Over the limit returns 429 with a Retry-After header.
ErrorsJSON envelope: {"error": "...", "status": 401}. Codes: 400, 401, 403, 404, 405, 429.
Date rangefrom and to are UTC dates (YYYY-MM-DD), both inclusive. Default: the last 7 days. Max range: 365 days.
Row limitsList endpoints accept limit (default 20, max 100).

Endpoints

EndpointReturns
GET /api/v1/sitesThe sites on your account: id, domain, created_at.
GET /api/v1/sites/{id}/statsPageviews, unique visitors, sessions, views per session for the range.
GET /api/v1/sites/{id}/timeseriesPageviews over time. interval=day (default) or hour; hourly data exists for the last 7 days only (raw hits are deleted after 7 days by design).
GET /api/v1/sites/{id}/pagesTop pages by views.
GET /api/v1/sites/{id}/referrersTop referrer domains (hostname only, never full URLs).
GET /api/v1/sites/{id}/countriesTop countries by views.
GET /api/v1/sites/{id}/devicesViews by device type (desktop, mobile, tablet).
GET /api/v1/sites/{id}/eventsCustom event counts by event name.
GET /api/v1/sites/{id}/entry-pagesTop entry pages with entry counts.
GET /api/v1/sites/{id}/exit-pagesTop exit pages with exit counts.
GET /api/v1/sites/{id}/observation-reportThe complete versioned, deduplicated JSON report across all active privacy-safe site datasets.

Example: complete Observation report

curl -H "Authorization: Bearer $ILLUMINO_API_KEY" \
  "https://illumino.app/api/v1/sites/YOUR_SITE_ID/observation-report?from=2026-07-01&to=2026-07-31"

The response declares its schema version, privacy posture, completeness by source and the unique key for every array. Repeated observations are represented by counts, never duplicate records. The complete JSON is also visible in the Observations dashboard tab.

Example: stats for a date range

curl -H "Authorization: Bearer $ILLUMINO_API_KEY" \
  "https://illumino.app/api/v1/sites/YOUR_SITE_ID/stats?from=2026-06-01&to=2026-06-30"
{
  "site_id": "YOUR_SITE_ID",
  "domain": "example.com",
  "from": "2026-06-01",
  "to": "2026-06-30",
  "pageviews": 48210,
  "visitors": 17904,
  "sessions": 21455,
  "views_per_session": 2.25
}

Example: daily timeseries

curl -H "Authorization: Bearer $ILLUMINO_API_KEY" \
  "https://illumino.app/api/v1/sites/YOUR_SITE_ID/timeseries?interval=day&from=2026-06-24&to=2026-06-30"
{
  "metric": "pageviews",
  "interval": "day",
  "from": "2026-06-24",
  "to": "2026-06-30",
  "points": [
    { "t": "2026-06-24", "value": 1650 },
    { "t": "2026-06-25", "value": 1721 }
  ]
}

Example: top pages

curl -H "Authorization: Bearer $ILLUMINO_API_KEY" \
  "https://illumino.app/api/v1/sites/YOUR_SITE_ID/pages?limit=5"
{
  "from": "2026-07-01",
  "to": "2026-07-07",
  "pages": [
    { "path": "/", "views": 4210 },
    { "path": "/pricing", "views": 1288 }
  ]
}

Stability

The API is versioned in the path. Within v1, changes are additive only: new endpoints and new response fields may appear; nothing is removed or renamed. A breaking change means a new /api/v2 namespace. When a version is ever deprecated, we will announce it on this page well ahead of any change; we do not promise specific support timelines.

Availability. The API ships with the Beacon plan and is available to all trial accounts while the trial is active.
Illumino v0.5.0-staging · 6ddd3f8