Matomo · OAuth Scopes

Matomo OAuth Scopes

OAuth 2.0 probed

Matomo publishes 3 OAuth 2.0 scopes via the authorizationCode, clientCredentials, and refreshToken flows. Scopes are the fine-grained permissions an application requests at authorization time to act against the Matomo API on a user’s behalf.

Tokens are issued from https://{matomo_host}/index.php?module=OAuth2&action=token.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

AnalyticsWeb AnalyticsOpen-SourcePrivacyData OwnershipSelf-HostedGDPRTag ManagementConversion OptimizationMCP
Scopes: 3 Flows: authorizationCode, clientCredentials, refreshToken Method: probed

OAuth endpoints

Authorization URL
https://{matomo_host}/index.php?module=OAuth2&action=authorize
Token URL
https://{matomo_host}/index.php?module=OAuth2&action=token
Flows
authorizationCodeclientCredentialsrefreshToken

Scopes (3)

ScopeDescriptionFlows
matomo:read Read access to Matomo reporting data and configuration the authenticated user can already view. authorizationCode, clientCredentials, refreshToken
matomo:write Create and update access — the Matomo `write` role tier (segments, goals, tag manager entities, and other configuration the user may change). authorizationCode, clientCredentials, refreshToken
matomo:admin Administrative access — the Matomo `admin` role tier (site management, user management, instance settings). authorizationCode, clientCredentials, refreshToken

Source

OAuth Scopes

Raw ↑
generated: '2026-08-13'
method: probed
source: https://demo.matomo.cloud/.well-known/oauth-authorization-server
docs: https://plugins.matomo.org/OAuth2
raw: well-known/matomo-oauth-authorization-server.json
note: >-
  Read from the RFC 8414 Authorization Server Metadata document that Matomo core serves
  when the first-party OAuth2 plugin is installed and enabled. Because Matomo is
  self-hosted / Matomo Cloud, the issuer and endpoint URLs below are the CUSTOMER'S OWN
  instance; the values captured here were probed against Matomo's public demo instance.
  Scope DESCRIPTIONS are ours (the metadata document carries names only) and are
  derived from Matomo's documented role model (view / write / admin).
issuer: https://{matomo_host}
schemes:
  - name: OAuth2
    type: oauth2
    source: /.well-known/oauth-authorization-server
    flows:
      - flow: authorizationCode
        authorizationUrl: https://{matomo_host}/index.php?module=OAuth2&action=authorize
        tokenUrl: https://{matomo_host}/index.php?module=OAuth2&action=token
      - flow: clientCredentials
        tokenUrl: https://{matomo_host}/index.php?module=OAuth2&action=token
      - flow: refreshToken
        tokenUrl: https://{matomo_host}/index.php?module=OAuth2&action=token
    pkce:
      supported: true
      code_challenge_methods: [S256, plain]
    token_endpoint_auth_methods:
      - client_secret_basic
      - client_secret_post
    response_types: [code]
scopes:
  - scope: matomo:read
    description: >-
      Read access to Matomo reporting data and configuration the authenticated user can
      already view.
    flows: [authorizationCode, clientCredentials, refreshToken]
    sources: ['/.well-known/oauth-authorization-server']
  - scope: matomo:write
    description: >-
      Create and update access — the Matomo `write` role tier (segments, goals, tag
      manager entities, and other configuration the user may change).
    flows: [authorizationCode, clientCredentials, refreshToken]
    sources: ['/.well-known/oauth-authorization-server']
  - scope: matomo:admin
    description: >-
      Administrative access — the Matomo `admin` role tier (site management, user
      management, instance settings).
    flows: [authorizationCode, clientCredentials, refreshToken]
    sources: ['/.well-known/oauth-authorization-server']
token_lifetime:
  access_token_seconds: 3600
  source: https://matomo.org/faq/how-to/how-to-configure-the-matomo-mcp-server/
  note: Default OAuth 2.0 client access-token lifetime as documented in the MCP setup FAQ.
gaps:
  - >-
    No /.well-known/oauth-protected-resource (RFC 9728) is served, so an MCP client
    cannot discover the authorization server from the protected resource.
  - >-
    Scopes are coarse (read / write / admin). There is no per-module or per-site scope,
    so an OAuth grant cannot be narrowed below the Matomo user's own role.

Work with this as data

Every scope set 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 oauth scopes

4 MCP tools reach this
  • find_scopesBrowse and filter every scope set in the catalog.
  • 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 scope set
curl "https://apis.io/api/v1/scopes/matomo-scopes"
All oauth scopes
curl "https://apis.io/api/v1/scopes?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.