Matomo MediaAnalytics API

The Matomo MediaAnalytics API exposes 14 operations of the Matomo Reporting API (module `MediaAnalytics`). Video and audio engagement analytics: plays, finishes, play time and audience watch curves. Every operation is dispatched through the single `/index.php?module=API&method=MediaAnalytics.` entrypoint on the customer's own Matomo instance, self-hosted or on Matomo Cloud. The OpenAPI 3.1.0 document is Matomo's own, generated by its first-party ApiReference plugin.

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/media-analytics-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 email required.

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

OpenAPI Specification

matomo-media-analytics-openapi.json Raw ↑
{"openapi":"3.1.0","info":{"title":"Matomo Reporting API for MediaAnalytics plugin","version":"1.0.0"},"servers":[{"url":"https:\/\/demo-proxy.innocraft.cloud\/","description":"Current Matomo instance"}],"paths":{"\/index.php?module=API&method=MediaAnalytics.get":{"get":{"tags":["MediaAnalytics"],"description":"Return the aggregated media analytics overview for the given site, period, and date.","operationId":"MediaAnalytics.get","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}},{"name":"columns","in":"query","description":"Optional metric column names to include in the response.","required":false,"schema":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}}],"responses":{"200":{"description":"DataTable with the requested media metrics.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getCurrentNumPlays":{"get":{"tags":["MediaAnalytics"],"description":"Return the number of media plays within the last N minutes.","operationId":"MediaAnalytics.getCurrentNumPlays","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"The numeric ID of the website to query.","required":true,"schema":{"type":"integer","example":1}},{"name":"lastMinutes","in":"query","description":"Number of minutes to look back.","required":true,"schema":{"type":"integer","example":30}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Number of plays in the requested time window.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getCurrentSumTimeSpent":{"get":{"tags":["MediaAnalytics"],"description":"Return the total watched time in seconds within the last N minutes.","operationId":"MediaAnalytics.getCurrentSumTimeSpent","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"The numeric ID of the website to query.","required":true,"schema":{"type":"integer","example":1}},{"name":"lastMinutes","in":"query","description":"Number of minutes to look back.","required":true,"schema":{"type":"integer","example":30}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Total watched time in seconds in the requested time window.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getCurrentMostPlays":{"get":{"tags":["MediaAnalytics"],"description":"Return the most played media items within the last N minutes.","operationId":"MediaAnalytics.getCurrentMostPlays","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"The numeric ID of the website to query.","required":true,"schema":{"type":"integer","example":1}},{"name":"lastMinutes","in":"query","description":"Number of minutes to look back.","required":true,"schema":{"type":"integer","example":30}},{"name":"filter_limit","in":"query","description":"Maximum number of rows to return.","required":false,"schema":{"type":"integer","default":5}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of most played media items.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getVideoResources":{"get":{"tags":["MediaAnalytics"],"description":"Return media resource URLs for video items.","operationId":"MediaAnalytics.getVideoResources","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"The numeric ID of the website to query.","required":true,"schema":{"type":"integer","example":1}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}},{"name":"idSubtable","in":"query","description":"Subtable ID to load, or false for the root table.","required":false,"schema":{"type":"integer"}},{"name":"secondaryDimension","in":"query","description":"Secondary dimension label to drill down into, or false for none.","required":false,"schema":{"type":"string"}},{"name":"expanded","in":"query","description":"Whether to expand the first level of subtables.","required":false,"schema":{"type":"boolean","default":false}},{"name":"_expandAll","in":"query","description":"internal usage only.","required":false,"schema":{"type":"boolean","default":false}},{"name":"flat","in":"query","description":"Whether to return a flat report without subtables.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"DataTable of video resources.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getAudioResources":{"get":{"tags":["MediaAnalytics"],"description":"Return media resource URLs for audio items.","operationId":"MediaAnalytics.getAudioResources","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}},{"name":"idSubtable","in":"query","description":"Subtable ID to load, or false for the root table.","required":false,"schema":{"type":"integer"}},{"name":"secondaryDimension","in":"query","description":"Secondary dimension label to drill down into, or false for none.","required":false,"schema":{"type":"string"}},{"name":"expanded","in":"query","description":"Whether to expand the first level of subtables.","required":false,"schema":{"type":"boolean","default":false}},{"name":"_expandAll","in":"query","description":"internal usage only.","required":false,"schema":{"type":"boolean","default":false}},{"name":"flat","in":"query","description":"Whether to return a flat report without subtables.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"DataTable of audio resources.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getVideoTitles":{"get":{"tags":["MediaAnalytics"],"description":"Return video titles with their aggregated metrics.","operationId":"MediaAnalytics.getVideoTitles","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}},{"name":"idSubtable","in":"query","description":"Subtable ID to load, or false for the root table.","required":false,"schema":{"type":"integer"}},{"name":"secondaryDimension","in":"query","description":"Secondary dimension label to drill down into, or false for none.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of video titles.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getAudioTitles":{"get":{"tags":["MediaAnalytics"],"description":"Return audio titles with their aggregated metrics.","operationId":"MediaAnalytics.getAudioTitles","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}},{"name":"idSubtable","in":"query","description":"Subtable ID to load, or false for the root table.","required":false,"schema":{"type":"integer"}},{"name":"secondaryDimension","in":"query","description":"Secondary dimension label to drill down into, or false for none.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of audio titles.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getGroupedVideoResources":{"get":{"tags":["MediaAnalytics"],"description":"Return grouped video resource URLs with their aggregated metrics.","operationId":"MediaAnalytics.getGroupedVideoResources","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}},{"name":"idSubtable","in":"query","description":"Subtable ID to load, or false for the root table.","required":false,"schema":{"type":"integer"}},{"name":"secondaryDimension","in":"query","description":"Secondary dimension label to drill down into, or false for none.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of grouped video resources.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getGroupedAudioResources":{"get":{"tags":["MediaAnalytics"],"description":"Return grouped audio resource URLs with their aggregated metrics.","operationId":"MediaAnalytics.getGroupedAudioResources","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}},{"name":"idSubtable","in":"query","description":"Subtable ID to load, or false for the root table.","required":false,"schema":{"type":"integer"}},{"name":"secondaryDimension","in":"query","description":"Secondary dimension label to drill down into, or false for none.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of grouped audio resources.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getVideoHours":{"get":{"tags":["MediaAnalytics"],"description":"Return video plays grouped by hour for the requested period.","operationId":"MediaAnalytics.getVideoHours","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"The numeric ID of the website to query.","required":true,"schema":{"type":"integer","example":1}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of video plays by hour.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getAudioHours":{"get":{"tags":["MediaAnalytics"],"description":"Return audio plays grouped by hour for the requested period.","operationId":"MediaAnalytics.getAudioHours","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"The numeric ID of the website to query.","required":true,"schema":{"type":"integer","example":1}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of audio plays by hour.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getVideoResolutions":{"get":{"tags":["MediaAnalytics"],"description":"Return video plays grouped by player resolution.","operationId":"MediaAnalytics.getVideoResolutions","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of video plays by resolution.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}},"\/index.php?module=API&method=MediaAnalytics.getPlayers":{"get":{"tags":["MediaAnalytics"],"description":"Return media plays grouped by player name.","operationId":"MediaAnalytics.getPlayers","parameters":[{"$ref":"#\/components\/parameters\/formatOptional"},{"name":"idSite","in":"query","description":"Website ID(s) to query. - Single site ID (e.g. 1) - Multiple site IDs (e.g. [1, 4, 5]) - Comma-separated list (\"1,4,5\") or \"all\"","required":true,"schema":{"oneOf":[{"type":"integer","example":1},{"type":"string","example":"1"},{"type":"array","items":{"type":"integer"},"example":1}]}},{"name":"period","in":"query","description":"The period to process, processes data for the period containing the specified date.","required":true,"schema":{"type":"string","enum":["day","week","month","year","range"],"example":"day"}},{"name":"date","in":"query","description":"The date or date range to process. 'YYYY-MM-DD', magic keywords (today, yesterday, lastWeek, lastMonth, lastYear), or date range (ie, 'YYYY-MM-DD,YYYY-MM-DD', lastX, previousX).","required":true,"schema":{"type":"string","example":"yesterday"}},{"name":"segment","in":"query","description":"Custom segment to filter the report. Example: \"referrerName==example.com\" Supports AND (;) and OR (,) operators.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"DataTable of media plays by player.\n\nExample responses require Super User access. Use Try it out to see a live response.","content":{"text\/xml":[],"application\/json":[],"application\/vnd.ms-excel":[]}},"400":{"$ref":"#\/components\/responses\/BadRequest"},"401":{"$ref":"#\/components\/responses\/Unauthorized"},"403":{"$ref":"#\/components\/responses\/Forbidden"},"404":{"$ref":"#\/components\/responses\/NotFound"},"500":{"$ref":"#\/components\/responses\/ServerError"},"default":{"$ref":"#\/components\/responses\/DefaultError"}}}}},"components":{"schemas":{"GenericSuccess":{"description":"Generic Matomo success payload.","required":["result","message"],"properties":{"result":{"type":"string","example":"success"},"message":{"type":"string","example":"ok"},"code":{"type":"integer","example":"200"}},"type":"object","example":{"result":"success","message":"ok"},"additionalProperties":true},"GenericSuccessXml":{"description":"Generic Matomo success payload in XML.","required":["success"],"properties":{"success":{"properties":{"message":{"type":"string","xml":{"attribute":true},"example":"ok"}},"type":"object","xml":{"name":"success"}}},"type":"object","xml":{"name":"result"},"example":{"success":{"message":"ok"}},"additionalProperties":true},"Error":{"description":"Generic Matomo error payload.","required":["result","message"],"properties":{"result":{"type":"string","example":"error"},"message":{"type":"string","example":"There was an error"},"code":{"type":"integer"}},"type":"object","additionalProperties":true},"ErrorXml":{"description":"Generic Matomo error payload in XML.","properties":{"error":{"properties":{"message":{"type":"string","xml":{"attribute":true},"example":"There was an error"}},"type":"object","xml":{"name":"error"}}},"type":"object","xml":{"name":"result"}}},"responses":{"BadRequest":{"description":"Bad request (validation or missing parameters).","content":{"text\/plain":{"schema":{"type":"string"},"example":"Error: There was an error."},"text\/html":{"schema":{"type":"string"},"example":"There was an error."},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/xml":{"schema":{"$ref":"#\/components\/schemas\/ErrorXml"}}}},"Unauthorized":{"description":"Authentication failed or missing token.","content":{"text\/plain":{"schema":{"type":"string"},"example":"Error: You must be logged in to access this functionality."},"text\/html":{"schema":{"type":"string"},"example":"You must be logged in to access this functionality."},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/xml":{"schema":{"$ref":"#\/components\/schemas\/ErrorXml"}}}},"Forbidden":{"description":"Authenticated but not allowed to access the resource.","content":{"text\/plain":{"schema":{"type":"string"},"example":"Error: Not authorised."},"text\/html":{"schema":{"type":"string"},"example":"Not authorised."},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/xml":{"schema":{"$ref":"#\/components\/schemas\/ErrorXml"}}}},"NotFound":{"description":"Resource not found.","content":{"text\/plain":{"schema":{"type":"string"},"example":"Error: The method is not available."},"text\/html":{"schema":{"type":"string"},"example":"The method is not available."},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/xml":{"schema":{"$ref":"#\/components\/schemas\/ErrorXml"}}}},"ServerError":{"description":"Unexpected server error.","content":{"text\/plain":{"schema":{"type":"string"},"example":"Error: There was an error."},"text\/html":{"schema":{"type":"string"},"example":"There was an error."},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/xml":{"schema":{"$ref":"#\/components\/schemas\/ErrorXml"}}}},"DefaultError":{"description":"Default error response (any non-2xx).","content":{"text\/plain":{"schema":{"type":"string"},"example":"Error: There was an error."},"text\/html":{"schema":{"type":"string"},"example":"There was an error."},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/xml":{"schema":{"$ref":"#\/components\/schemas\/ErrorXml"}}}},"GenericSuccessNoBody":{"description":"Generic 200 response with no body"},"GenericSuccess":{"description":"Generic 200 response","content":{"text\/plain":{"schema":{"type":"string"},"example":"Success:ok"},"text\/html":{"schema":{"type":"string"},"example":"<!-- Success: ok -->"},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/GenericSuccess"}},"application\/xml":{"schema":{"$ref":"#\/components\/schemas\/GenericSuccessXml"}}}},"GenericString":{"description":"Generic 200 response with only a string body","content":{"text\/plain":{"schema":{"type":"string"},"example":"Result: success"},"text\/html":{"schema":{"type":"string"},"example":"success"},"application\/json":{"schema":{"type":"string"}},"application\/xml":{"schema":{"type":"string"}}}},"GenericBoolean":{"description":"Generic 200 response with only true or false as the body","content":{"text\/plain":{"schema":{"type":"boolean"}},"text\/html":{"schema":{"type":"boolean"}},"application\/json":{"schema":{"type":"boolean"}},"application\/xml":{"schema":{"type":"boolean"}}}},"Gener

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/matomo/refs/heads/main/openapi/matomo-media-analytics-openapi.json