Convert Visitor Insights API

Visitor Insights for the project

OpenAPI Specification

convert-visitor-insights-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Convert Accounts Visitor Insights API
  description: 'Move your app forward with the Convert API. The Convert API allows

    you to manage your Convert Experiences projects using code. The REST API is

    an interface for managing and extending functionality of Convert. For

    example, instead of creating and maintaining projects using the Convert

    Experiences web dashboard you can create an experiment programmatically.

    Additionally, if you prefer to run custom analysis on experiment results you

    can leverage the API to pull data from Convert Experiences into your own

    workflow. If you do not have a Convert account already, sign up for a free

    developer account at https://www.convert.com/api/.


    *[Convert API V1](/doc/v1) is still available and documentation can be found [here](/doc/v1) but using it is highly discouraged

    as it will be phased out in the future*

    '
  version: 2.0.0
servers:
- url: https://api.convert.com/api/v2
  description: Live API server
- url: https://apidev.convert.com/api/v2
  description: DEV API server
- url: http://apidev.convert.com:5000/api/v2
  description: DEV mocked API server
tags:
- name: Visitor Insights
  description: Visitor Insights for the project
paths:
  /accounts/{account_id}/projects/{project_id}/sessions:
    post:
      operationId: getSessionsList
      summary: List recorded visitor sessions for a project
      tags:
      - Visitor Insights
      description: 'Retrieves a list of recorded visitor sessions for a specific project.

        This endpoint is typically used for integrations that require access to raw session data.

        Note: This is different from Convert Signals. For frustration and usability insights, see the Signal Sessions endpoint.

        '
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project to be retrieved
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/GetSessionsRequest'
      responses:
        '200':
          $ref: '#/components/responses/SessionsListResponse'
  /accounts/{account_id}/projects/{project_id}/signal_sessions:
    post:
      operationId: getSignalSessionsList
      summary: List Convert Signals™ (visitor frustration sessions)
      description: 'Retrieves a list of Convert Signals™ sessions for a project.

        Convert Signals™ "is a special anonymous and privacy oriented session recording feature...It shows only really clear frustrations, errors and usability signals of real users".

        Use this to identify sessions where visitors experienced issues like rage clicks, dead clicks, or scroll stalls.

        Supports filtering by date, experience, variation, location, country, device, browser, and more.

        '
      tags:
      - Visitor Insights
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project to be retrieved
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/GetSignalSessionsRequest'
      responses:
        '200':
          $ref: '#/components/responses/SignalSessionsListResponse'
  /accounts/{account_id}/projects/{project_id}/signal_sessions/{signal_session_id}:
    delete:
      operationId: deleteSignalSession
      summary: Delete a specific Convert Signals™ session
      description: 'Permanently removes a recorded Convert Signals™ session, identified by its `signal_session_id`.

        '
      tags:
      - Visitor Insights
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project to be retrieved
        schema:
          type: integer
      - name: signal_session_id
        in: path
        required: true
        description: ID of the signal session to be deleted
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    SignalSessionsListFilteringOptions:
      allOf:
      - $ref: '#/components/schemas/TimeRange'
      - $ref: '#/components/schemas/PageNumber'
      - $ref: '#/components/schemas/ResultsPerPage'
      - $ref: '#/components/schemas/OnlyCount'
      - type: object
        properties:
          experience:
            type: object
            additionalProperties: false
            nullable: true
            properties:
              id:
                type: integer
                description: The ID of the experience to filter by
              variation_id:
                type: integer
                description: The ID of the variation to filter by
          location_id:
            type: integer
            nullable: true
            description: The ID of the location to filter by
          starred:
            type: string
            nullable: true
          watched:
            type: string
            nullable: true
          country:
            type: object
            nullable: true
            additionalProperties: false
            properties:
              is:
                type: array
                items:
                  type: string
              isNot:
                type: array
                items:
                  type: string
          os:
            type: object
            additionalProperties: false
            nullable: true
            properties:
              is:
                type: array
                items:
                  type: string
              isNot:
                type: array
                items:
                  type: string
          browser:
            type: object
            nullable: true
            additionalProperties: false
            properties:
              is:
                type: array
                items:
                  type: string
              isNot:
                type: array
                items:
                  type: string
          devices:
            type: object
            nullable: true
            additionalProperties: false
            properties:
              is:
                type: array
                items:
                  type: string
              isNot:
                type: array
                items:
                  type: string
          containsPage:
            type: string
            nullable: true
          notContainsPage:
            type: string
            nullable: true
          duration:
            type: object
            nullable: true
            additionalProperties: false
            description: 'The duration of the signal session in seconds

              '
            properties:
              min:
                type: integer
              max:
                type: integer
          pageCount:
            type: object
            nullable: true
            additionalProperties: false
            properties:
              min:
                type: integer
              max:
                type: integer
          entryPage:
            type: string
            nullable: true
          exitPage:
            type: string
            nullable: true
          referrerURLs:
            type: array
            items:
              type: string
            nullable: true
          trafficChannels:
            type: array
            items:
              type: string
            nullable: true
          adCampaignLabels:
            type: array
            items:
              type: string
            nullable: true
          recordingId:
            type: string
            nullable: true
    SignalSessionsListResponseData:
      type: object
      description: Response containing a list of Convert Signals™ sessions (highlighting user frustrations), along with pagination and filtering metadata.
      properties:
        data:
          $ref: '#/components/schemas/SignalSessionsList'
        extra:
          allOf:
          - type: object
            properties:
              tk:
                type: string
                nullable: true
                description: Extra property
          - $ref: '#/components/schemas/Extra'
    Extra:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
    SessionsList:
      type: array
      description: A list of raw session objects.
      items:
        $ref: '#/components/schemas/Session'
    Pagination:
      type: object
      properties:
        current_page:
          description: The current page number being displayed from the paginated set.
          type: integer
          minimum: 1
        items_count:
          description: The total number of items available across all pages for the current filter criteria.
          type: integer
          minimum: 0
        items_per_page:
          description: The number of items included in the current page of results (matches `results_per_page` from the request).
          type: integer
          minimum: 0
        pages_count:
          description: The total number of pages available for the current filter criteria and `results_per_page` setting.
          type: integer
          minimum: 0
    GetSessionsListRequestData:
      allOf:
      - $ref: '#/components/schemas/SessionsListFilteringOptions'
    PageNumber:
      type: object
      properties:
        page:
          type: integer
          minimum: 1
          description: 'The page number for paginated results. For example, if `results_per_page` is 30, `page: 2` will retrieve items 31-60.

            Defaults to 1 if not specified.

            '
    UTC_Offset:
      type: integer
      description: 'The time offset from Coordinated Universal Time (UTC) in seconds.

        For example, UTC-5 (EST) would be -18000. UTC+2 would be 7200.

        Used for interpreting or displaying date/time information according to a specific timezone.

        '
      default: 0
      minimum: -43200
      maximum: 50400
    TimeRange:
      type: object
      properties:
        start_time:
          type: number
          nullable: true
          description: Unix timestamp (seconds since epoch, UTC) marking the beginning of the time range. If null, implies from the beginning of data.
        end_time:
          type: number
          nullable: true
          description: Unix timestamp (seconds since epoch, UTC) marking the end of the time range. If null, implies up to the current time.
        utc_offset:
          $ref: '#/components/schemas/UTC_Offset'
    SignalSession:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this Convert Signals™ session recording.
          readOnly: true
        duration:
          type: integer
          description: The total duration of the recorded session in seconds.
        visited_pages:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              duration:
                type: integer
              timestamp:
                type: integer
                format: int64
        visited_pages_count:
          type: integer
          description: The total number of unique pages visited during this session.
        entry_page:
          type: string
          description: The URL of the first page visited in this session (landing page for the session).
        exit_page:
          type: string
          description: The URL of the last page visited before the session ended or the visitor exited.
        session_start_time:
          type: integer
          format: int64
          description: Unix timestamp (UTC) indicating when this session recording started.
        device:
          type: string
          description: The type of device used by the visitor during this session (e.g., "Desktop", "Mobile", "Tablet").
        browser:
          type: string
          description: The web browser used by the visitor (e.g., "Chrome", "Firefox", "Safari").
        country_code:
          type: string
          description: The two-letter ISO country code of the visitor's location, based on IP geolocation.
        watched:
          type: boolean
          description: True if this session recording has been watched by a user in the Convert UI.
    SessionsListResponseData:
      type: object
      description: Response containing a list of recorded raw visitor sessions for a project, along with pagination details. (This endpoint seems to be for general session data, distinct from Convert Signals).
      properties:
        data:
          $ref: '#/components/schemas/SessionsList'
        extra:
          allOf:
          - type: object
            properties:
              tk:
                type: string
                nullable: true
                description: Extra property
    ErrorData:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        fields:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
    SignalSessionsList:
      type: array
      description: A list of Convert Signals™ session objects. Each object represents a recorded session where user frustration or usability issues were detected.
      items:
        $ref: '#/components/schemas/SignalSession'
    SessionsListFilteringOptions:
      allOf:
      - $ref: '#/components/schemas/TimeRange'
      - type: object
        properties:
          tags:
            type: object
            nullable: true
            additionalProperties:
              type: string
            description: 'The tags object containing key-value pairs where each key is the tag name and the value is a string representing the tag''s value.

              '
            example:
              property1: value1
              property2: value2
    OnlyCount:
      type: object
      properties:
        onlyCount:
          type: boolean
          description: 'If set to `true` in a list request, the response will only contain the total count of matching items (`extra.pagination.items_count`)

            and will not include the actual item data. Useful for quickly getting totals without fetching full datasets.

            '
    Session:
      type: object
      properties:
        id:
          type: integer
          description: The unique numerical identifier for this raw session.
          readOnly: true
    GetSignalSessionsListRequestData:
      $ref: '#/components/schemas/SignalSessionsListFilteringOptions'
    ResultsPerPage:
      type: object
      properties:
        results_per_page:
          type: integer
          nullable: true
          minimum: 0
          maximum: 50
          default: 30
          description: 'Specifies the maximum number of items to return in a single page of results.

            Used for pagination. Default is 30, maximum is 50.

            '
    SuccessData:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
  responses:
    SuccessResponse:
      description: 'A generic success response, typically used for operations that don''t return specific data (like deletions or some updates). The `code` is usually 200, and `message` confirms the successful action.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SuccessData'
    ErrorResponse:
      description: 'Indicates an error occurred while processing the request. The `code` provides an HTTP status code, `message` offers a human-readable explanation or an array of validation errors, and `fields` (if present) specifies which input fields were problematic.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorData'
    SignalSessionsListResponse:
      description: A list of Convert Signals™ sessions, highlighting visitor interactions that indicate potential frustration or usability issues (e.g., rage clicks, dead clicks). Includes session duration, visited pages, location, and other metadata.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SignalSessionsListResponseData'
    SessionsListResponse:
      description: A list of recorded raw visitor sessions for a project, typically used for deep-dive analytics or integrations requiring session-level data.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SessionsListResponseData'
  requestBodies:
    GetSessionsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetSessionsListRequestData'
    GetSignalSessionsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetSignalSessionsListRequestData'
  securitySchemes:
    requestSigning:
      type: apiKey
      x-name-applicationId: Convert-Application-ID
      x-name-expire: Expire
      name: Authorization
      in: header
      description: 'See **[API Key Authentication](#tag/API-KEY-Authentication)** for more information.

        '
    secretKey:
      type: http
      scheme: bearer
      description: 'See **[API Key Authentication](#tag/API-KEY-Authentication)** for more information.

        '
    cookieAuthentication:
      type: apiKey
      in: cookie
      name: sid
      description: Cookie authentication is used against Convert's own IdentityProvider  or third party identity providers and is described more in the "[Cookie Authentication](#tag/Cookie-Authentication)" section
x-tagGroups:
- name: Client Authentication
  tags:
  - API KEY Authentication
  - Cookie Authentication
  - OAuth Authorization
- name: Common Parameters
  tags:
  - Optional Fields
  - Expandable Fields
- name: Requests
  tags:
  - User
  - Accounts
  - AI content
  - Collaborators
  - API Keys
  - Projects
  - SDK Keys
  - Experiences
  - Experience Variations
  - Experience Sections
  - Section Versions
  - Version Changes
  - Experiences Reports
  - Experiences Heatmaps
  - Goals
  - Hypotheses
  - Knowledge Bases
  - Observations
  - Locations
  - Audiences
  - Domains
  - Cdn Images
  - Files
  - Tags
  - Features
  - Visitor Insights
  - Visitors Data
  - Visitor Data Placeholders
  - OAuth