Matomo · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Matomo Reporting API for plugin Custom Reports API

14 actions 14 updates phrasing extends openapi/matomo-custom-reports-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 14

$.info
$.paths['/index.php?module=API&method=CustomReports.duplicateCustomReport'].get
$.paths['/index.php?module=API&method=CustomReports.addCustomReport'].get
$.paths['/index.php?module=API&method=CustomReports.updateCustomReport'].get
$.paths['/index.php?module=API&method=CustomReports.getConfiguredReports'].get
$.paths['/index.php?module=API&method=CustomReports.getConfiguredReport'].get
$.paths['/index.php?module=API&method=CustomReports.deleteCustomReport'].get
$.paths['/index.php?module=API&method=CustomReports.pauseCustomReport'].get
$.paths['/index.php?module=API&method=CustomReports.resumeCustomReport'].get
$.paths['/index.php?module=API&method=CustomReports.getAvailableCategories'].get
$.paths['/index.php?module=API&method=CustomReports.getAvailableReportTypes'].get
$.paths['/index.php?module=API&method=CustomReports.getAvailableDimensions'].get
$.paths['/index.php?module=API&method=CustomReports.getAvailableMetrics'].get
$.paths['/index.php?module=API&method=CustomReports.getCustomReport'].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 Reporting API for plugin Custom Reports API
  version: 1.0.0
extends: openapi/matomo-custom-reports-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: 13
- target: $.paths['/index.php?module=API&method=CustomReports.duplicateCustomReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Copy a custom report to other sites
      effect: write
      questions:
      - Can I copy a custom report I built to my other websites?
      - How do I duplicate a report definition instead of rebuilding it?
      instructions:
      - text: Duplicate custom report {idCustomReport} from site {idSite}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      - text: Copy custom report {idCustomReport} on site {idSite} to sites {idDestinationSites}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
          idDestinationSites: query.idDestinationSites
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.addCustomReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Create a new custom report
      effect: write
      questions:
      - How do I build my own report combining the dimensions and metrics I choose in Matomo?
      - Can a new custom report be limited by a segment filter?
      instructions:
      - text: Create a {reportType} custom report {name} on site {idSite} with metrics {metricIds}.
        slots:
          reportType: query.reportType
          name: query.name
          idSite: query.idSite
          metricIds: query.metricIds
      - text: 'Build new report {name} for site {idSite}: type {reportType}, metrics {metricIds}, dimensions {dimensionIds}.'
        slots:
          name: query.name
          idSite: query.idSite
          reportType: query.reportType
          metricIds: query.metricIds
          dimensionIds: query.dimensionIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.updateCustomReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Edit an existing custom report
      effect: write
      questions:
      - Can I add a metric to a custom report I already created?
      - What's needed to change the dimensions of an existing custom report?
      instructions:
      - text: 'Update custom report {idCustomReport} on site {idSite}: name {name}, type {reportType}, metrics {metricIds}.'
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
          name: query.name
          reportType: query.reportType
          metricIds: query.metricIds
      - text: Change existing report {idCustomReport} (site {idSite}) to use segment {segmentFilter}, keeping {name}, {reportType}, {metricIds}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
          segmentFilter: query.segmentFilter
          name: query.name
          reportType: query.reportType
          metricIds: query.metricIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.getConfiguredReports'].get
  update:
    x-apievangelist-phrasing:
      intent: List all custom report definitions on a site
      effect: read
      questions:
      - Which custom reports have been set up for my site?
      - Can I list all custom report configurations without their category info?
      instructions:
      - text: List every custom report configured for site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show all custom report definitions on site {idSite}, skipping category metadata.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.getConfiguredReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one custom report's definition
      effect: read
      questions:
      - What dimensions and metrics make up a given custom report?
      - Can I see the setup of one custom report by its ID?
      instructions:
      - text: Get the definition of custom report {idCustomReport} on site {idSite}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      - text: Show how custom report {idCustomReport} (site {idSite}) is configured.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.deleteCustomReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Delete a custom report
      effect: destructive
      questions:
      - How do I get rid of a custom report I no longer need?
      - Is deleting a custom report different from pausing it?
      instructions:
      - text: Delete custom report {idCustomReport} on site {idSite}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      - text: Permanently remove custom report {idCustomReport} from site {idSite}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.pauseCustomReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Pause a custom report
      effect: write
      questions:
      - Can I temporarily stop a custom report from processing data?
      - Is there a way to pause a report without deleting it?
      instructions:
      - text: Pause custom report {idCustomReport} on site {idSite}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      - text: Stop archiving custom report {idCustomReport} for site {idSite} for now.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.resumeCustomReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Resume a paused custom report
      effect: write
      questions:
      - How do I turn a paused custom report back on?
      - Can a paused report start collecting data again?
      instructions:
      - text: Resume paused custom report {idCustomReport} on site {idSite}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      - text: Restart processing for custom report {idCustomReport} (site {idSite}).
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.getAvailableCategories'].get
  update:
    x-apievangelist-phrasing:
      intent: List categories a custom report can live in
      effect: read
      questions:
      - Under which menu categories can I place a custom report?
      - What subcategories are available for custom reports on a site?
      instructions:
      - text: List the categories and subcategories for custom reports on site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show where in the menu a custom report on site {idSite} can go.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.getAvailableReportTypes'].get
  update:
    x-apievangelist-phrasing:
      intent: List custom report types
      effect: read
      questions:
      - What kinds of custom reports can I create, like table or evolution?
      - Which report types are supported for custom reports?
      instructions:
      - text: List the available custom report types.
      - text: Show which report type values I can pass when creating a custom report.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.getAvailableDimensions'].get
  update:
    x-apievangelist-phrasing:
      intent: List dimensions usable in custom reports
      effect: read
      questions:
      - Which dimensions can I break a custom report down by?
      - What dimension IDs are available for custom reports on my site?
      instructions:
      - text: List the dimensions available for custom reports on site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show dimension IDs I can use in a custom report for site {idSite}.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.getAvailableMetrics'].get
  update:
    x-apievangelist-phrasing:
      intent: List metrics usable in custom reports
      effect: read
      questions:
      - Which metrics can I include in a custom report?
      - What metric IDs are allowed for custom reports on a site?
      instructions:
      - text: List the metrics available for custom reports on site {idSite}.
        slots:
          idSite: query.idSite
      - text: Show metric IDs I can add to a custom report for site {idSite}.
        slots:
          idSite: query.idSite
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=CustomReports.getCustomReport'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom report's data for a period
      effect: read
      questions:
      - What does my custom report show for last week?
      - Can I get a custom report's data flattened instead of nested?
      instructions:
      - text: Get the data of custom report {idCustomReport} for site {idSite}, {period} {date}.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
          period: query.period
          date: query.date
      - text: Run custom report {idCustomReport} on site {idSite} for {period} {date} with segment {segment}, flattened.
        slots:
          idCustomReport: query.idCustomReport
          idSite: query.idSite
          period: query.period
          date: query.date
          segment: query.segment
      method: generated
      generated: '2026-10-01'