Query

All query endpoints are under /api/v1/query and require Bearer token auth.

POST /api/v1/query/trend

Returns a time-series event count.

Request body

{
  "event": "page_view",
  "dateFrom": "2025-04-01",
  "dateTo": "2025-04-23",
  "groupBy": "day",
  "filters": [
    { "property": "plan", "op": "eq", "value": "growth" }
  ]
}

Response

{
  "data": [
    { "date": "2025-04-01", "count": 142 },
    { "date": "2025-04-02", "count": 198 }
  ]
}

POST /api/v1/query/funnel

Returns conversion counts at each step of a funnel.

Request body

{
  "steps": ["page_view", "signup_clicked", "signup_completed"],
  "dateFrom": "2025-04-01",
  "dateTo": "2025-04-23",
  "conversionWindow": 86400
}

conversionWindow is in seconds. Default: 86 400 (1 day).

Response

{
  "steps": [
    { "event": "page_view", "count": 5000, "rate": 1.0 },
    { "event": "signup_clicked", "count": 1200, "rate": 0.24 },
    { "event": "signup_completed", "count": 340, "rate": 0.068 }
  ]
}

POST /api/v1/query/retention

Returns weekly retention cohorts.

Request body

{
  "cohortEvent": "signup",
  "retentionEvent": "page_view",
  "dateFrom": "2025-03-01",
  "dateTo": "2025-04-23",
  "windowDays": 7
}

Response

{
  "cohorts": [
    {
      "cohortDate": "2025-03-01",
      "total": 240,
      "weeks": [240, 180, 140, 110, 88, 70, 58]
    }
  ]
}
💡

Retention queries on large datasets may take up to 5 seconds. Results are cached for 60 seconds.