Matomo Feedback API

Provides API methods for submitting product feedback and managing feedback reminders.

Operations 3

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /index.php?module=API&method=Feedback.sendFeedbackForFeature Send feedback about a feature · Feedback send feedback for feature #
Ask an LLM
“How can I tell the Matomo team whether I like a particular feature?”
“Can I attach a written comment when rating a feature?”
Tell an agent
Send feedback on the feature {featureName} saying I like it: {like}.
Submit feedback for feature {featureName} with the message {message}.
GET /index.php?module=API&method=Feedback.sendFeedbackForSurvey Answer a feedback survey question · Feedback send feedback for survey #
Ask an LLM
“How do I respond to an in-app survey question?”
“Where does my survey answer get sent?”
Tell an agent
Answer the survey question {question} with {message}.
Submit a survey response to {question}.
GET /index.php?module=API&method=Feedback.updateFeedbackReminderDate Postpone the feedback reminder · Feedback update feedback reminder date #
Ask an LLM
“Can I stop the feedback prompt from appearing for a while?”
“How long is the feedback reminder snoozed when I postpone it?”
Tell an agent
Postpone my feedback reminder by six months.
Snooze the feedback request prompt for me.

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/matomo:matomo-feedback-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

matomo-feedback-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Matomo Reporting API for plugin Feedback API
  version: 1.0.0
  description: Provides API methods for submitting product feedback and managing feedback reminders.
servers:
- url: https://demo-proxy.innocraft.cloud/
  description: Current Matomo instance
security:
- MatomoToken: []
tags:
- name: Feedback
  description: Provides API methods for submitting product feedback and managing feedback reminders.
paths:
  /index.php?module=API&method=Feedback.sendFeedbackForFeature:
    get:
      tags:
      - Feedback
      description: Sends a survey response to the Matomo team or to the configured feedback email address.
      operationId: Feedback.sendFeedbackForFeature
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: featureName
        in: query
        description: Name of the feature the feedback is about.
        required: true
        schema:
          type: string
          example: FormAnalytics
      - name: like
        in: query
        description: Whether the user likes the feature.
        required: false
        schema:
          type: string
      - name: choice
        in: query
        description: Optional selected multiple-choice answer.
        required: false
        schema:
          type: string
      - name: message
        in: query
        description: Feedback message entered by the user.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: 'Translation key text when validation fails, or `success` when the feedback email is sent.


            Example responses require Super User access. Use Try it out to see a live response.'
        '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'
      summary: Feedback send feedback for feature
      x-summary-source: derived
  /index.php?module=API&method=Feedback.sendFeedbackForSurvey:
    get:
      tags:
      - Feedback
      description: 'Sends feedback for a specific feature to the Matomo team or alternatively to the email address configured in the config: "feedback_email_address".'
      operationId: Feedback.sendFeedbackForSurvey
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: question
        in: query
        description: Survey question or feature label the answer belongs to.
        required: true
        schema:
          type: string
          example: Which pricing page sections get the most engagement?
      - name: message
        in: query
        description: Survey answer entered by the user.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: 'Translation key text when validation fails, or `success` when the feedback email is sent.


            Example responses require Super User access. Use Try it out to see a live response.'
        '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'
      summary: Feedback send feedback for survey
      x-summary-source: derived
  /index.php?module=API&method=Feedback.updateFeedbackReminderDate:
    get:
      tags:
      - Feedback
      description: Postpones the feedback reminder for the current user by six months.
      operationId: Feedback.updateFeedbackReminderDate
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'JSON-encoded array containing the next reminder date.


            Example responses require Super User access. Use Try it out to see a live response.'
        '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'
      summary: Feedback update feedback reminder date
      x-summary-source: derived
components:
  responses:
    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'
    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'
    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'
    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'
    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'
  schemas:
    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
    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
  parameters:
    formatOptional:
      name: format
      in: query
      description: Response format. Defaults to `xml`. Use `original` to get the original PHP data structure.
      required: false
      schema:
        type: string
        default: xml
        enum:
        - xml
        - json
        - csv
        - tsv
        - html
        - rss
        - original
  securitySchemes:
    MatomoToken:
      type: http
      description: Paste your token generated from Personal > Security. Swagger will send it as a Bearer token.
      scheme: bearer
externalDocs:
  description: Matomo Reporting API developer page
  url: https://developer.matomo.org/api-reference/reporting-api/