Added

Funnel & Page Stats APIs now generally available

The GET /funnels/{id}/stats and GET /pages/{id}/stats endpoints are now generally available — no feature gate required.

Both endpoints accept a timerange_start / timerange_end window (defaults to the last 30 days, clamped to a 90-day maximum; future end dates clamp to now; inverted windows reset to the default 30 days).

Breaking changes for beta users

  • The legacy stats_timerange_start / stats_timerange_end query params have been removed. Use timerange_start / timerange_end instead.
  • Page stats responses now return summary, funnel, and step as null for pages that are not part of a funnel (previously returned zeroed numeric values).
  • Funnel Stats steps now need to be expanded.

Funnel stats — default response

{
  "funnel": { "id": 3, "public_id": "xYzAbC", "name": "Sales Funnel" },
  "currency": "USD",
  "timerange": {
    "from": "2026-03-22T12:00:00Z",
    "to": "2026-04-21T12:00:00Z"
  },
  "summary": {
    "earnings_per_click": "12.34",
    "upfront_sales": "567.89",
    "upfront_sales_count": 42,
    "recurring_sales": "100.00",
    "average_cart_value": "12.34",
    "pageviews": 999
  },
  "page_public_ids": ["NnAdPE", "kJzvQi"]
}

Pass expand[]=steps to replace page_public_ids with a steps array containing per-step metrics:

{
  "funnel": { "id": 3, "public_id": "xYzAbC", "name": "Sales Funnel" },
  "currency": "USD",
  "timerange": { "from": "2026-03-22T12:00:00Z", "to": "2026-04-21T12:00:00Z" },
  "summary": { "...": "(same as default)" },
  "steps": [
    {
      "name": "Order Page",
      "current_path": "/order",
      "views_all": 100,
      "views_unique": 80,
      "optins": 3,
      "optin_rate": 0.0375,
      "sales_count": 5,
      "sales_rate": 0.0625,
      "sales_value": "500.00",
      "recurring_sales_count": 2,
      "recurring_sales_value": "100.00",
      "earnings_per_view": "5.00",
      "earnings_per_unique_view": "6.25"
    }
  ]
}

Page stats — funnel-linked page

{
  "currency": "USD",
  "timerange": { "from": "2026-03-22T12:00:00Z", "to": "2026-04-21T12:00:00Z" },
  "page": {
    "id": 100,
    "public_id": "abc123",
    "name": "Order Page",
    "current_path": "/order-canonical",
    "type": "funnel_page"
  },
  "funnel": { "id": 3, "public_id": "xYzAbC", "name": "Sales Funnel" },
  "step": {
    "name": "Order Page",
    "current_path": "/order",
    "views_all": 100,
    "views_unique": 80,
    "optins": 3,
    "optin_rate": 0.0375,
    "sales_count": 5,
    "sales_rate": 0.0625,
    "sales_value": "500.00",
    "recurring_sales_count": 2,
    "recurring_sales_value": "100.00",
    "earnings_per_view": "5.00",
    "earnings_per_unique_view": "6.25"
  },
  "summary": { "...": "(mirrors step metrics)" }
}

Page stats — standalone page (not in a funnel)

{
  "currency": "USD",
  "timerange": { "from": "2026-03-22T12:00:00Z", "to": "2026-04-21T12:00:00Z" },
  "page": {
    "id": 200,
    "public_id": "def456",
    "name": "Landing Page",
    "current_path": "/landing",
    "type": "user_page"
  },
  "funnel": null,
  "step": null,
  "summary": null
}