# Matomo

> Read your Matomo web analytics: visits, pageviews and conversions for any day, week, month or date range, your top pages, traffic sources, countries, devices, goals and events, and who is on your website right now. Works with Matomo Cloud and with Matomo on your own server.

App · 20 actions. Web page: https://docs.lodol.com/docs/integrations/matomo

## Actions

### Get browsers

List the browsers visitors used most, such as Chrome, Safari and Firefox.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `browsers` (list): The browsers, most visits first.
- `count` (number): How many rows came back.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "browsers": [
    {
      "actions": 492630,
      "actions_per_visit": 2.3,
      "average_visit_seconds": 185,
      "bounce_rate_percent": 70.59,
      "conversion_rate_percent": 6.92,
      "conversions": 15456,
      "converted_visits": 14956,
      "name": "Chrome",
      "revenue": 1466390.8,
      "visits": 216179
    }
  ],
  "count": 1,
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get campaigns

List the marketing campaigns that brought the most visits, from the campaign tags on your links.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `campaigns` (list): The campaigns, most visits first.
- `count` (number): How many rows came back.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "campaigns": [
    {
      "actions": 0,
      "actions_per_visit": 0.0,
      "average_visit_seconds": 0,
      "bounce_rate_percent": 0.0,
      "conversion_rate_percent": 0.0,
      "conversions": 16,
      "converted_visits": 0,
      "name": "org_newsletter_2018_06_12",
      "revenue": 0.0,
      "visits": 0
    }
  ],
  "count": 1,
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get channel types

Break a website's visits down by where they came from: search engines, social networks, other websites, campaigns, AI assistants, or typed in directly.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.

**Outputs**

- `channels` (list): Each kind of source, most visits first.
- `count` (number): How many rows came back.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "channels": [
    {
      "actions": 416789,
      "actions_per_visit": 1.8,
      "average_visit_seconds": 106,
      "bounce_rate_percent": 73.42,
      "conversion_rate_percent": 6.29,
      "conversions": 19133,
      "converted_visits": 14935,
      "name": "Search Engines",
      "revenue": 405835.05,
      "visits": 237304
    }
  ],
  "count": 1,
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get clicked outbound links

List the links to other websites that visitors clicked most, with how many times each was clicked.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `links` (list): The links, most clicked first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "links": [
    {
      "clicks": 2735,
      "domain": "www.facebook.com",
      "unique_clicks": 2671,
      "url": "https://www.facebook.com/Divezone.net"
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get countries

List the countries the most visits to a website came from.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `countries` (list): The countries, most visits first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "countries": [
    {
      "actions": 169041,
      "actions_per_visit": 2.2,
      "average_visit_seconds": 159,
      "bounce_rate_percent": 68.98,
      "conversion_rate_percent": 8.08,
      "conversions": 6425,
      "converted_visits": 6271,
      "country_code": "US",
      "name": "United States",
      "revenue": 523301.6,
      "visits": 77575
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get device types

Break a website's visits down by kind of device: desktop, smartphone, tablet and more.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.

**Outputs**

- `count` (number): How many rows came back.
- `device_types` (list): Each kind of device, most visits first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "device_types": [
    {
      "actions": 718710,
      "actions_per_visit": 2.9,
      "average_visit_seconds": 264,
      "bounce_rate_percent": 58.38,
      "conversion_rate_percent": 9.13,
      "conversions": 23455,
      "converted_visits": 22662,
      "name": "Desktop",
      "revenue": 2458258.2,
      "visits": 248180
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get downloads

List the files visitors downloaded most from a website, such as PDFs and images, with how many times each was downloaded.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `downloads` (list): The files, most downloaded first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "downloads": [
    {
      "downloads": 72,
      "file_name": "komodo-island-map.jpg",
      "unique_downloads": 68,
      "url": "https://divezone.net/wp-content/uploads/2012/05/komodo-island-map.jpg"
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get events

List the events tracked on a website most often, such as video plays or button clicks, by category, action or name, with their values.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- Group events by (`group_by`, text): Matomo files every event under a category, an action and a name, such as Videos, play and Intro. One of: `category` (Event category), `action` (Event action), `name` (Event name). Default: `category`.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `events` (list): The events, most frequent first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "events": [
    {
      "average_value": 107.82,
      "events": 17430,
      "events_with_value": 15147,
      "name": "MediaVideo",
      "total_value": 1633182.0,
      "visits": 11116
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get goal conversions

Get how often each of a website's goals was reached and the revenue it brought, with online orders and the totals.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.

**Outputs**

- `conversion_rate_percent` (number): Share of visits that reached a goal, in percent, e.g. 7.4.
- `conversions` (number): Goals reached and orders placed, all told.
- `converted_visits` (number): Visits that reached at least one goal or placed an order.
- `count` (number): How many rows came back.
- `goals` (list): Each goal, and the online orders on a shop, most conversions first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.
- `revenue` (number): Revenue from every goal and order, in the website's currency.

**Example output**

```json
{
  "conversion_rate_percent": 7.4,
  "conversions": 32782,
  "converted_visits": 31767,
  "count": 2,
  "goals": [
    {
      "conversion_rate_percent": 2.68,
      "conversions": 11791,
      "converted_visits": 11516,
      "name": "Ecommerce orders",
      "revenue": 2455997.55
    },
    {
      "conversion_rate_percent": 0.1,
      "conversions": 437,
      "converted_visits": 437,
      "name": "Newsletter Signup",
      "revenue": 0.0
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01",
  "revenue": 2475114.55
}
```

### Get operating systems

List the operating systems visitors used most, such as Windows, iOS and Android.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `operating_systems` (list): The operating systems, most visits first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "operating_systems": [
    {
      "actions": 415266,
      "actions_per_visit": 3.2,
      "average_visit_seconds": 311,
      "bounce_rate_percent": 51.03,
      "conversion_rate_percent": 10.08,
      "conversions": null,
      "converted_visits": 13069,
      "name": "Windows",
      "revenue": null,
      "visits": 129703
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get real-time visitor counts

Count the visits, visitors and actions on a website in the last few minutes, as Matomo's real-time widget shows them.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Last minutes (`minutes`, number): How many minutes back to count, up to 48 hours. From 1 to 2880. Default: `30`.

**Outputs**

- `actions` (number): Pages viewed, files downloaded, links clicked and searches made during those visits.
- `converted_visits` (number): Visits that reached at least one goal or placed an order.
- `minutes` (number): How many minutes back the counts go.
- `visitors` (number): Different visitors in those minutes.
- `visits` (number): Visits active in those minutes.

**Example output**

```json
{
  "actions": 460,
  "converted_visits": 40,
  "minutes": 30,
  "visitors": 213,
  "visits": 235
}
```

### Get referring websites

List the other websites that sent the most visitors by linking to yours.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.
- `websites` (list): The websites, most visits first.

**Example output**

```json
{
  "count": 1,
  "period_end": "2026-09-30",
  "period_start": "2026-09-01",
  "websites": [
    {
      "actions": 56203,
      "actions_per_visit": 3.9,
      "average_visit_seconds": 402,
      "bounce_rate_percent": 46.69,
      "conversion_rate_percent": 10.91,
      "conversions": 1419,
      "converted_visits": 1562,
      "name": "diveadvisor.com",
      "revenue": 235493.7,
      "url": "https://diveadvisor.com",
      "visits": 14317
    }
  ]
}
```

### Get search engines

List the search engines that sent the most visitors, such as Google and Bing.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.
- `search_engines` (list): The search engines, most visits first.

**Example output**

```json
{
  "count": 1,
  "period_end": "2026-09-30",
  "period_start": "2026-09-01",
  "search_engines": [
    {
      "actions": 354088,
      "actions_per_visit": 1.6,
      "average_visit_seconds": 91,
      "bounce_rate_percent": 74.93,
      "conversion_rate_percent": 6.0,
      "conversions": 17082,
      "converted_visits": 12921,
      "name": "Google",
      "revenue": 182676.3,
      "url": "http://google.com",
      "visits": 215367
    }
  ]
}
```

### Get site search keywords

See what visitors typed into the website's own search box and how often, or only the searches that found nothing.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- Only searches with no results (`only_no_results`, true/false): Show only what people searched for and didn't find: content your website may be missing. Default: `false`.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `keywords` (list): The searches, most frequent first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "keywords": [
    {
      "exit_rate_percent": 23.49,
      "keyword": "starter",
      "result_pages_per_search": 1.2,
      "searches": 1494
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get social networks

List the social networks that sent the most visitors, such as Facebook, LinkedIn or Reddit.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.
- `social_networks` (list): The social networks, most visits first.

**Example output**

```json
{
  "count": 1,
  "period_end": "2026-09-30",
  "period_start": "2026-09-01",
  "social_networks": [
    {
      "actions": 89442,
      "actions_per_visit": 3.4,
      "average_visit_seconds": 311,
      "bounce_rate_percent": 54.42,
      "conversion_rate_percent": 9.58,
      "conversions": 2159,
      "converted_visits": 2557,
      "name": "reddit",
      "revenue": 380643.1,
      "url": "https://reddit.com",
      "visits": 26679
    }
  ]
}
```

### Get top pages

Find a website's most viewed pages, or the pages where most visits start (landing pages) or end (exit pages), with views, time on page, bounce rate and exit rate.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- Rank by (`rank_by`, text): Which pages come first. One of: `views` (Most viewed), `entrances` (Most visits started there (landing pages)), `exits` (Most visits ended there (exit pages)). Default: `views`.
- Show pages by (`show_by`, text): Whether to list pages by their address or by their title, which groups pages that share one. One of: `address` (Page address), `title` (Page title). Default: `address`.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `pages` (list): The pages, top first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "pages": [
    {
      "average_time_on_page_seconds": 57,
      "bounce_rate_percent": 48.79,
      "entrances": 11222,
      "exit_rate_percent": 34.18,
      "exits": 13096,
      "page": "/cart/",
      "pageviews": 50491,
      "unique_pageviews": 38319,
      "url": "https://dive-shop.net/cart/"
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get visits by hour

Count a website's visits in each hour of the day, to see when people visit.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.
- Hours in (`clock`, text): Whose clock the hours are counted on. One of: `website` (The website's time zone), `visitor` (Each visitor's own time). Default: `website`.

**Outputs**

- `count` (number): How many rows came back.
- `hours` (list): Each hour with visits, midnight first.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.

**Example output**

```json
{
  "count": 1,
  "hours": [
    {
      "actions": 67645,
      "actions_per_visit": 2.6,
      "average_visit_seconds": 230,
      "bounce_rate_percent": 63.38,
      "conversion_rate_percent": 8.43,
      "conversions": 2349,
      "converted_visits": 2221,
      "hour": 14,
      "name": "14:00",
      "revenue": 254147.3,
      "visits": 26337
    }
  ],
  "period_end": "2026-09-30",
  "period_start": "2026-09-01"
}
```

### Get visits overview

Get a website's headline numbers for a day, week, month, year or date range: visits, unique visitors, pageviews, time on site, bounce rate, conversions and revenue.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Period (`period`, text): How long a stretch of time to report on. One of: `day`, `week` (Week (Monday to Sunday)), `month`, `year`, `range` (Date range). Default: `day`.
- Date (`date`, date): Any day in the period: the report covers the whole day, week, month or year it falls in. Leave empty for the last full one, such as yesterday or last month, which suits a scheduled report. Only when Period is Day, Week (Monday to Sunday), Month or Year.
- Start date (`start_date`, date): The first day of the range. Only when Period is Date range.
- End date (`end_date`, date): The last day of the range, which is included. Only when Period is Date range.

**Outputs**

- `actions` (number): Pages viewed, files downloaded, links clicked and searches made during those visits.
- `actions_per_visit` (number): Actions in an average visit, e.g. 2.3.
- `average_visit_duration` (text): The same, written out, e.g. 2 min 59 s.
- `average_visit_seconds` (number): How long an average visit lasted, in seconds.
- `bounce_rate_percent` (number): Share of visits that left after one page, in percent, e.g. 46.7.
- `bounces` (number): Visits that left after one page.
- `conversion_rate_percent` (number): Share of visits that reached a goal, in percent, e.g. 7.4.
- `conversions` (number): Goals reached and orders placed.
- `converted_visits` (number): Visits that reached at least one goal or placed an order.
- `downloads` (number): Files downloaded.
- `new_visits` (number): Visits by people who hadn't visited before.
- `outbound_link_clicks` (number): Clicks on links to other websites.
- `pageviews` (number): Pages viewed.
- `period_end` (text): The last day the report covers, e.g. 2026-09-30.
- `period_start` (text): The first day the report covers, e.g. 2026-09-01.
- `returning_visits` (number): Visits by people who had visited before.
- `revenue` (number): Revenue from goals and orders, in the website's currency.
- `site_searches` (number): Searches made with the website's own search box.
- `unique_pageviews` (number): Pages viewed, counting each page once a visit.
- `unique_visitors` (number): Different visitors. Null when your Matomo isn't set to count them for this kind of period, which by default is a month, a year or a date range.
- `visits` (number): Visits in the period.

**Example output**

```json
{
  "actions": 32077,
  "actions_per_visit": 2.3,
  "average_visit_duration": "2 min 59 s",
  "average_visit_seconds": 179,
  "bounce_rate_percent": 66.96,
  "bounces": 9311,
  "conversion_rate_percent": 7.18,
  "conversions": 1026,
  "converted_visits": 999,
  "downloads": 35,
  "new_visits": 2491,
  "outbound_link_clicks": 1614,
  "pageviews": 26910,
  "period_end": "2026-10-15",
  "period_start": "2026-10-15",
  "returning_visits": 11414,
  "revenue": 74003.65,
  "site_searches": 210,
  "unique_pageviews": 22429,
  "unique_visitors": 11062,
  "visits": 13905
}
```

### List recent visits

Get the latest visits to a website, newest first: where each visitor came from, their country, device and browser, and every page they viewed.

**Inputs**

- Website (`website`, text, required): The website to report on.
- Since (`since`, date and time): Only visits active after this moment, such as the last time the workflow ran. Leave empty for the latest visits.
- How many (`limit`, number): How many to return, the biggest first. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many rows came back.
- `visits` (list): The visits, newest first.

**Example output**

```json
{
  "count": 1,
  "visits": [
    {
      "actions": 2,
      "activity": [
        {
          "time_spent_seconds": 82,
          "title": "Budget Liveaboard Komodo \u2013 Divezone",
          "type": "page view",
          "url": "https://divezone.net/budget-komodo-liveaboard"
        },
        {
          "time_spent_seconds": 0,
          "title": "MV Ambai Liveaboard Review \u2013 Komodo Island, Raja Ampat, Indonesia Dive Boat Reviews",
          "type": "page view",
          "url": "https://divezone.net/liveaboard/mv-ambai"
        }
      ],
      "browser": "Mobile Safari 11.0",
      "campaign": null,
      "channel": "Search Engines",
      "city": "West Jakarta",
      "converted": false,
      "country": "Indonesia",
      "country_code": "ID",
      "device": "Apple iPhone",
      "device_type": "Smartphone",
      "duration_seconds": 83,
      "entry_page_url": "https://divezone.net/budget-komodo-liveaboard",
      "exit_page_url": "https://divezone.net/liveaboard/mv-ambai",
      "goal_conversions": 0,
      "language": null,
      "last_action_at": "2026-10-16T02:36:52Z",
      "operating_system": "iOS 11.2",
      "pages_viewed": 2,
      "referrer_name": "Google",
      "referrer_url": "https://www.google.de/",
      "region": "Jakarta Raya",
      "revenue": 0.0,
      "search_keyword": null,
      "started_at": "2026-10-16T02:35:30Z",
      "user_id": null,
      "visit_id": 23591199,
      "visit_number": 253,
      "visitor_type": "returning customer"
    }
  ]
}
```

### List websites

List the websites your Matomo tracks that the connected user can see, with each one's address, time zone and currency.

**Inputs**

- How many (`limit`, number): How many websites to return, oldest first. From 1 to 1000. Default: `100`.

**Outputs**

- `count` (number): How many rows came back.
- `has_more` (true/false): Whether there are more websites than were returned. Raise How many to get them.
- `total` (number): How many websites the user can see in all.
- `websites` (list): The websites, oldest first, so the first is usually the main one.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "total": 1,
  "websites": [
    {
      "created_at": "2011-06-27T09:42:22Z",
      "currency": "USD",
      "ecommerce": true,
      "id": 1,
      "name": "Demo Site",
      "site_search": true,
      "timezone": "Europe/Paris",
      "url": "https://divezone.net"
    }
  ]
}
```
