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' /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' /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' components: responses: 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' 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' 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' 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' 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 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 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/