Matomo · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Matomo Reporting API for plugin O Auth2 API

9 actions 9 updates phrasing extends openapi/matomo-oauth2-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 9

$.info
$.paths['/index.php?module=API&method=OAuth2.getClients'].get
$.paths['/index.php?module=API&method=OAuth2.getClient'].get
$.paths['/index.php?module=API&method=OAuth2.getScopes'].get
$.paths['/index.php?module=API&method=OAuth2.createClient'].get
$.paths['/index.php?module=API&method=OAuth2.updateClient'].get
$.paths['/index.php?module=API&method=OAuth2.rotateSecret'].get
$.paths['/index.php?module=API&method=OAuth2.setClientActive'].get
$.paths['/index.php?module=API&method=OAuth2.deleteClient'].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 O Auth2 API
  version: 1.0.0
extends: openapi/matomo-oauth2-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: 8
- target: $.paths['/index.php?module=API&method=OAuth2.getClients'].get
  update:
    x-apievangelist-phrasing:
      intent: List OAuth2 clients
      effect: read
      questions:
      - Which OAuth2 client applications are configured in my Matomo?
      - Can a super user see every OAuth client that has API access?
      instructions:
      - text: List all configured OAuth2 clients.
      - text: Show every OAuth client app registered on this instance.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=OAuth2.getClient'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one OAuth2 client
      effect: read
      questions:
      - What grant types and redirect URIs does a specific OAuth client have?
      - Is a particular OAuth2 client still active?
      instructions:
      - text: Get OAuth2 client {clientId}.
        slots:
          clientId: query.clientId
      - text: Show the scopes, grant types and redirect URIs of OAuth client {clientId}.
        slots:
          clientId: query.clientId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=OAuth2.getScopes'].get
  update:
    x-apievangelist-phrasing:
      intent: List the OAuth2 scopes available to clients
      effect: read
      questions:
      - What scopes can I grant to an OAuth2 client?
      - Which OAuth permission scopes are enabled for client configuration?
      instructions:
      - text: List the OAuth2 scopes enabled for clients.
      - text: Show which permission scopes I can assign to an OAuth app.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=OAuth2.createClient'].get
  update:
    x-apievangelist-phrasing:
      intent: Create an OAuth2 client
      effect: write
      questions:
      - How do I register a new OAuth2 app so it can call the Matomo API?
      - Can I create a client with the client credentials grant and get its secret back?
      instructions:
      - text: Create an OAuth2 client named {name} with grant types {grantTypes} and scope {scope}.
        slots:
          name: query.name
          grantTypes: query.grantTypes
          scope: query.scope
      - text: Register OAuth app {name} using {grantTypes}, scope {scope}, redirecting to {redirectUris}.
        slots:
          name: query.name
          grantTypes: query.grantTypes
          scope: query.scope
          redirectUris: query.redirectUris
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=OAuth2.updateClient'].get
  update:
    x-apievangelist-phrasing:
      intent: Update an OAuth2 client
      effect: write
      questions:
      - How do I change the redirect URIs or scope on an existing OAuth client?
      - Can I edit an OAuth app's name and grant types after creating it?
      instructions:
      - text: 'Update OAuth2 client {clientId}: name {name}, grant types {grantTypes}, scope {scope}.'
        slots:
          clientId: query.clientId
          name: query.name
          grantTypes: query.grantTypes
          scope: query.scope
      - text: Change the redirect URIs of existing client {clientId} to {redirectUris}, keeping name {name}, grants {grantTypes} and scope {scope}.
        slots:
          clientId: query.clientId
          redirectUris: query.redirectUris
          name: query.name
          grantTypes: query.grantTypes
          scope: query.scope
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=OAuth2.rotateSecret'].get
  update:
    x-apievangelist-phrasing:
      intent: Rotate an OAuth2 client's secret
      effect: destructive
      questions:
      - How do I generate a new secret for an OAuth client whose secret leaked?
      - Will rotating a client secret replace the old one?
      instructions:
      - text: Rotate the secret for OAuth2 client {clientId}.
        slots:
          clientId: query.clientId
      - text: Generate a fresh client secret for {clientId}, confirming with password {passwordConfirmation}.
        slots:
          clientId: query.clientId
          passwordConfirmation: query.passwordConfirmation
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=OAuth2.setClientActive'].get
  update:
    x-apievangelist-phrasing:
      intent: Activate or deactivate an OAuth2 client
      effect: write
      questions:
      - Can I temporarily disable an OAuth client without deleting it?
      - How do I re-enable an OAuth app I switched off?
      instructions:
      - text: Set OAuth2 client {clientId} active to {active}.
        slots:
          clientId: query.clientId
          active: query.active
      - text: Deactivate OAuth client {clientId} by setting active={active}.
        slots:
          clientId: query.clientId
          active: query.active
      method: generated
      generated: '2026-10-01'
- target: $.paths['/index.php?module=API&method=OAuth2.deleteClient'].get
  update:
    x-apievangelist-phrasing:
      intent: Delete an OAuth2 client and its tokens
      effect: destructive
      questions:
      - What happens to access and refresh tokens when I delete an OAuth client?
      - How do I permanently remove an OAuth app from Matomo?
      instructions:
      - text: Delete OAuth2 client {clientId}.
        slots:
          clientId: query.clientId
      - text: Remove OAuth client {clientId} and all its tokens, confirming with password {passwordConfirmation}.
        slots:
          clientId: query.clientId
          passwordConfirmation: query.passwordConfirmation
      method: generated
      generated: '2026-10-01'