Reports

Using reports throught the api.

Endpoints

GET /api/reports
GET /api/reports/:reportId
GET /api/reports/revenue
POST /api/reports/utm
POST /api/reports/revenue
POST /api/reports/journey
POST /api/reports/retention
POST /api/reports/insights
POST /api/reports/goals
POST /api/reports/funnel
POST /api/reports/attribution
DELETE /api/reports/:reportId

GET /api/reports

Get all reports your personal reports.

Parameters

  • websiteId : (string | optional) Filter for website.

Sample response

{
  "data" : [
    {
      "userId" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "parameters" : "{\"fields\":[{\"name\":\"url\",\"type\":\"string\",\"label\":\"URL\"}],\"filters\":[],\"websiteId\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\"dateRange\":{\"startDate\":\"0000-00-00T00:00:00.000Z\",\"endDate\":\"0000-00-00T00:00:00.000Z\",\"unit\":\"day\",\"offset\":0,\"num\":90,\"value\":\"90day\"}}",
      "createdAt" : "0000-00-00T00:00:00.000Z",
      "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "website" : {
        "domain" : "example.com"
      },
      "updatedAt" : "0000-00-00T00:00:00.000Z",
      "type" : "insights",
      "websiteId" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name" : "Insights",
      "description" : ""
    }
  ],
  "count" : 1,
  "pageSize" : 10,
  "page" : 1
}

GET /api/reports/:reportId

Get report details by id

Sample response

{
  "userId" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "parameters" : {
    "fields" : [
      {
        "name" : "url",
        "type" : "string",
        "label" : "URL"
      }
    ],
    "dateRange" : {
      "num" : 90,
      "value" : "90day",
      "startDate" : "0000-00-00T00:00:00.000Z",
      "endDate" : "0000-00-00T00:00:00.000Z",
      "unit" : "day",
      "offset" : 0
    },
    "filters" : [

    ],
    "websiteId" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  },
  "createdAt" : "0000-00-00T00:00:00.000Z",
  "id" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "updatedAt" : "0000-00-00T00:00:00.000Z",
  "type" : "insights",
  "websiteId" : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name" : "Insights",
  "description" : ""
}

GET /api/reports/revenue

Get currency for given range. Needed for Revenue and optional in Attribution reports.

Parameters

  • websiteId : (string) Your website id
  • startDate : (string) Start date formatted (Thu Mar 27 2025 00:00:00 GMT+0100 (Central European Standard Time))
  • endDate : (string) End date formatted (Tue Jun 24 2025 23:59:59 GMT+0200 (Central European Summer Time))

Sample response

[
    { "currency": "EUR" },
    {  "currency": "FR" }, 
    { "currency": "USD" }
]

POST /api/reports/utm

Track your campaigns through UTM parameters.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • timezone : (string) Timezone
  • websiteId (string) Your website id

Request body

{
    "websiteId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "dateRange":{
        "startDate":"2025-05-17T22:00:00.000Z",
        "endDate":"2025-05-24T21:59:59.999Z",
        "unit":"day",
        "offset":0,
        "num":1,
        "value":"0week"
    },
    "timezone":"Europe/Berlin"
}

Sample response

{
    "utm_source" : {
        "test" : 1
    },
    "utm_content" : {
        "email-newsletter-1" : 1124
    },
    "utm_term" : {
        "software" : 4
    },
    "utm_medium" : {
        "test" : 1
    },
    "utm_campaign" : {
        "test" : 1
    },
    "utm_agid" : {
        "12345" : 5
    },
    "utm_banner" : {
        "12345" : 1
    }
}

POST /api/reports/revenue

Look into your revenue data and how users are spending.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • timezone : (string) Timezone
  • websiteId : (string) Your website id
  • currency : (string)

Request body

{
    "websiteId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "dateRange":{
        "startDate":"2025-05-19T14:00:00.000Z",
        "endDate":"2025-05-20T13:59:59.999Z",
        "offset":0,
        "num":24,
        "unit":"hour",
        "value":"24hour"
    },
    "currency":"USD",
    "timezone":"Europe/Berlin"
}

Sample response

{
    "chart": [
        {
            "x": "",
            "t": "2025-05-19T15:00:00Z",
            "y": 289.94
        }
    ],
    "country": [
        {
            "name": "DE",
            "value": 289.94
        }
    ],
    "total": {
        "sum": 289.94,
        "count": 6,
        "unique_count": 1
    },
    "table": [
        {
            "currency": "USD",
            "sum": 289.94,
            "count": 6,
            "unique_count": 1
        }
    ]
}

POST /api/reports/journey

Understand how users nagivate through your website.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • steps: (number) Number of steps from 3 to 7
  • timezone : (string) Timezone
  • websiteId : (string) Your website id
  • startStep : (string | optional)
  • endStep : (string | optional)

Request body

{
    "steps": 5,
    "websiteId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "dateRange": {
        "startDate": "2025-05-17T22:00:00.000Z",
        "endDate": "2025-05-24T21:59:59.999Z",
        "unit": "day",
        "offset": 0,
        "num": 1,
        "value": "0week"
    },
    "timezone": "Europe/Berlin"
}

Sample response

[
    {
        "items": ["index.html", "outbound-link-click", null, null],
        "count": 1
    },
    {
        "items": ["/", null],
        "count": 1
    },
    {
        "items": ["index.html", "open-app-store", null],
        "count": 1
    }
]

POST /api/reports/retention

Measure your website stickiness by tracking how often users return.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • timezone : (string) Timezone
  • websiteId : (string) Your website id

Request body

{
    "dateRange":{
        "startDate":"2025-04-30T22:00:00.000Z",
        "endDate":"2025-05-31T21:59:59.999Z",
        "value":"range:1746050400000:1748728799999",
        "offset":0,
        "unit":"day"
    },
    "websiteId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timezone":"Europe/Berlin"
}

Sample response

[
    {
        "date": "2025-05-18T22:00:00Z",
        "day": 0,
        "visitors": 1,
        "returnVisitors": 1,
        "percentage": 100
    }, 
    {
        "date": "2025-05-19T22:00:00Z",
        "day": 0,
        "visitors": 1,
        "returnVisitors": 1,
        "percentage": 100
    }
]

POST /api/reports/insights

Dive deeper into your data by using segments and filters.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • fields : (array) Minumum one is required.
  • filters : (array)
  • timezone : (string) Timezone
  • websiteId : (string) Your website id

Request body

{
    "fields":[
        {
            "name":"url",
            "type":"string",
            "label":"URL"
        }
    ],
    "filters":[
    ],
    "websiteId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",,
    "dateRange":{
        "startDate":"2025-05-17T22:00:00.000Z",
        "endDate":"2025-05-24T21:59:59.999Z",
        "unit":"day",
        "offset":0,
        "num":1,
        "value":"0week"
    },
    "timezone":"Europe/Berlin"
}

Sample response

[
    {
        "views": 8,
        "visitors": 3,
        "visits": 3,
        "bounces": 1,
        "totaltime": 242,
        "country": "US"
    }
]

POST /api/reports/goals

Track your goals for pageviews and events.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • goals : (array) Minumum two required.
  • timezone : (string) Timezone
  • websiteId : (string) Your website id

Request body

{
    "goals":[
        {
            "type":"url",
            "value":"/",
            "goal":10
        }
    ],
    "websiteId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "dateRange":{
        "startDate":"2025-05-17T22:00:00.000Z",
        "endDate":"2025-05-24T21:59:59.999Z",
        "unit":"day",
        "offset":0,
        "num":1,
        "value":"0week"
    },
    "timezone":"Europe/Berlin"
}

Sample response

[
    {
        "type": "url",
        "value": "/",
        "goal": 10,
        "result": 10
    }
]

POST /api/reports/funnel

Understand the conversion and drop-off rate of users.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • steps : (array) Minumum two required.
  • timezone : (string) Timezone
  • websiteId : (string) Your website id
  • window : (number)

Request body

{
    "window":60,
    "steps":[
        {
            "type":"url",
            "value":"/"
        },
        {
            "type":"url",
            "value":"/contact"
        }
    ],
    "websiteId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "dateRange":{
        "startDate":"2025-05-13T22:00:00.000Z",
        "endDate":"2025-05-20T21:59:59.999Z",
        "unit":"day",
        "offset":0,
        "num":7,
        "value":"7day"
    },
    "timezone":"Europe/Berlin"
}

Sample response

[
    {
        "type": "url",
        "value": "/",
        "visitors": 1,
        "previous": 0,
        "dropped": 0,
        "dropoff": null,
        "remaining": 1
    }
]

POST /api/reports/attribution

See how users engage with your marketing and what drives conversions.

Parameters

  • dateRange
    • startDate : (number) Date (in ms) of start date
    • endDate : (number) Date (in ms) of end date
    • num : (number)
    • offset : (number)
    • unit : (string)
    • value : (string)
  • model : (string) Choose between firstClick and lastClick
  • steps : (array) Only one step.
  • timezone : (string) Timezone
  • websiteId : (string) Your website id

Request body

{
    "model":"firstClick",
    "steps":[
        {
            "type":"event",
            "value":"/"
        }
    ],
    "websiteId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "dateRange":{
        "startDate":"2025-05-13T22:00:00.000Z",
        "endDate":"2025-05-20T21:59:59.999Z",
        "unit":"day",
        "offset":0,
        "num":7,
        "value":"7day"
    },
    "timezone":"Europe/Berlin"
}

Sample response

{
    "paidAds" : [
        {
            "name" : "Google",
            "value" : 129
        }
    ],
    "referrer" : [
        {
            "name" : "google.com",
            "value" : 21273
        }
    ],
    "utm_source" : [
        {
            "name" : "yahoo.de",
            "value" : 671
        }
    ],
    "utm_content" : [
        {
            "name" : "info-email-3",
            "value" : 24
        }
    ],
    "utm_medium" : [
        {
            "name" : "outbound-email",
            "value" : 150
        }
    ],
    "utm_campaign" : [
        {
            "name" : "analytics",
            "value" : 69
        }
    ],
    "utm_term" : [
        {
            "name" : "software",
            "value" : 2
        }
    ],
    "total" : {
        "visitors" : 79106,
        "visits" : 105066,
        "pageviews" : 136971
    }
}

DELETE /api/reports/:reportId

Delete report with given id.

Sample response

ok