openapi: 3.0.0
info:
  title: Unified.to ANALYTICS API
  version: "1.0"
  description: One API to Rule Them All
  contact:
    email: hello@unified.to
    url: https://unified.to/contact
  termsOfService: https://unified.to/tos
externalDocs:
  description: API Documentation
  url: https://docs.unified.to
tags:
  - name: unifiedapi
    description: Unified.to API
  - name: analytics
  - name: property
  - name: event
  - name: session
  - name: visitor
  - name: report
security:
  - jwt: []
servers:
  - url: https://api.unified.to
    description: North American data region
  - url: https://api-eu.unified.to
    description: European data region
  - url: https://api-au.unified.to
    description: Australian data region
components:
  securitySchemes:
    jwt:
      type: apiKey
      name: authorization
      in: header
  requestBodies:
    AnalyticsProperty:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/AnalyticsProperty"
    AnalyticsEvent:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/AnalyticsEvent"
    AnalyticsVisitor:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/AnalyticsVisitor"
  schemas:
    AnalyticsProperty:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        name:
          type: string
        timezone:
          type: string
        currency:
          type: string
        industry:
          type: string
        parent_id:
          type: string
        raw:
          type: object
          additionalProperties: true
    AnalyticsProperties:
      type: array
      items:
        $ref: "#/components/schemas/AnalyticsProperty"
    property_AnalyticsEvent_metadata:
      type: object
      additionalProperties:
        type: object
    AnalyticsEvent:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        name:
          type: string
        event_type:
          type: string
          enum:
            - PAGE_VIEW
            - SCREEN_VIEW
            - CLICK
            - FORM_SUBMIT
            - PURCHASE
            - SIGN_UP
            - LOGIN
            - LOGOUT
            - SEARCH
            - VIDEO_PLAY
            - VIDEO_COMPLETE
            - FILE_DOWNLOAD
            - SCROLL
            - SESSION_START
            - FIRST_VISIT
            - CUSTOM
          x-speakeasy-unknown-values: allow
        visitor_id:
          type: string
        property_id:
          type: string
        session_id:
          type: string
        page_url:
          type: string
        page_title:
          type: string
        page_referrer:
          type: string
        device:
          type: string
        browser:
          type: string
        os:
          type: string
        country:
          type: string
        country_code:
          type: string
        region:
          type: string
        city:
          type: string
        metadata:
          $ref: "#/components/schemas/property_AnalyticsEvent_metadata"
        value:
          type: number
        currency:
          type: string
        utm_source:
          type: string
        utm_medium:
          type: string
        utm_campaign:
          type: string
        utm_term:
          type: string
        utm_content:
          type: string
        raw:
          type: object
          additionalProperties: true
    AnalyticsEvents:
      type: array
      items:
        $ref: "#/components/schemas/AnalyticsEvent"
    AnalyticsSession:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        property_id:
          type: string
        visitor_id:
          type: string
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
        duration_seconds:
          type: number
        landing_page:
          type: string
        exit_page:
          type: string
        page_views:
          type: number
        events_count:
          type: number
        source:
          type: string
        medium:
          type: string
        campaign:
          type: string
        device:
          type: string
        browser:
          type: string
        os:
          type: string
        country:
          type: string
        city:
          type: string
        is_bounce:
          type: boolean
        is_conversion:
          type: boolean
        raw:
          type: object
          additionalProperties: true
    AnalyticsSessions:
      type: array
      items:
        $ref: "#/components/schemas/AnalyticsSession"
    property_AnalyticsVisitor_metadata:
      type: object
      additionalProperties:
        type: object
    AnalyticsVisitor:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        property_id:
          type: string
        email:
          type: string
        name:
          type: string
        age:
          type: number
        gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - INTERSEX
            - TRANS
            - NON_BINARY
          x-speakeasy-unknown-values: allow
        country:
          type: string
        country_code:
          type: string
        city:
          type: string
        language:
          type: string
        timezone:
          type: string
        first_seen_at:
          type: string
          format: date-time
        last_seen_at:
          type: string
          format: date-time
        total_sessions:
          type: number
        total_page_views:
          type: number
        total_events:
          type: number
        metadata:
          $ref: "#/components/schemas/property_AnalyticsVisitor_metadata"
        raw:
          type: object
          additionalProperties: true
    AnalyticsVisitors:
      type: array
      items:
        $ref: "#/components/schemas/AnalyticsVisitor"
    AnalyticsReportMetrics:
      type: object
      properties:
        value:
          type: number
        type:
          type: string
          enum:
            - USERS
            - NEW_USERS
            - SESSIONS
            - PAGE_VIEWS
            - UNIQUE_PAGE_VIEWS
            - SCREENS
            - EVENTS
            - AVERAGE_SESSION_DURATION
            - PAGES_PER_SESSION
            - BOUNCE_RATE
            - ENGAGEMENT_RATE
            - EVENTS_PER_SESSION
            - CONVERSIONS
            - CONVERSION_RATE
            - GOAL_COMPLETIONS
            - GOAL_VALUE
            - TRANSACTIONS
            - REVENUE
            - AVERAGE_ORDER_VALUE
            - ECOMMERCE_CONVERSION_RATE
            - SESSIONS_BY_SOURCE
            - USERS_BY_SOURCE
            - CONVERSIONS_BY_SOURCE
            - VIDEO_VIEWS
            - WATCH_TIME
            - AVERAGE_VIEW_DURATION
            - AVERAGE_VIEW_PERCENTAGE
            - LIKES
            - DISLIKES
            - COMMENTS
            - SHARES
            - SUBSCRIBERS_GAINED
            - SUBSCRIBERS_LOST
          x-speakeasy-unknown-values: allow
        dimension:
          type: string
          enum:
            - DATE
            - HOUR
            - DAY_OF_WEEK
            - WEEK
            - MONTH
            - YEAR
            - PAGE
            - PAGE_TITLE
            - EVENT_NAME
            - SOURCE
            - MEDIUM
            - CAMPAIGN
            - COUNTRY
            - CITY
            - DEVICE_TYPE
            - BROWSER
            - OS
            - USER_TYPE
            - LANDING_PAGE
            - VIDEO
          x-speakeasy-unknown-values: allow
        dimension_value:
          type: string
    property_AnalyticsReport_metrics:
      type: array
      items:
        $ref: "#/components/schemas/AnalyticsReportMetrics"
    AnalyticsReport:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        property_id:
          type: string
        start_at:
          type: string
          format: date-time
        end_at:
          type: string
          format: date-time
        metrics:
          $ref: "#/components/schemas/property_AnalyticsReport_metrics"
        raw:
          type: object
          additionalProperties: true
    AnalyticsReports:
      type: array
      items:
        $ref: "#/components/schemas/AnalyticsReport"
paths:
  /analytics/{connection_id}/property:
    post:
      summary: Create a property
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - timezone
                - currency
                - industry
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - property
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsProperty"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsProperty"
          description: Successful
      security:
        - jwt: []
      operationId: createAnalyticsProperty
    get:
      summary: List all properties
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: parent_id
          in: query
          required: false
          description: The parent ID to filter by
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - timezone
                - currency
                - industry
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - property
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsProperties"
          description: Successful
      security:
        - jwt: []
      operationId: listAnalyticsProperties
  /analytics/{connection_id}/property/{id}:
    get:
      summary: Retrieve a property
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - timezone
                - currency
                - industry
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Property
          name: id
          in: path
          required: true
      tags:
        - analytics
        - property
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsProperty"
          description: Successful
      security:
        - jwt: []
      operationId: getAnalyticsProperty
    put:
      summary: Update a property
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - timezone
                - currency
                - industry
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Property
          name: id
          in: path
          required: true
      tags:
        - analytics
        - property
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsProperty"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsProperty"
          description: Successful
      security:
        - jwt: []
      operationId: updateAnalyticsProperty
    patch:
      summary: Update a property
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - timezone
                - currency
                - industry
                - parent_id
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Property
          name: id
          in: path
          required: true
      tags:
        - analytics
        - property
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsProperty"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsProperty"
          description: Successful
      security:
        - jwt: []
      operationId: patchAnalyticsProperty
    delete:
      summary: Remove a property
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Property
          name: id
          in: path
          required: true
      tags:
        - analytics
        - property
      responses:
        "200":
          description: Successful
        default:
          headers:
            Content-Type:
              required: false
              schema:
                type: string
          content: {}
          description: Successful
      security:
        - jwt: []
      operationId: removeAnalyticsProperty
  /analytics/{connection_id}/event:
    post:
      summary: Create an event
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - event_type
                - visitor_id
                - property_id
                - session_id
                - page_url
                - page_title
                - page_referrer
                - device
                - browser
                - os
                - country
                - country_code
                - region
                - city
                - metadata
                - value
                - currency
                - utm_source
                - utm_medium
                - utm_campaign
                - utm_term
                - utm_content
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - event
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsEvent"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsEvent"
          description: Successful
      security:
        - jwt: []
      operationId: createAnalyticsEvent
    get:
      summary: List all events
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: property_id
          in: query
          required: false
          description: The analytics property ID to filter by
        - schema:
            type: string
          name: session_id
          in: query
          required: false
          description: The analytics session ID to filter by
        - schema:
            type: string
          name: visitor_id
          in: query
          required: false
          description: The analytics visitor ID to filter by
        - schema:
            type: string
          name: type
          in: query
          required: false
        - schema:
            type: string
          name: start_gte
          in: query
          required: false
          description: The start date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: end_lt
          in: query
          required: false
          description: The end date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - event_type
                - visitor_id
                - property_id
                - session_id
                - page_url
                - page_title
                - page_referrer
                - device
                - browser
                - os
                - country
                - country_code
                - region
                - city
                - metadata
                - value
                - currency
                - utm_source
                - utm_medium
                - utm_campaign
                - utm_term
                - utm_content
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - event
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsEvents"
          description: Successful
      security:
        - jwt: []
      operationId: listAnalyticsEvents
  /analytics/{connection_id}/event/{id}:
    get:
      summary: Retrieve an event
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - name
                - event_type
                - visitor_id
                - property_id
                - session_id
                - page_url
                - page_title
                - page_referrer
                - device
                - browser
                - os
                - country
                - country_code
                - region
                - city
                - metadata
                - value
                - currency
                - utm_source
                - utm_medium
                - utm_campaign
                - utm_term
                - utm_content
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Event
          name: id
          in: path
          required: true
      tags:
        - analytics
        - event
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsEvent"
          description: Successful
      security:
        - jwt: []
      operationId: getAnalyticsEvent
  /analytics/{connection_id}/session/{id}:
    get:
      summary: Retrieve a session
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - visitor_id
                - start_at
                - end_at
                - duration_seconds
                - landing_page
                - exit_page
                - page_views
                - events_count
                - source
                - medium
                - campaign
                - device
                - browser
                - os
                - country
                - city
                - is_bounce
                - is_conversion
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Session
          name: id
          in: path
          required: true
      tags:
        - analytics
        - session
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsSession"
          description: Successful
      security:
        - jwt: []
      operationId: getAnalyticsSession
  /analytics/{connection_id}/session:
    get:
      summary: List all sessions
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: property_id
          in: query
          required: false
          description: The analytics property ID to filter by
        - schema:
            type: string
          name: visitor_id
          in: query
          required: false
          description: The analytics visitor ID to filter by
        - schema:
            type: string
          name: medium
          in: query
          required: false
          description: The analytics medium to filter by
        - schema:
            type: string
          name: source
          in: query
          required: false
          description: The analytics source to filter by
        - schema:
            type: string
          name: start_gte
          in: query
          required: false
          description: The start date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: end_lt
          in: query
          required: false
          description: The end date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - visitor_id
                - start_at
                - end_at
                - duration_seconds
                - landing_page
                - exit_page
                - page_views
                - events_count
                - source
                - medium
                - campaign
                - device
                - browser
                - os
                - country
                - city
                - is_bounce
                - is_conversion
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - session
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsSessions"
          description: Successful
      security:
        - jwt: []
      operationId: listAnalyticsSessions
  /analytics/{connection_id}/visitor:
    post:
      summary: Create a visitor
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - email
                - name
                - age
                - gender
                - country
                - country_code
                - city
                - language
                - timezone
                - first_seen_at
                - last_seen_at
                - total_sessions
                - total_page_views
                - total_events
                - metadata
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - visitor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsVisitor"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsVisitor"
          description: Successful
      security:
        - jwt: []
      operationId: createAnalyticsVisitor
    get:
      summary: List all visitors
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: property_id
          in: query
          required: false
          description: The analytics property ID to filter by
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - email
                - name
                - age
                - gender
                - country
                - country_code
                - city
                - language
                - timezone
                - first_seen_at
                - last_seen_at
                - total_sessions
                - total_page_views
                - total_events
                - metadata
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - visitor
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsVisitors"
          description: Successful
      security:
        - jwt: []
      operationId: listAnalyticsVisitors
  /analytics/{connection_id}/visitor/{id}:
    get:
      summary: Retrieve a visitor
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - email
                - name
                - age
                - gender
                - country
                - country_code
                - city
                - language
                - timezone
                - first_seen_at
                - last_seen_at
                - total_sessions
                - total_page_views
                - total_events
                - metadata
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Visitor
          name: id
          in: path
          required: true
      tags:
        - analytics
        - visitor
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsVisitor"
          description: Successful
      security:
        - jwt: []
      operationId: getAnalyticsVisitor
    put:
      summary: Update a visitor
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - email
                - name
                - age
                - gender
                - country
                - country_code
                - city
                - language
                - timezone
                - first_seen_at
                - last_seen_at
                - total_sessions
                - total_page_views
                - total_events
                - metadata
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Visitor
          name: id
          in: path
          required: true
      tags:
        - analytics
        - visitor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsVisitor"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsVisitor"
          description: Successful
      security:
        - jwt: []
      operationId: updateAnalyticsVisitor
    patch:
      summary: Update a visitor
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - email
                - name
                - age
                - gender
                - country
                - country_code
                - city
                - language
                - timezone
                - first_seen_at
                - last_seen_at
                - total_sessions
                - total_page_views
                - total_events
                - metadata
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Visitor
          name: id
          in: path
          required: true
      tags:
        - analytics
        - visitor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AnalyticsVisitor"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsVisitor"
          description: Successful
      security:
        - jwt: []
      operationId: patchAnalyticsVisitor
    delete:
      summary: Remove a visitor
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Visitor
          name: id
          in: path
          required: true
      tags:
        - analytics
        - visitor
      responses:
        "200":
          description: Successful
        default:
          headers:
            Content-Type:
              required: false
              schema:
                type: string
          content: {}
          description: Successful
      security:
        - jwt: []
      operationId: removeAnalyticsVisitor
  /analytics/{connection_id}/report:
    get:
      summary: List all reports
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          name: updated_gte
          in: query
          required: false
          description: Return only results whose updated date is equal or greater to this value (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: sort
          in: query
          required: false
        - schema:
            type: string
          name: order
          in: query
          required: false
        - schema:
            type: string
          name: query
          in: query
          required: false
          description: Query string to search. eg. email address or name
        - schema:
            type: string
          name: property_id
          in: query
          required: false
          description: The analytics property ID to filter by
        - schema:
            type: string
          name: start_gte
          in: query
          required: false
          description: The start date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: end_lt
          in: query
          required: false
          description: The end date to filter by (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
        - schema:
            type: string
          name: type
          in: query
          required: false
        - schema:
            type: string
          name: dimension
          in: query
          required: false
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - property_id
                - start_at
                - end_at
                - metrics
                - raw
          name: fields
          in: query
          required: false
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - analytics
        - report
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AnalyticsReports"
          description: Successful
      security:
        - jwt: []
      operationId: listAnalyticsReports
