openapi: 3.0.3
info:
  title: 'NagrajTo API Documentation'
  description: 'REST API for accessing analytics data, session recordings, and visitor insights.'
  version: 1.0.0
servers:
  -
    url: 'http://nagrajto.local'
tags:
  -
    name: Analytics
    description: "\nAPIs for accessing analytics data including sessions, pageviews, technology, geography, marketing, and performance metrics.\n\nAll endpoints require authentication via Bearer token and accept common filter parameters."
  -
    name: Endpoints
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: 'Generate your API token in the <a href="/dashboard">dashboard</a> under Settings > API Access. Use as Bearer token: <code>Authorization: Bearer {token}</code>'
security:
  -
    default: []
paths:
  /api/analytics/domains:
    get:
      summary: 'List Domains'
      operationId: listDomains
      description: "Get a list of all domains associated with the authenticated user's account."
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    -
                      id: 1
                      name: 'My Website'
                      domain: example.com
                      is_active: true
                      created_at: '2024-01-15T10:30:00Z'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: 'My Website'
                        domain: example.com
                        is_active: true
                        created_at: '2024-01-15T10:30:00Z'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'My Website'
                        domain:
                          type: string
                          example: example.com
                        is_active:
                          type: boolean
                          example: true
                        created_at:
                          type: string
                          example: '2024-01-15T10:30:00Z'
      tags:
        - Analytics
  /api/analytics/overview:
    get:
      summary: 'Overview Statistics'
      operationId: overviewStatistics
      description: 'Get high-level analytics overview including sessions, visitors, pageviews, bounce rate, and trends.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID. If not specified, returns data for the first domain.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID. If not specified, returns data for the first domain.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
            example: 30d
        -
          in: query
          name: date_from
          description: 'Custom start date (YYYY-MM-DD). Overrides period.'
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: 'Custom start date (YYYY-MM-DD). Overrides period.'
            example: '2024-01-01'
        -
          in: query
          name: date_to
          description: 'Custom end date (YYYY-MM-DD). Overrides period.'
          example: '2024-01-31'
          required: false
          schema:
            type: string
            description: 'Custom end date (YYYY-MM-DD). Overrides period.'
            example: '2024-01-31'
        -
          in: query
          name: device_type
          description: 'Filter by device: desktop, mobile, tablet.'
          example: mobile
          required: false
          schema:
            type: string
            description: 'Filter by device: desktop, mobile, tablet.'
            example: mobile
        -
          in: query
          name: browser
          description: 'Filter by browser name.'
          example: Chrome
          required: false
          schema:
            type: string
            description: 'Filter by browser name.'
            example: Chrome
        -
          in: query
          name: os
          description: 'Filter by operating system.'
          example: Windows
          required: false
          schema:
            type: string
            description: 'Filter by operating system.'
            example: Windows
        -
          in: query
          name: country
          description: 'Filter by country code (ISO 3166-1 alpha-2).'
          example: PL
          required: false
          schema:
            type: string
            description: 'Filter by country code (ISO 3166-1 alpha-2).'
            example: PL
      responses:
        200:
          description: Success
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    sessions: 1234
                    visitors: 567
                    pageviews: 3456
                    bounce_rate: 45.2
                    avg_duration: 180
                    pages_per_session: 2.8
                    changes:
                      sessions: 12.5
                      visitors: 8.3
                    daily_data: []
                    top_pages: []
                    top_referrers: []
                    devices:
                      desktop: 800
                      mobile: 400
                  meta:
                    domain:
                      id: 1
                      name: 'My Site'
                    period:
                      start: '2024-01-01T00:00:00Z'
                      end: '2024-01-31T23:59:59Z'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      sessions:
                        type: integer
                        example: 1234
                      visitors:
                        type: integer
                        example: 567
                      pageviews:
                        type: integer
                        example: 3456
                      bounce_rate:
                        type: number
                        example: 45.2
                      avg_duration:
                        type: integer
                        example: 180
                      pages_per_session:
                        type: number
                        example: 2.8
                      changes:
                        type: object
                        properties:
                          sessions:
                            type: number
                            example: 12.5
                          visitors:
                            type: number
                            example: 8.3
                      daily_data:
                        type: array
                        example: []
                      top_pages:
                        type: array
                        example: []
                      top_referrers:
                        type: array
                        example: []
                      devices:
                        type: object
                        properties:
                          desktop:
                            type: integer
                            example: 800
                          mobile:
                            type: integer
                            example: 400
                  meta:
                    type: object
                    properties:
                      domain:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 1
                          name:
                            type: string
                            example: 'My Site'
                      period:
                        type: object
                        properties:
                          start:
                            type: string
                            example: '2024-01-01T00:00:00Z'
                          end:
                            type: string
                            example: '2024-01-31T23:59:59Z'
        404:
          description: 'Domain not found'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  error: 'Domain not found or access denied'
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: 'Domain not found or access denied'
      tags:
        - Analytics
  /api/analytics/pages:
    get:
      summary: 'Page Statistics'
      operationId: pageStatistics
      description: 'Get page-level analytics including views, unique views, time on page, and scroll depth.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset. Default: 7d.'
            example: 30d
        -
          in: query
          name: limit
          description: 'Maximum number of pages to return (1-100). Default: 50.'
          example: 20
          required: false
          schema:
            type: integer
            description: 'Maximum number of pages to return (1-100). Default: 50.'
            example: 20
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    -
                      path: /
                      views: 500
                      unique_views: 350
                      avg_time_on_page: 45000
                      avg_scroll_depth: 75
                      total_clicks: 120
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    example:
                      -
                        path: /
                        views: 500
                        unique_views: 350
                        avg_time_on_page: 45000
                        avg_scroll_depth: 75
                        total_clicks: 120
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          example: /
                        views:
                          type: integer
                          example: 500
                        unique_views:
                          type: integer
                          example: 350
                        avg_time_on_page:
                          type: integer
                          example: 45000
                        avg_scroll_depth:
                          type: integer
                          example: 75
                        total_clicks:
                          type: integer
                          example: 120
      tags:
        - Analytics
  /api/analytics/technology:
    get:
      summary: 'Technology Statistics'
      operationId: technologyStatistics
      description: 'Get visitor technology breakdown: browsers, operating systems, device types, and screen resolutions.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset. Default: 7d.'
            example: 30d
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    browsers:
                      -
                        browser: Chrome
                        count: 500
                    os:
                      -
                        os: Windows
                        count: 400
                    devices:
                      -
                        device_type: desktop
                        count: 600
                    resolutions:
                      -
                        resolution: 1920x1080
                        count: 300
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      browsers:
                        type: array
                        example:
                          -
                            browser: Chrome
                            count: 500
                        items:
                          type: object
                          properties:
                            browser:
                              type: string
                              example: Chrome
                            count:
                              type: integer
                              example: 500
                      os:
                        type: array
                        example:
                          -
                            os: Windows
                            count: 400
                        items:
                          type: object
                          properties:
                            os:
                              type: string
                              example: Windows
                            count:
                              type: integer
                              example: 400
                      devices:
                        type: array
                        example:
                          -
                            device_type: desktop
                            count: 600
                        items:
                          type: object
                          properties:
                            device_type:
                              type: string
                              example: desktop
                            count:
                              type: integer
                              example: 600
                      resolutions:
                        type: array
                        example:
                          -
                            resolution: 1920x1080
                            count: 300
                        items:
                          type: object
                          properties:
                            resolution:
                              type: string
                              example: 1920x1080
                            count:
                              type: integer
                              example: 300
      tags:
        - Analytics
  /api/analytics/geography:
    get:
      summary: 'Geography Statistics'
      operationId: geographyStatistics
      description: 'Get visitor geographic distribution: countries, cities, languages, and timezones.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset. Default: 7d.'
            example: 30d
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    countries:
                      -
                        country_code: PL
                        count: 500
                    cities:
                      -
                        city: Warsaw
                        country_code: PL
                        count: 200
                    languages:
                      -
                        language: pl-PL
                        count: 400
                    timezones:
                      -
                        timezone: Europe/Warsaw
                        count: 450
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      countries:
                        type: array
                        example:
                          -
                            country_code: PL
                            count: 500
                        items:
                          type: object
                          properties:
                            country_code:
                              type: string
                              example: PL
                            count:
                              type: integer
                              example: 500
                      cities:
                        type: array
                        example:
                          -
                            city: Warsaw
                            country_code: PL
                            count: 200
                        items:
                          type: object
                          properties:
                            city:
                              type: string
                              example: Warsaw
                            country_code:
                              type: string
                              example: PL
                            count:
                              type: integer
                              example: 200
                      languages:
                        type: array
                        example:
                          -
                            language: pl-PL
                            count: 400
                        items:
                          type: object
                          properties:
                            language:
                              type: string
                              example: pl-PL
                            count:
                              type: integer
                              example: 400
                      timezones:
                        type: array
                        example:
                          -
                            timezone: Europe/Warsaw
                            count: 450
                        items:
                          type: object
                          properties:
                            timezone:
                              type: string
                              example: Europe/Warsaw
                            count:
                              type: integer
                              example: 450
      tags:
        - Analytics
  /api/analytics/marketing:
    get:
      summary: 'Marketing Statistics'
      operationId: marketingStatistics
      description: 'Get marketing and traffic source data including referrers, UTM campaigns, sources, mediums, and content tags.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
            example: 30d
        -
          in: query
          name: date_from
          description: 'Custom start date (YYYY-MM-DD).'
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: 'Custom start date (YYYY-MM-DD).'
            example: '2024-01-01'
        -
          in: query
          name: date_to
          description: 'Custom end date (YYYY-MM-DD).'
          example: '2024-01-31'
          required: false
          schema:
            type: string
            description: 'Custom end date (YYYY-MM-DD).'
            example: '2024-01-31'
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    referrers:
                      -
                        referrer: google.com
                        count: 500
                    utm_sources:
                      -
                        utm_source: newsletter
                        count: 200
                    utm_mediums:
                      -
                        utm_medium: email
                        count: 150
                    utm_campaigns:
                      -
                        utm_campaign: spring_sale
                        count: 100
                    utm_contents:
                      -
                        utm_content: header_cta
                        count: 50
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      referrers:
                        type: array
                        example:
                          -
                            referrer: google.com
                            count: 500
                        items:
                          type: object
                          properties:
                            referrer:
                              type: string
                              example: google.com
                            count:
                              type: integer
                              example: 500
                      utm_sources:
                        type: array
                        example:
                          -
                            utm_source: newsletter
                            count: 200
                        items:
                          type: object
                          properties:
                            utm_source:
                              type: string
                              example: newsletter
                            count:
                              type: integer
                              example: 200
                      utm_mediums:
                        type: array
                        example:
                          -
                            utm_medium: email
                            count: 150
                        items:
                          type: object
                          properties:
                            utm_medium:
                              type: string
                              example: email
                            count:
                              type: integer
                              example: 150
                      utm_campaigns:
                        type: array
                        example:
                          -
                            utm_campaign: spring_sale
                            count: 100
                        items:
                          type: object
                          properties:
                            utm_campaign:
                              type: string
                              example: spring_sale
                            count:
                              type: integer
                              example: 100
                      utm_contents:
                        type: array
                        example:
                          -
                            utm_content: header_cta
                            count: 50
                        items:
                          type: object
                          properties:
                            utm_content:
                              type: string
                              example: header_cta
                            count:
                              type: integer
                              example: 50
      tags:
        - Analytics
  /api/analytics/performance:
    get:
      summary: 'Performance Statistics'
      operationId: performanceStatistics
      description: 'Get page performance metrics including load times, Core Web Vitals (LCP, FID, CLS), and time to interactive.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
            example: 30d
        -
          in: query
          name: date_from
          description: 'Custom start date (YYYY-MM-DD).'
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: 'Custom start date (YYYY-MM-DD).'
            example: '2024-01-01'
        -
          in: query
          name: date_to
          description: 'Custom end date (YYYY-MM-DD).'
          example: '2024-01-31'
          required: false
          schema:
            type: string
            description: 'Custom end date (YYYY-MM-DD).'
            example: '2024-01-31'
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    avg_page_load: 1250
                    avg_dom_ready: 800
                    avg_first_paint: 450
                    avg_first_contentful_paint: 650
                    avg_lcp: 1100
                    avg_fid: 25
                    avg_cls: 0.05
                    by_page:
                      -
                        path: /
                        avg_load: 1000
                        count: 500
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      avg_page_load:
                        type: integer
                        example: 1250
                      avg_dom_ready:
                        type: integer
                        example: 800
                      avg_first_paint:
                        type: integer
                        example: 450
                      avg_first_contentful_paint:
                        type: integer
                        example: 650
                      avg_lcp:
                        type: integer
                        example: 1100
                      avg_fid:
                        type: integer
                        example: 25
                      avg_cls:
                        type: number
                        example: 0.05
                      by_page:
                        type: array
                        example:
                          -
                            path: /
                            avg_load: 1000
                            count: 500
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                              example: /
                            avg_load:
                              type: integer
                              example: 1000
                            count:
                              type: integer
                              example: 500
      tags:
        - Analytics
  /api/analytics/interactions:
    get:
      summary: 'Interactions Statistics'
      operationId: interactionsStatistics
      description: 'Get user interaction data including total clicks, rage clicks (frustration indicator), scroll depth, and click patterns.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
            example: 30d
        -
          in: query
          name: date_from
          description: 'Custom start date (YYYY-MM-DD).'
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: 'Custom start date (YYYY-MM-DD).'
            example: '2024-01-01'
        -
          in: query
          name: date_to
          description: 'Custom end date (YYYY-MM-DD).'
          example: '2024-01-31'
          required: false
          schema:
            type: string
            description: 'Custom end date (YYYY-MM-DD).'
            example: '2024-01-31'
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    total_clicks: 15000
                    rage_clicks: 120
                    avg_scroll_depth: 68.5
                    clicks_by_element:
                      -
                        selector: button.cta
                        count: 500
                    top_clicked_pages:
                      -
                        path: /pricing
                        clicks: 2000
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      total_clicks:
                        type: integer
                        example: 15000
                      rage_clicks:
                        type: integer
                        example: 120
                      avg_scroll_depth:
                        type: number
                        example: 68.5
                      clicks_by_element:
                        type: array
                        example:
                          -
                            selector: button.cta
                            count: 500
                        items:
                          type: object
                          properties:
                            selector:
                              type: string
                              example: button.cta
                            count:
                              type: integer
                              example: 500
                      top_clicked_pages:
                        type: array
                        example:
                          -
                            path: /pricing
                            clicks: 2000
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                              example: /pricing
                            clicks:
                              type: integer
                              example: 2000
      tags:
        - Analytics
  /api/analytics/heatmap:
    get:
      summary: 'Heatmap Data'
      operationId: heatmapData
      description: 'Get click heatmap data for a specific page, including click coordinates and element selectors.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: page
          description: 'The page path to get heatmap for.'
          example: /contact
          required: true
          schema:
            type: string
            description: 'The page path to get heatmap for.'
            example: /contact
        -
          in: query
          name: period
          description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
            example: 30d
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    clicks:
                      -
                        x: 150
                        'y': 300
                        selector: 'button#submit'
                        count: 45
                    total_clicks: 500
                    page_snapshot_url: /snapshots/abc123.html
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      clicks:
                        type: array
                        example:
                          -
                            x: 150
                            'y': 300
                            selector: 'button#submit'
                            count: 45
                        items:
                          type: object
                          properties:
                            x:
                              type: integer
                              example: 150
                            'y':
                              type: integer
                              example: 300
                            selector:
                              type: string
                              example: 'button#submit'
                            count:
                              type: integer
                              example: 45
                      total_clicks:
                        type: integer
                        example: 500
                      page_snapshot_url:
                        type: string
                        example: /snapshots/abc123.html
        400:
          description: 'Missing page'
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  error: 'Page parameter is required'
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: string
                    example: 'Page parameter is required'
      tags:
        - Analytics
  /api/analytics/dead-clicks:
    get:
      summary: 'Dead Clicks Analysis'
      operationId: deadClicksAnalysis
      description: 'Get analysis of dead clicks - clicks on non-interactive elements that may indicate UX issues or user confusion.'
      parameters:
        -
          in: query
          name: domain_id
          description: 'The domain ID.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'The domain ID.'
            example: 1
        -
          in: query
          name: period
          description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
          example: 30d
          required: false
          schema:
            type: string
            description: 'Time period preset: 24h, 7d, 30d, 90d, year. Default: 7d.'
            example: 30d
        -
          in: query
          name: limit
          description: 'Maximum results to return (1-100). Default: 50.'
          example: 20
          required: false
          schema:
            type: integer
            description: 'Maximum results to return (1-100). Default: 50.'
            example: 20
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  data:
                    -
                      selector: div.pricing-card
                      page: /pricing
                      count: 85
                      is_interactive: false
                      suggestion: 'Consider making this element clickable or adding a CTA'
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    example:
                      -
                        selector: div.pricing-card
                        page: /pricing
                        count: 85
                        is_interactive: false
                        suggestion: 'Consider making this element clickable or adding a CTA'
                    items:
                      type: object
                      properties:
                        selector:
                          type: string
                          example: div.pricing-card
                        page:
                          type: string
                          example: /pricing
                        count:
                          type: integer
                          example: 85
                        is_interactive:
                          type: boolean
                          example: false
                        suggestion:
                          type: string
                          example: 'Consider making this element clickable or adding a CTA'
      tags:
        - Analytics
  /api/broadcasting/auth:
    post:
      summary: ''
      operationId: postApiBroadcastingAuth
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
  /api/rrweb-events:
    post:
      summary: 'Store rrweb events via HTTP (for large payloads like FullSnapshot).'
      operationId: storeRrwebEventsViaHTTPforLargePayloadsLikeFullSnapshot
      description: 'This bypasses WebSocket message size limits.'
      parameters: []
      responses: {  }
      tags:
        - Endpoints
  /api/sessions:
    get:
      summary: 'List sessions for a domain.'
      operationId: listSessionsForADomain
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated.
                properties:
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Endpoints
  '/api/sessions/{session}':
    get:
      summary: 'Get session details with events for playback.'
      operationId: getSessionDetailsWithEventsForPlayback
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated.
                properties:
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Endpoints
    parameters:
      -
        in: path
        name: session
        description: 'The session.'
        example: architecto
        required: true
        schema:
          type: string
