Matomo · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Matomo Index.php API

20 actions 20 updates phrasing extends openapi/matomo-index-php-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Matomo's API. It is a proposal applied on top of the contract, not a document Matomo publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 20 · first 16 shown; the file carries all of them

$.info
$.paths['/index.php?module=API&method=API.getMatomoVersion'].get
$.paths['/index.php?module=API&method=API.getPhpVersion'].get
$.paths['/index.php?module=API&method=API.getIpFromHeader'].get
$.paths['/index.php?module=API&method=API.getSegmentsMetadata'].get
$.paths['/index.php?module=API&method=API.getMetadata'].get
$.paths['/index.php?module=API&method=API.getReportMetadata'].get
$.paths['/index.php?module=API&method=API.getProcessedReport'].get
$.paths['/index.php?module=API&method=API.getReportPagesMetadata'].get
$.paths['/index.php?module=API&method=API.getWidgetMetadata'].get
$.paths['/index.php?module=API&method=API.get'].get
$.paths['/index.php?module=API&method=API.getRowEvolution'].get
$.paths['/index.php?module=API&method=API.getBulkRequest'].get
$.paths['/index.php?module=API&method=API.isPluginActivated'].get
$.paths['/index.php?module=API&method=API.getSuggestedValuesForSegment'].get
$.paths['/index.php?module=API&method=API.getPagesComparisonsDisabledFor'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Matomo Index.php API
  version: 1.0.0
extends: openapi/matomo-index-php-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 19
- target: $.paths['/index.php?module=API&method=API.getMatomoVersion'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the installed Matomo version
      effect: read
      questions:
      - Which Matomo version is this server running?
      - Is my analytics instance up to date with the latest release number?
      instructions:
      - text: Tell me the installed Matomo version.
      - text: Check what release of the analytics software this instance runs.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getPhpVersion'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the server's PHP version
      effect: read
      questions:
      - What PHP version is the analytics server using?
      - Can I check the PHP runtime before upgrading a plugin?
      instructions:
      - text: Report the PHP runtime version on the server.
      - text: Show the PHP version information.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getIpFromHeader'].get
  update:
    x-apievangelist-phrasing:
      intent: See the IP address the server detects for me
      effect: read
      questions:
      - What IP address does the server think I'm calling from?
      - Is my proxy setup passing through the real client IP?
      instructions:
      - text: Show the IP address detected for my request.
      - text: Check which client IP the server reads from the headers.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getSegmentsMetadata'].get
  update:
    x-apievangelist-phrasing:
      intent: List all available segment dimensions
      effect: read
      questions:
      - Which dimensions can I segment my reports by?
      - What segment names and operators are available for a given site?
      instructions:
      - text: List metadata for every available segment.
      - text: Show the segments available for sites {idSites}.
        slots:
          idSites: query.idSites
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getMetadata'].get
  update:
    x-apievangelist-phrasing:
      intent: Describe a single API report method
      effect: read
      questions:
      - What metrics and dimensions does a specific report method return?
      - Can I get the documentation metadata for one module and action?
      instructions:
      - text: Get metadata for report {apiModule}.{apiAction} on site {idSite}.
        slots:
          apiModule: query.apiModule
          apiAction: query.apiAction
          idSite: query.idSite
      - text: Describe the {apiModule}.{apiAction} report for site {idSite} in {language}.
        slots:
          apiModule: query.apiModule
          apiAction: query.apiAction
          idSite: query.idSite
          language: query.language
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getReportMetadata'].get
  update:
    x-apievangelist-phrasing:
      intent: List metadata for all available reports
      effect: read
      questions:
      - What reports can I pull from this analytics instance?
      - Is there a catalog of every report with its metrics and dimensions?
      instructions:
      - text: List metadata for all available reports.
      - text: Show the full report catalog for site {idSite}.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getProcessedReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a formatted report with metadata
      effect: read
      questions:
      - 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?
      instructions:
      - text: Get the processed {apiModule}.{apiAction} report for site {idSite}, {period} {date}.
        slots:
          apiModule: query.apiModule
          apiAction: query.apiAction
          idSite: query.idSite
          period: query.period
          date: query.date
      - text: Fetch the formatted {apiModule}.{apiAction} report for site {idSite}, {period} {date}, segmented by {segment}.
        slots:
          apiModule: query.apiModule
          apiAction: query.apiAction
          idSite: query.idSite
          period: query.period
          date: query.date
          segment: query.segment
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getReportPagesMetadata'].get
  update:
    x-apievangelist-phrasing:
      intent: List the dashboard UI pages and their widgets
      effect: read
      questions:
      - 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?
      instructions:
      - text: List the UI report pages and their widgets for site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show the reporting page layout for site {idSite}.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getWidgetMetadata'].get
  update:
    x-apievangelist-phrasing:
      intent: List all widgets available in the UI
      effect: read
      questions:
      - What widgets can be added to a dashboard?
      - Can I get a list of every embeddable widget for a site?
      instructions:
      - text: List all available widgets for site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show the widget catalog I can embed for site {idSite}.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.get'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a combined key-metrics report
      effect: read
      questions:
      - 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?
      instructions:
      - text: Get the combined key metrics for site {idSite}, {period} {date}.
        slots:
          idSite: query.idSite
          period: query.period
          date: query.date
      - text: Pull only columns {columns} from the combined summary for site {idSite}, {period} {date}.
        slots:
          columns: query.columns
          idSite: query.idSite
          period: query.period
          date: query.date
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getRowEvolution'].get
  update:
    x-apievangelist-phrasing:
      intent: Track one report row over time
      effect: read
      questions:
      - 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?
      instructions:
      - text: Show the evolution of {label} in {apiModule}.{apiAction} for site {idSite}, {period} {date}.
        slots:
          label: query.label
          apiModule: query.apiModule
          apiAction: query.apiAction
          idSite: query.idSite
          period: query.period
          date: query.date
      - text: Plot metric {column} over time for row {label} of {apiModule}.{apiAction}, site {idSite}, {period} {date}.
        slots:
          column: query.column
          label: query.label
          apiModule: query.apiModule
          apiAction: query.apiAction
          idSite: query.idSite
          period: query.period
          date: query.date
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getBulkRequest'].get
  update:
    x-apievangelist-phrasing:
      intent: Run several API requests in one call
      effect: read
      questions:
      - Can I batch several report queries into a single HTTP call?
      - Is there a way to reduce round trips when pulling many reports?
      instructions:
      - text: 'Run these API requests together in one bulk call: {urls}.'
        slots:
          urls: query.urls
      - text: Batch the report queries {urls} and return all results.
        slots:
          urls: query.urls
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.isPluginActivated'].get
  update:
    x-apievangelist-phrasing:
      intent: Check whether a plugin is activated
      effect: read
      questions:
      - Is a particular plugin turned on in this instance?
      - Can I check if a premium feature plugin is active before calling it?
      instructions:
      - text: Check whether plugin {pluginName} is activated.
        slots:
          pluginName: query.pluginName
      - text: Tell me if the {pluginName} plugin is enabled.
        slots:
          pluginName: query.pluginName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getSuggestedValuesForSegment'].get
  update:
    x-apievangelist-phrasing:
      intent: Get suggested values for a segment
      effect: read
      questions:
      - What values have recently been seen for a segment like browser or country?
      - Can I get autocomplete suggestions when building a segment?
      instructions:
      - text: Suggest values for segment {segmentName} on site {idSite}.
        slots:
          segmentName: query.segmentName
          idSite: query.idSite
      - text: List recent values seen for {segmentName} on site {idSite}.
        slots:
          segmentName: query.segmentName
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getPagesComparisonsDisabledFor'].get
  update:
    x-apievangelist-phrasing:
      intent: List report pages where comparison is disabled
      effect: read
      questions:
      - On which report pages can't I compare periods or segments?
      - Which category and subcategory pages have comparison features turned off?
      instructions:
      - text: List report pages where comparison features are disabled.
      - text: Show category.subcategory pairs that don't support comparisons.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getGlossaryReports'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the glossary of reports
      effect: read
      questions:
      - Where can I read plain explanations of what each report means?
      - Is there a glossary describing every report for a site?
      instructions:
      - text: Get the report glossary for site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show definitions for every report on site {idSite}.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=API.getGlossaryMetrics'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the glossary of metrics
      effect: read
      questions:
      - What does bounce rate or avg. time on page actually mean here?
      - Is there a glossary that defines each metric?
      instructions:
      - text: Get the metrics glossary for site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show definitions for every metric on site {idSite}.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php'].get
  update:
    x-apievangelist-phrasing:
      intent: Call any Reporting API method by name
      effect: read
      questions:
      - 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?
      instructions:
      - text: Call reporting method {method} with module {module} for site {idSite}, {period} {date}.
        slots:
          method: query.method
          module: query.module
          idSite: query.idSite
          period: query.period
          date: query.date
      - text: Run {method} via the generic GET endpoint (module {module}) in {format} format.
        slots:
          method: query.method
          module: query.module
          format: query.format
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php'].post
  update:
    x-apievangelist-phrasing:
      intent: Call a Reporting API method via POST
      effect: read
      questions:
      - Can I send my auth token in the request body instead of the URL?
      - Is there a POST version of the generic reporting endpoint?
      instructions:
      - text: POST to reporting method {method} (module {module}) with token {token_auth} in the body.
        slots:
          method: query.method
          module: query.module
          token_auth: requestBody.token_auth
      - text: Call {method} with module {module} by POST for site {idSite}, {period} {date}.
        slots:
          method: query.method
          module: query.module
          idSite: requestBody.idSite
          period: requestBody.period
          date: requestBody.date
      method: generated
      generated: '2026-10-01'