Matomo Reporting API (index.php entrypoint)

The single /index.php dispatch entrypoint through which every Matomo Reporting API method is invoked, by supplying module=API and method=Module.Action. This entry documents the entrypoint contract itself — the shared parameters (idSite, period, date, segment, format, token_auth) and the bulk-request form — rather than any one module. The per-module contracts are the 59 OpenAPI documents generated by Matomo's own ApiReference plugin.

Operations 19

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /index.php?module=API&method=API.getMatomoVersion Get the installed Matomo version · API get matomo version #
Ask an LLM
“Which Matomo version is this server running?”
“Is my analytics instance up to date with the latest release number?”
Tell an agent
Tell me the installed Matomo version.
Check what release of the analytics software this instance runs.
GET /index.php?module=API&method=API.getPhpVersion Get the server's PHP version · API get php version #
Ask an LLM
“What PHP version is the analytics server using?”
“Can I check the PHP runtime before upgrading a plugin?”
Tell an agent
Report the PHP runtime version on the server.
Show the PHP version information.
GET /index.php?module=API&method=API.getIpFromHeader See the IP address the server detects for me · API get ip from header #
Ask an LLM
“What IP address does the server think I'm calling from?”
“Is my proxy setup passing through the real client IP?”
Tell an agent
Show the IP address detected for my request.
Check which client IP the server reads from the headers.
GET /index.php?module=API&method=API.getSegmentsMetadata List all available segment dimensions · API get segments metadata #
Ask an LLM
“Which dimensions can I segment my reports by?”
“What segment names and operators are available for a given site?”
Tell an agent
List metadata for every available segment.
Show the segments available for sites {idSites}.
GET /index.php?module=API&method=API.getMetadata Describe a single API report method · API get metadata #
Ask an LLM
“What metrics and dimensions does a specific report method return?”
“Can I get the documentation metadata for one module and action?”
Tell an agent
Get metadata for report {apiModule}.{apiAction} on site {idSite}.
Describe the {apiModule}.{apiAction} report for site {idSite} in {language}.
GET /index.php?module=API&method=API.getReportMetadata List metadata for all available reports · API get report metadata #
Ask an LLM
“What reports can I pull from this analytics instance?”
“Is there a catalog of every report with its metrics and dimensions?”
Tell an agent
List metadata for all available reports.
Show the full report catalog for site {idSite}.
GET /index.php?module=API&method=API.getProcessedReport Get a formatted report with metadata · API get processed report #
Ask an LLM
“Can I fetch a report already formatted, with processed metrics and column labels?”
“How do I get a report's data plus its metadata in one response?”
Tell an agent
Get the processed {apiModule}.{apiAction} report for site {idSite}, {period} {date}.
Fetch the formatted {apiModule}.{apiAction} report for site {idSite}, {period} {date}, segmented by {segment}.
GET /index.php?module=API&method=API.getReportPagesMetadata List the dashboard UI pages and their widgets · API get report pages metadata #
Ask an LLM
“Which pages does the reporting UI have, and what widgets sit on each?”
“Can I see the menu structure of reporting pages for a site?”
Tell an agent
List the UI report pages and their widgets for site {idSite}.
Show the reporting page layout for site {idSite}.
GET /index.php?module=API&method=API.getWidgetMetadata List all widgets available in the UI · API get widget metadata #
Ask an LLM
“What widgets can be added to a dashboard?”
“Can I get a list of every embeddable widget for a site?”
Tell an agent
List all available widgets for site {idSite}.
Show the widget catalog I can embed for site {idSite}.
GET /index.php?module=API&method=API.get Get a combined key-metrics report · API get #
Ask an LLM
“Can I get visits, actions, goals and other headline numbers in one combined call?”
“What's the overall summary of my site's metrics for yesterday?”
Tell an agent
Get the combined key metrics for site {idSite}, {period} {date}.
Pull only columns {columns} from the combined summary for site {idSite}, {period} {date}.
GET /index.php?module=API&method=API.getRowEvolution Track one report row over time · API get row evolution #
Ask an LLM
“How has traffic to one specific page changed over the last 30 days?”
“Can I chart a single row of a report as a time series?”
Tell an agent
Show the evolution of {label} in {apiModule}.{apiAction} for site {idSite}, {period} {date}.
Plot metric {column} over time for row {label} of {apiModule}.{apiAction}, site {idSite}, {period} {date}.
GET /index.php?module=API&method=API.getBulkRequest Run several API requests in one call · API get bulk request #
Ask an LLM
“Can I batch several report queries into a single HTTP call?”
“Is there a way to reduce round trips when pulling many reports?”
Tell an agent
Run these API requests together in one bulk call: {urls}.
Batch the report queries {urls} and return all results.
GET /index.php?module=API&method=API.isPluginActivated Check whether a plugin is activated · API is plugin activated #
Ask an LLM
“Is a particular plugin turned on in this instance?”
“Can I check if a premium feature plugin is active before calling it?”
Tell an agent
Check whether plugin {pluginName} is activated.
Tell me if the {pluginName} plugin is enabled.
GET /index.php?module=API&method=API.getSuggestedValuesForSegment Get suggested values for a segment · API get suggested values for segment #
Ask an LLM
“What values have recently been seen for a segment like browser or country?”
“Can I get autocomplete suggestions when building a segment?”
Tell an agent
Suggest values for segment {segmentName} on site {idSite}.
List recent values seen for {segmentName} on site {idSite}.
GET /index.php?module=API&method=API.getPagesComparisonsDisabledFor List report pages where comparison is disabled · API get pages comparisons disabled for #
Ask an LLM
“On which report pages can't I compare periods or segments?”
“Which category and subcategory pages have comparison features turned off?”
Tell an agent
List report pages where comparison features are disabled.
Show category.subcategory pairs that don't support comparisons.
GET /index.php?module=API&method=API.getGlossaryReports Get the glossary of reports · API get glossary reports #
Ask an LLM
“Where can I read plain explanations of what each report means?”
“Is there a glossary describing every report for a site?”
Tell an agent
Get the report glossary for site {idSite}.
Show definitions for every report on site {idSite}.
GET /index.php?module=API&method=API.getGlossaryMetrics Get the glossary of metrics · API get glossary metrics #
Ask an LLM
“What does bounce rate or avg. time on page actually mean here?”
“Is there a glossary that defines each metric?”
Tell an agent
Get the metrics glossary for site {idSite}.
Show definitions for every metric on site {idSite}.
GET /index.php Call any Reporting API method by name · Invoke a Matomo Reporting API method #
Ask an LLM
“How do I call any reporting method, like VisitsSummary.get, through the single endpoint?”
“Can I pass the method name as a parameter to fetch any report with a GET request?”
Tell an agent
Call reporting method {method} with module {module} for site {idSite}, {period} {date}.
Run {method} via the generic GET endpoint (module {module}) in {format} format.
POST /index.php Call a Reporting API method via POST · Invoke a Matomo Reporting API method (POST, recommended for token in body) #
Ask an LLM
“Can I send my auth token in the request body instead of the URL?”
“Is there a POST version of the generic reporting endpoint?”
Tell an agent
POST to reporting method {method} (module {module}) with token {token_auth} in the body.
Call {method} with module {module} by POST for site {idSite}, {period} {date}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/matomo:matomo-index-php-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

matomo-index-php-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Matomo Index.php API
  version: '1.0'
  description: 'Operations tagged Index.php across 2 of this provider''s published API definitions: matomo-api-openapi.json, matomo-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://demo-proxy.innocraft.cloud/
  description: Current Matomo instance
- url: https://{matomo_host}
  description: Your Matomo instance (self-hosted or Matomo Cloud)
  variables:
    matomo_host:
      default: demo.matomo.cloud
tags:


# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/matomo/refs/heads/main/openapi/matomo-index-php-api-openapi.yml