openapi: 3.2.0 info: title: Matomo Reporting API for plugin Advertising Conversion Export API version: 1.0.0 description: Exposes API endpoints for managing advertising conversion export configurations. These methods let users list, inspect, create, update, and delete configured exports and access tokens. servers: - url: https://demo-proxy.innocraft.cloud/ description: Current Matomo instance security: - MatomoToken: [] tags: - name: AdvertisingConversionExport description: Exposes API endpoints for managing advertising conversion export configurations. These methods let users list, inspect, create, update, and delete configured exports and access tokens. paths: /index.php?module=API&method=AdvertisingConversionExport.getConversionExports: get: tags: - AdvertisingConversionExport description: Returns configured conversion exports for one site or for every site the current user can manage. operationId: AdvertisingConversionExport.getConversionExports parameters: - $ref: '#/components/parameters/formatOptional' - name: idSite in: query description: The numeric ID of the website to query. When omitted, exports for all sites with write access are returned. required: false schema: oneOf: - type: integer - type: string responses: '200': description: 'The configured conversion exports keyed by numeric array index. 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=AdvertisingConversionExport.getConversionExport: get: tags: - AdvertisingConversionExport description: Returns the stored configuration for a specific conversion export. operationId: AdvertisingConversionExport.getConversionExport parameters: - $ref: '#/components/parameters/formatOptional' - name: idExport in: query description: The numeric ID of the conversion export to load. required: true schema: type: integer example: 7 responses: '200': description: 'The stored conversion export configuration. 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=AdvertisingConversionExport.deleteConversionExport: get: tags: - AdvertisingConversionExport description: Deletes a configured conversion export and clears its cached output. operationId: AdvertisingConversionExport.deleteConversionExport parameters: - $ref: '#/components/parameters/formatOptional' - name: idExport in: query description: The numeric ID of the conversion export to delete. required: true schema: type: integer example: 7 - name: idSite in: query description: The numeric ID of the website that owns the export. required: true schema: type: integer example: 1 responses: '200': $ref: '#/components/responses/GenericSuccess' '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=AdvertisingConversionExport.addConversionExport: get: tags: - AdvertisingConversionExport description: Creates a new advertising conversion export configuration. operationId: AdvertisingConversionExport.addConversionExport parameters: - $ref: '#/components/parameters/formatOptional' - name: idSite in: query description: The numeric ID of the website the export belongs to. required: true schema: type: integer example: 1 - name: name in: query description: The export name shown in the Matomo UI. required: true schema: type: string example: Pricing - name: type in: query description: The export type ID, for example `GoogleAds`, `MicrosoftAds`, or `YandexAds`. required: true schema: type: string example: html - name: parameters in: query description: Export settings including selected goals, export windows, attribution options, and an optional segment filter. required: true schema: oneOf: - type: string - type: integer - name: description in: query description: A free-text description for the export. required: false schema: type: string default: '' responses: '200': description: 'The created export ID and its newly generated access token. 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=AdvertisingConversionExport.regenerateAccessToken: get: tags: - AdvertisingConversionExport description: Regenerates the access token used to download a conversion export. operationId: AdvertisingConversionExport.regenerateAccessToken parameters: - $ref: '#/components/parameters/formatOptional' - name: idExport in: query description: The numeric ID of the conversion export to update. required: true schema: type: integer example: 7 responses: '200': description: 'The newly generated access token. 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=AdvertisingConversionExport.updateConversionExport: get: tags: - AdvertisingConversionExport description: Updates an existing advertising conversion export configuration. operationId: AdvertisingConversionExport.updateConversionExport parameters: - $ref: '#/components/parameters/formatOptional' - name: idExport in: query description: The numeric ID of the conversion export to update. required: true schema: type: integer example: 7 - name: idSite in: query description: The numeric ID of the website that owns the export. required: true schema: type: integer example: 1 - name: name in: query description: The updated export name shown in the Matomo UI. required: true schema: type: string example: Pricing - name: type in: query description: The updated export type ID, for example `GoogleAds`, `MicrosoftAds`, or `YandexAds`. required: true schema: type: string example: html - name: parameters in: query description: Updated export settings including selected goals, export windows, attribution options, and an optional segment filter. required: true schema: oneOf: - type: string - type: integer - name: description in: query description: The updated free-text description for the export. required: false schema: type: string default: '' responses: '200': $ref: '#/components/responses/GenericSuccess' '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: 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 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 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 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' GenericSuccess: description: Generic 200 response content: text/plain: schema: type: string example: Success:ok text/html: schema: type: string example: '' application/json: schema: $ref: '#/components/schemas/GenericSuccess' application/xml: schema: $ref: '#/components/schemas/GenericSuccessXml' 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 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/