Matomo Heatmap Session Recording API

Exposes the Heatmap & Session Recording API endpoints for managing configurations and retrieving recorded activity. Heatmap coordinates use relative values: X and Y positions range from 0 to 2000, where 1000 represents 50% of the matched element. Scroll reach and above-the-fold positions range from 0 to 1000, where 100 represents 10% of the page height. idSiteHsr identifies a heatmap or session recording configuration, while idLogHsr identifies an individual recorded activity entry.

Operations 31

GET /index.php?module=API&method=HeatmapSessionRecording.addHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.duplicateHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.updateHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.deleteHeatmapScreenshot #
GET /index.php?module=API&method=HeatmapSessionRecording.addSessionRecording #
GET /index.php?module=API&method=HeatmapSessionRecording.updateSessionRecording #
GET /index.php?module=API&method=HeatmapSessionRecording.getHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.getSessionRecording #
GET /index.php?module=API&method=HeatmapSessionRecording.pauseHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.resumeHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.deleteHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.endHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.pauseSessionRecording #
GET /index.php?module=API&method=HeatmapSessionRecording.resumeSessionRecording #
GET /index.php?module=API&method=HeatmapSessionRecording.deleteSessionRecording #
GET /index.php?module=API&method=HeatmapSessionRecording.endSessionRecording #
GET /index.php?module=API&method=HeatmapSessionRecording.getHeatmaps #
GET /index.php?module=API&method=HeatmapSessionRecording.getSessionRecordings #
GET /index.php?module=API&method=HeatmapSessionRecording.getRecordedSessions #
GET /index.php?module=API&method=HeatmapSessionRecording.getRecordedSession #
GET /index.php?module=API&method=HeatmapSessionRecording.deleteRecordedSession #
GET /index.php?module=API&method=HeatmapSessionRecording.deleteRecordedPageview #
GET /index.php?module=API&method=HeatmapSessionRecording.getRecordedHeatmapMetadata #
GET /index.php?module=API&method=HeatmapSessionRecording.getRecordedHeatmap #
GET /index.php?module=API&method=HeatmapSessionRecording.testUrlMatchPages #
GET /index.php?module=API&method=HeatmapSessionRecording.getAvailableStatuses #
GET /index.php?module=API&method=HeatmapSessionRecording.getAvailableTargetPageRules #
GET /index.php?module=API&method=HeatmapSessionRecording.getAvailableDeviceTypes #
GET /index.php?module=API&method=HeatmapSessionRecording.getAvailableHeatmapTypes #
GET /index.php?module=API&method=HeatmapSessionRecording.getAvailableSessionRecordingSampleLimits #
GET /index.php?module=API&method=HeatmapSessionRecording.getEventTypes #

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-heatmapsessionrecording-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-heatmapsessionrecording-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Matomo Reporting API for plugin Heatmap Session Recording API
  version: 1.0.0
  description: 'Exposes the Heatmap & Session Recording API endpoints for managing configurations and retrieving recorded activity.  Heatmap coordinates use relative values: X and Y positions range from 0 to 2000, where 1000 represents 50% of the matched element. Scroll reach and above-the-fold positions range from 0 to 1000, where 100 represents 10% of the page height. <code>idSiteHsr</code> identifies a heatmap or session recording configuration, while <code>idLogHsr</code> identifies an individual recorded activity entry.'
servers:
- url: https://demo-proxy.innocraft.cloud/
  description: Current Matomo instance
security:
- MatomoToken: []
tags:
- name: HeatmapSessionRecording
  description: 'Exposes the Heatmap & Session Recording API endpoints for managing configurations and retrieving recorded activity.  Heatmap coordinates use relative values: X and Y positions range from 0 to 2000, where 1000 represents 50% of the matched element. Scroll reach and above-the-fold positions range from 0 to 1000, where 100 represents 10% of the page height. <code>idSiteHsr</code> identifies a heatmap or session recording configuration, while <code>idLogHsr</code> identifies an individual recorded activity entry.'
paths:
  /index.php?module=API&method=HeatmapSessionRecording.addHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Adds a new heatmap.
      operationId: HeatmapSessionRecording.addHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website to configure.
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: query
        description: The heatmap name shown in the reporting UI.
        required: true
        schema:
          type: string
          example: Pricing
      - name: matchPageRules
        in: query
        description: Matching rules that define which pages contribute to this heatmap.
        required: true
        schema:
          type: array
          items: []
      - name: sampleLimit
        in: query
        description: The number of matching page views to record before the heatmap ends automatically.
        required: false
        schema:
          type: integer
          default: 1000
      - name: sampleRate
        in: query
        description: The percentage of matching traffic to record, from 0 to 100 with up to one decimal place.
        required: false
        schema:
          type: number
          default: 5
      - name: excludedElements
        in: query
        description: Comma-separated CSS selectors to exclude from the heatmap output.
        required: false
        schema:
          type: string
      - name: screenshotUrl
        in: query
        description: URL of the page to capture for the heatmap screenshot.
        required: false
        schema:
          type: string
      - name: breakpointMobile
        in: query
        description: Width threshold used to classify visits as mobile when device detection is unavailable.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: breakpointTablet
        in: query
        description: Width threshold used to classify visits as tablet when device detection is unavailable.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: captureDomManually
        in: query
        description: Whether the DOM should be captured manually instead of automatically.
        required: false
        schema:
          type: boolean
          default: false
      - name: description
        in: query
        description: Optional description providing additional context, such as the purpose or usage.
        required: false
        schema:
          type: string
          default: ''
      - name: autoRepeat
        in: query
        description: Whether Matomo should automatically create a new heatmap once this one finishes.
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: 'The ID of the newly created heatmap 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=HeatmapSessionRecording.duplicateHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Copies a specified heatmap to one or more sites. If a heatmap with the same name already exists, the new heatmap will have an automatically adjusted name to make it unique to the assigned site.
      operationId: HeatmapSessionRecording.duplicateHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the source heatmap.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to duplicate.
        required: true
        schema:
          type: integer
          example: 1
      - name: idDestinationSites
        in: query
        description: Site IDs to copy the heatmap to. Defaults to the source site when omitted.
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
      responses:
        '200':
          description: 'The duplication result, including success state, messages, and any newly created heatmap IDs.


            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=HeatmapSessionRecording.updateHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Updates an existing heatmap.
      operationId: HeatmapSessionRecording.updateHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the heatmap.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to update.
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: query
        description: The heatmap name shown in the reporting UI.
        required: true
        schema:
          type: string
          example: Pricing
      - name: matchPageRules
        in: query
        description: Matching rules that define which pages contribute to this heatmap.
        required: true
        schema:
          type: array
          items: []
      - name: sampleLimit
        in: query
        description: The number of matching page views to record before the heatmap ends automatically.
        required: false
        schema:
          type: integer
          default: 1000
      - name: sampleRate
        in: query
        description: The percentage of matching traffic to record, from 0 to 100 with up to one decimal place.
        required: false
        schema:
          type: number
          default: 5
      - name: excludedElements
        in: query
        description: Comma-separated CSS selectors to exclude from the heatmap output.
        required: false
        schema:
          type: string
      - name: screenshotUrl
        in: query
        description: URL of the page to capture for the heatmap screenshot.
        required: false
        schema:
          type: string
      - name: breakpointMobile
        in: query
        description: Width threshold used to classify visits as mobile when device detection is unavailable.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: breakpointTablet
        in: query
        description: Width threshold used to classify visits as tablet when device detection is unavailable.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: captureDomManually
        in: query
        description: Whether the DOM should be captured manually instead of automatically.
        required: false
        schema:
          type: boolean
          default: false
      - name: description
        in: query
        description: Optional description providing additional context, such as the purpose or usage.
        required: false
        schema:
          type: string
          default: ''
      - name: autoRepeat
        in: query
        description: Whether Matomo should automatically create a new heatmap once this one finishes.
        required: false
        schema:
          type: boolean
          default: false
      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=HeatmapSessionRecording.deleteHeatmapScreenshot:
    get:
      tags:
      - HeatmapSessionRecording
      description: Deletes the stored snapshot (screenshot) for a heatmap.
      operationId: HeatmapSessionRecording.deleteHeatmapScreenshot
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the heatmap.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to update.
        required: true
        schema:
          type: integer
          example: 1
      - name: captureManually
        in: query
        description: Whether the new snapshot must be captured manually instead of automatically.
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: 'Whether the snapshot reference was removed.


            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=HeatmapSessionRecording.addSessionRecording:
    get:
      tags:
      - HeatmapSessionRecording
      description: Adds a new session recording.
      operationId: HeatmapSessionRecording.addSessionRecording
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website to configure.
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: query
        description: The session recording name shown in the reporting UI.
        required: true
        schema:
          type: string
          example: Pricing
      - name: matchPageRules
        in: query
        description: Matching rules that define which pages contribute to this heatmap.
        required: false
        schema:
          type: array
          items: []
          default: []
      - name: sampleLimit
        in: query
        description: The number of sessions to record before the recording ends automatically.
        required: false
        schema:
          type: integer
          default: 1000
      - name: sampleRate
        in: query
        description: The percentage of matching traffic to record, from 0 to 100 with up to one decimal place.
        required: false
        schema:
          type: number
          default: 10
      - name: minSessionTime
        in: query
        description: Minimum time in seconds a visitor must spend on the current page before recording.
        required: false
        schema:
          type: integer
          default: 0
      - name: requiresActivity
        in: query
        description: Whether the visitor must interact by scrolling or clicking before the session is kept.
        required: false
        schema:
          type: boolean
          default: true
      - name: captureKeystrokes
        in: query
        description: Whether entered form text should be recorded. Password fields are masked automatically.
        required: false
        schema:
          type: boolean
          default: true
      - name: description
        in: query
        description: Optional description providing additional context, such as the purpose or usage.
        required: false
        schema:
          type: string
          default: ''
      - name: autoRepeat
        in: query
        description: Whether Matomo should automatically create a new session recording once this one finishes.
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: 'The ID of the newly created session recording 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=HeatmapSessionRecording.updateSessionRecording:
    get:
      tags:
      - HeatmapSessionRecording
      description: Updates an existing session recording.
      operationId: HeatmapSessionRecording.updateSessionRecording
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the session recording.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the session recording configuration to update.
        required: true
        schema:
          type: integer
          example: 1
      - name: name
        in: query
        description: The session recording name shown in the reporting UI.
        required: true
        schema:
          type: string
          example: Pricing
      - name: matchPageRules
        in: query
        description: Matching rules that define which pages contribute to this heatmap.
        required: false
        schema:
          type: array
          items: []
          default: []
      - name: sampleLimit
        in: query
        description: The number of sessions to record before the recording ends automatically.
        required: false
        schema:
          type: integer
          default: 1000
      - name: sampleRate
        in: query
        description: The percentage of matching traffic to record, from 0 to 100 with up to one decimal place.
        required: false
        schema:
          type: number
          default: 10
      - name: minSessionTime
        in: query
        description: Minimum time in seconds a visitor must spend on the current page before recording.
        required: false
        schema:
          type: integer
          default: 0
      - name: requiresActivity
        in: query
        description: Whether the visitor must interact by scrolling or clicking before the session is kept.
        required: false
        schema:
          type: boolean
          default: true
      - name: captureKeystrokes
        in: query
        description: Whether entered form text should be recorded. Password fields are masked automatically.
        required: false
        schema:
          type: boolean
          default: true
      - name: description
        in: query
        description: Optional description providing additional context, such as the purpose or usage.
        required: false
        schema:
          type: string
          default: ''
      - name: autoRepeat
        in: query
        description: Whether Matomo should automatically create a new session recording once this one finishes.
        required: false
        schema:
          type: boolean
          default: false
      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=HeatmapSessionRecording.getHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Returns a single heatmap configuration.
      operationId: HeatmapSessionRecording.getHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website to query.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to fetch.
        required: true
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: 'The heatmap configuration data for the requested heatmap.


            Example responses require Super User access. Use Try it out to see a live response.'
          content:
            text/xml: []
            application/json: []
        '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=HeatmapSessionRecording.getSessionRecording:
    get:
      tags:
      - HeatmapSessionRecording
      description: Returns a single session recording configuration.
      operationId: HeatmapSessionRecording.getSessionRecording
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website to query.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the session recording configuration to fetch.
        required: true
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: 'The session recording configuration data for the requested recording.


            Example responses require Super User access. Use Try it out to see a live response.'
          content:
            text/xml: []
            application/json: []
        '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=HeatmapSessionRecording.pauseHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Pauses a heatmap configuration.
      operationId: HeatmapSessionRecording.pauseHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the heatmap.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to pause.
        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=HeatmapSessionRecording.resumeHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Resumes a paused heatmap configuration.
      operationId: HeatmapSessionRecording.resumeHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the heatmap.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to resume.
        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=HeatmapSessionRecording.deleteHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Deletes a heatmap configuration.
      operationId: HeatmapSessionRecording.deleteHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the heatmap.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to delete.
        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=HeatmapSessionRecording.endHeatmap:
    get:
      tags:
      - HeatmapSessionRecording
      description: Ends a heatmap configuration.
      operationId: HeatmapSessionRecording.endHeatmap
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the heatmap.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the heatmap configuration to end.
        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=HeatmapSessionRecording.pauseSessionRecording:
    get:
      tags:
      - HeatmapSessionRecording
      description: Pauses a session recording configuration.
      operationId: HeatmapSessionRecording.pauseSessionRecording
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the session recording.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the session recording configuration to pause.
        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=HeatmapSessionRecording.resumeSessionRecording:
    get:
      tags:
      - HeatmapSessionRecording
      description: Resumes a paused session recording configuration.
      operationId: HeatmapSessionRecording.resumeSessionRecording
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the session recording.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the session recording configuration to resume.
        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=HeatmapSessionRecording.deleteSessionRecording:
    get:
      tags:
      - HeatmapSessionRecording
      description: Deletes a session recording configuration.
      operationId: HeatmapSessionRecording.deleteSessionRecording
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the session recording.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the session recording configuration to delete.
        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=HeatmapSessionRecording.endSessionRecording:
    get:
      tags:
      - HeatmapSessionRecording
      description: Ends a session recording configuration.
      operationId: HeatmapSessionRecording.endSessionRecording
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website that owns the session recording.
        required: true
        schema:
          type: integer
          example: 1
      - name: idSiteHsr
        in: query
        description: The ID of the session recording configuration to end.
        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=HeatmapSessionRecording.getHeatmaps:
    get:
      tags:
      - HeatmapSessionRecording
      description: Returns all non-deleted heatmaps for a website.
      operationId: HeatmapSessionRecording.getHeatmaps
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website to query.
        required: true
        schema:
          type: integer
          example: 1
      - name: includePageTreeMirror
        in: query
        description: Whether to include the stored page tree mirror for each heatmap.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: 'A list of heatmap configurations for the requested website.


            Example responses require Super User access. Use Try it out to see a live response.'
          content:
            text/xml: []
        '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=HeatmapSessionRecording.getSessionRecordings:
    get:
      tags:
      - HeatmapSessionRecording
      description: Returns all non-deleted session recordings for a website.
      operationId: HeatmapSessionRecording.getSessionRecordings
      parameters:
      - $ref: '#/components/parameters/formatOptional'
 

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/matomo/refs/heads/main/openapi/matomo-heatmapsessionrecording-api-openapi.yml