> ## Documentation Index
> Fetch the complete documentation index at: https://tbd-6fc993ce-hypeship-docs-website-deploy-hook.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Read telemetry events for a browser session

> Reads a page of telemetry events for the browser session in ascending sequence order. To page through results, pass the X-Next-Offset value from the previous response as offset and repeat while X-Has-More is true. Returns an empty list when telemetry data is unavailable.




## OpenAPI

````yaml https://app.stainless.com/api/spec/documented/kernel/openapi.documented.yml get /browsers/{id}/telemetry/events
openapi: 3.1.0
info:
  title: Kernel API
  description: Developer tools and cloud infrastructure for AI agents to use web browsers
  version: 0.1.0
servers:
  - url: https://api.onkernel.com
    description: API Server
security:
  - bearerAuth: []
tags:
  - name: Browsers
    description: Create and manage browser sessions.
  - name: Browser Computer Controls
    description: Control mouse, keyboard, and screen on the browser instance.
  - name: Browser Playwright
    description: Execute Playwright code against the browser instance.
  - name: Browser Filesystem
    description: Read, write, and manage files on the browser instance.
  - name: Browser Processes
    description: Execute and manage processes on the browser instance.
  - name: Browser Replays
    description: Record and manage browser session video replays.
  - name: Browser Logs
    description: Stream logs from the browser instance.
  - name: Browser Telemetry
    description: Stream live telemetry events from a browser session.
  - name: Profiles
    description: Create, list, retrieve, and delete browser profiles.
  - name: Proxies
    description: Create and manage proxy configurations for routing browser traffic.
  - name: Extensions
    description: Create, list, retrieve, and delete browser extensions.
  - name: Browser Pools
    description: Create and manage browser pools for acquiring and releasing browsers.
  - name: Managed Auth
    description: >-
      Create and manage auth connections for automated credential capture and
      login.
  - name: Credentials
    description: Create and manage credentials for authentication.
  - name: Credential Providers
    description: Configure external credential providers like 1Password.
  - name: Apps
    description: List applications and versions.
  - name: Deployments
    description: Create and manage app deployments and stream deployment events.
  - name: Invocations
    description: Invoke actions and stream or query invocation status and events.
  - name: Organization
    description: Read and manage organization-level limits.
  - name: Projects
    description: Create and manage projects for resource isolation within an organization.
  - name: API Keys
    description: Create and manage API keys for organization and project-scoped access.
  - name: Audit Logs
    description: Read audit log records for the authenticated organization.
paths:
  /browsers/{id}/telemetry/events:
    get:
      tags:
        - Browser Telemetry
      summary: Read telemetry events for a browser session
      description: >
        Reads a page of telemetry events for the browser session in ascending
        sequence order. To page through results, pass the X-Next-Offset value
        from the previous response as offset and repeat while X-Has-More is
        true. Returns an empty list when telemetry data is unavailable.
      operationId: readBrowserTelemetryEvents
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: Browser session ID
        - name: offset
          in: query
          required: false
          description: >
            Opaque pagination cursor: pass the X-Next-Offset value from the
            previous response to fetch the next page. When set, paging continues
            from this cursor and since is ignored, while until still bounds the
            page. It is not an event's seq field, so do not derive it from the
            response body.
          schema:
            type: integer
            minimum: 0
        - name: since
          in: query
          required: false
          description: >
            Start of the window: an RFC-3339 timestamp, or a duration like 5m
            meaning that long ago. Defaults to 5m. Ignored when offset is set.
          schema:
            type: string
        - name: until
          in: query
          required: false
          description: >
            End of the window (exclusive): an RFC-3339 timestamp, or a duration
            like 5m meaning that long ago.
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: Maximum number of events per page. Defaults to 20.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: category
          in: query
          required: false
          description: >-
            Restrict results to these event categories. Repeat the parameter for
            multiple values.
          schema:
            type: array
            items:
              type: string
              enum:
                - console
                - network
                - page
                - interaction
                - control
                - connection
                - system
                - screenshot
                - captcha
                - monitor
      responses:
        '200':
          description: A page of telemetry events in ascending sequence order.
          headers:
            X-Has-More:
              description: Whether more results are available
              schema:
                type: boolean
            X-Next-Offset:
              schema:
                type: integer
              description: >-
                The offset where the next page starts. 0 when there are no more
                results.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BrowserTelemetryEventEnvelope'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Kernel from '@onkernel/sdk';


            const client = new Kernel({
              apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted
            });


            // Automatically fetches more pages as needed.

            for await (const telemetryEventsResponse of
            client.browsers.telemetry.events('id')) {
              console.log(telemetryEventsResponse.event);
            }
        - lang: Python
          source: |-
            import os
            from kernel import Kernel

            client = Kernel(
                api_key=os.environ.get("KERNEL_API_KEY"),  # This is the default and can be omitted
            )
            page = client.browsers.telemetry.events(
                id="id",
            )
            page = page.items[0]
            print(page.event)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/kernel/kernel-go-sdk\"\n\t\"github.com/kernel/kernel-go-sdk/option\"\n)\n\nfunc main() {\n\tclient := kernel.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tpage, err := client.Browsers.Telemetry.Events(\n\t\tcontext.TODO(),\n\t\t\"id\",\n\t\tkernel.BrowserTelemetryEventsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
components:
  schemas:
    BrowserTelemetryEventEnvelope:
      type: object
      description: >
        Envelope wrapping a browser telemetry event with its monotonic sequence
        number. Each SSE data: frame carries one envelope as JSON. The seq value
        is also emitted as the SSE id: field so clients can pass it as
        Last-Event-ID on reconnect.
      required:
        - seq
        - event
      properties:
        seq:
          type: integer
          format: int64
          minimum: 1
          description: >
            Process-monotonic sequence number assigned by the browser VM. Pass
            as Last-Event-ID on reconnect to resume without gaps. Gaps in
            received seq values indicate dropped events.
        event:
          $ref: '#/components/schemas/BrowserTelemetryEvent'
      additionalProperties: false
    BrowserTelemetryEvent:
      oneOf:
        - $ref: '#/components/schemas/BrowserConsoleLogEvent'
        - $ref: '#/components/schemas/BrowserConsoleErrorEvent'
        - $ref: '#/components/schemas/BrowserNetworkRequestEvent'
        - $ref: '#/components/schemas/BrowserNetworkResponseEvent'
        - $ref: '#/components/schemas/BrowserNetworkLoadingFailedEvent'
        - $ref: '#/components/schemas/BrowserNetworkIdleEvent'
        - $ref: '#/components/schemas/BrowserPageNavigationEvent'
        - $ref: '#/components/schemas/BrowserPageDomContentLoadedEvent'
        - $ref: '#/components/schemas/BrowserPageLoadEvent'
        - $ref: '#/components/schemas/BrowserPageTabOpenedEvent'
        - $ref: '#/components/schemas/BrowserPageLayoutShiftEvent'
        - $ref: '#/components/schemas/BrowserPageLcpEvent'
        - $ref: '#/components/schemas/BrowserPageLayoutSettledEvent'
        - $ref: '#/components/schemas/BrowserPageNavigationSettledEvent'
        - $ref: '#/components/schemas/BrowserInteractionClickEvent'
        - $ref: '#/components/schemas/BrowserInteractionKeyEvent'
        - $ref: '#/components/schemas/BrowserInteractionScrollSettledEvent'
        - $ref: '#/components/schemas/BrowserMonitorScreenshotEvent'
        - $ref: '#/components/schemas/BrowserMonitorDisconnectedEvent'
        - $ref: '#/components/schemas/BrowserMonitorReconnectedEvent'
        - $ref: '#/components/schemas/BrowserMonitorReconnectFailedEvent'
        - $ref: '#/components/schemas/BrowserMonitorInitFailedEvent'
        - $ref: '#/components/schemas/BrowserApiCallEvent'
        - $ref: '#/components/schemas/BrowserCdpConnectEvent'
        - $ref: '#/components/schemas/BrowserCdpDisconnectEvent'
        - $ref: '#/components/schemas/BrowserLiveViewConnectEvent'
        - $ref: '#/components/schemas/BrowserLiveViewDisconnectEvent'
        - $ref: '#/components/schemas/BrowserCaptchaSolveResultEvent'
        - $ref: '#/components/schemas/BrowserSystemOomKillEvent'
        - $ref: '#/components/schemas/BrowserServiceCrashedEvent'
      discriminator:
        propertyName: type
        mapping:
          console_log:
            $ref: '#/components/schemas/BrowserConsoleLogEvent'
          console_error:
            $ref: '#/components/schemas/BrowserConsoleErrorEvent'
          network_request:
            $ref: '#/components/schemas/BrowserNetworkRequestEvent'
          network_response:
            $ref: '#/components/schemas/BrowserNetworkResponseEvent'
          network_loading_failed:
            $ref: '#/components/schemas/BrowserNetworkLoadingFailedEvent'
          network_idle:
            $ref: '#/components/schemas/BrowserNetworkIdleEvent'
          page_navigation:
            $ref: '#/components/schemas/BrowserPageNavigationEvent'
          page_dom_content_loaded:
            $ref: '#/components/schemas/BrowserPageDomContentLoadedEvent'
          page_load:
            $ref: '#/components/schemas/BrowserPageLoadEvent'
          page_tab_opened:
            $ref: '#/components/schemas/BrowserPageTabOpenedEvent'
          page_layout_shift:
            $ref: '#/components/schemas/BrowserPageLayoutShiftEvent'
          page_lcp:
            $ref: '#/components/schemas/BrowserPageLcpEvent'
          page_layout_settled:
            $ref: '#/components/schemas/BrowserPageLayoutSettledEvent'
          page_navigation_settled:
            $ref: '#/components/schemas/BrowserPageNavigationSettledEvent'
          interaction_click:
            $ref: '#/components/schemas/BrowserInteractionClickEvent'
          interaction_key:
            $ref: '#/components/schemas/BrowserInteractionKeyEvent'
          interaction_scroll_settled:
            $ref: '#/components/schemas/BrowserInteractionScrollSettledEvent'
          monitor_screenshot:
            $ref: '#/components/schemas/BrowserMonitorScreenshotEvent'
          monitor_disconnected:
            $ref: '#/components/schemas/BrowserMonitorDisconnectedEvent'
          monitor_reconnected:
            $ref: '#/components/schemas/BrowserMonitorReconnectedEvent'
          monitor_reconnect_failed:
            $ref: '#/components/schemas/BrowserMonitorReconnectFailedEvent'
          monitor_init_failed:
            $ref: '#/components/schemas/BrowserMonitorInitFailedEvent'
          api_call:
            $ref: '#/components/schemas/BrowserApiCallEvent'
          cdp_connect:
            $ref: '#/components/schemas/BrowserCdpConnectEvent'
          cdp_disconnect:
            $ref: '#/components/schemas/BrowserCdpDisconnectEvent'
          live_view_connect:
            $ref: '#/components/schemas/BrowserLiveViewConnectEvent'
          live_view_disconnect:
            $ref: '#/components/schemas/BrowserLiveViewDisconnectEvent'
          captcha_solve_result:
            $ref: '#/components/schemas/BrowserCaptchaSolveResultEvent'
          system_oom_kill:
            $ref: '#/components/schemas/BrowserSystemOomKillEvent'
          service_crashed:
            $ref: '#/components/schemas/BrowserServiceCrashedEvent'
      description: >
        Union type representing any browser telemetry event. Discriminated on
        `type`. Each event's `category` determines when it is captured. The CDP
        collector-health events (monitor_disconnected, monitor_reconnected,
        monitor_reconnect_failed, monitor_init_failed) use the `monitor`
        category, which is not user-configurable: it flows automatically
        whenever any CDP category (console, network, page, interaction) is
        captured, and is silent otherwise. monitor_screenshot uses the opt-in
        `screenshot` category. All other event types are controlled by their
        per-category enable/disable flags.
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Application-specific error code (machine-readable)
          example: bad_request
        message:
          type: string
          description: Human-readable error description for debugging
          example: 'Missing required field: app_name'
        details:
          type: array
          description: Additional error details (for multiple errors)
          items:
            $ref: '#/components/schemas/ErrorDetail'
        inner_error:
          $ref: '#/components/schemas/ErrorDetail'
    BrowserConsoleLogEvent:
      type: object
      title: console_log
      description: >-
        A browser console log event (console.log, console.info, console.warn,
        etc.).
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: console_log
        category:
          type: string
          const: console
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                level:
                  type: string
                  description: >-
                    CDP Runtime.consoleAPICalled type, passed through unfiltered
                    from Chrome. error is routed to console_error events
                    instead; all other CDP console types appear here. See CDP
                    spec for the full enum.
                text:
                  type: string
                  description: First console argument coerced to string.
                args:
                  type: array
                  description: All console arguments coerced to strings.
                  items:
                    type: string
                stack_trace:
                  $ref: '#/components/schemas/BrowserCallStack'
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserConsoleErrorEvent:
      type: object
      title: console_error
      description: >
        A browser console error or uncaught JavaScript exception event. Emitted
        from two distinct CDP sources with different data shapes.
        Runtime.consoleAPICalled (console.error calls) produces level, text,
        args, and stack_trace. Runtime.exceptionThrown (uncaught exceptions)
        produces text, line, column, source_url, and stack_trace. Fields not
        applicable to the source are absent.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: console_error
        category:
          type: string
          const: console
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              required:
                - text
              properties:
                text:
                  type: string
                  description: Error message text. Present in both source paths.
                stack_trace:
                  $ref: '#/components/schemas/BrowserCallStack'
                level:
                  type: string
                  description: >-
                    CDP console type value, always "error". Present only when
                    sourced from Runtime.consoleAPICalled.
                args:
                  type: array
                  description: >-
                    All console arguments coerced to strings. Present only when
                    sourced from Runtime.consoleAPICalled.
                  items:
                    type: string
                line:
                  type: integer
                  description: >-
                    Line number in the script where the exception was thrown.
                    Present only when sourced from Runtime.exceptionThrown.
                column:
                  type: integer
                  description: >-
                    Column number in the script where the exception was thrown.
                    Present only when sourced from Runtime.exceptionThrown.
                source_url:
                  type: string
                  description: >-
                    URL of the script file that threw the exception. Present
                    only when sourced from Runtime.exceptionThrown.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserNetworkRequestEvent:
      type: object
      title: network_request
      description: A browser network request sent event.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: network_request
        category:
          type: string
          const: network
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                request_id:
                  type: string
                  description: CDP request identifier, unique within the session.
                method:
                  type: string
                  description: HTTP method as sent on the wire (e.g. GET, POST).
                document_url:
                  type: string
                  description: URL of the document that initiated the request.
                headers:
                  $ref: '#/components/schemas/BrowserHttpHeaders'
                  description: Request headers.
                resource_type:
                  type: string
                  description: >-
                    CDP Network.ResourceType for the request, passed through
                    as-is from Chrome. Known values include Document, Fetch,
                    XHR, Script, Stylesheet, Image, Media, Font, TextTrack,
                    EventSource, WebSocket, Manifest, Prefetch, Other, and more.
                initiator_type:
                  type: string
                  description: >-
                    CDP Initiator.type indicating what caused the request,
                    passed through as-is from Chrome. Known values include
                    script, parser, preload, and other.
                post_data:
                  type: string
                  description: Request body for POST/PUT requests, if available.
                is_redirect:
                  type: boolean
                  description: True if this request is the result of a redirect.
                redirect_url:
                  type: string
                  description: >-
                    Original URL before the redirect, present when is_redirect
                    is true.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserNetworkResponseEvent:
      type: object
      title: network_response
      description: >-
        A browser network response received event. Fired after the response body
        is fully received, not when headers arrive.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: network_response
        category:
          type: string
          const: network
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                request_id:
                  type: string
                  description: >-
                    CDP request identifier matching the originating
                    network_request event.
                method:
                  type: string
                  description: HTTP method of the original request.
                status:
                  type: integer
                  description: HTTP response status code.
                status_text:
                  type: string
                  description: HTTP response status text (e.g. OK, Not Found).
                headers:
                  $ref: '#/components/schemas/BrowserHttpHeaders'
                  description: Response headers.
                mime_type:
                  type: string
                  description: >-
                    MIME type of the response (e.g. text/html,
                    application/json).
                resource_type:
                  type: string
                  description: >-
                    CDP Network.ResourceType for the request, passed through
                    as-is from Chrome. Known values include Document, Fetch,
                    XHR, Script, Stylesheet, Image, Media, Font, TextTrack,
                    EventSource, WebSocket, Manifest, Prefetch, Other, and more.
                body:
                  type: string
                  description: Truncated response body, present only for text MIME types.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserNetworkLoadingFailedEvent:
      type: object
      title: network_loading_failed
      description: >-
        A browser network loading failed event. If the request was already in
        flight when CDP attached (no prior network_request was emitted for it),
        url, frame_id, loader_id, and resource_type are absent;
        BrowserEventContext is partially populated in that case.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: network_loading_failed
        category:
          type: string
          const: network
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                request_id:
                  type: string
                  description: >-
                    CDP request identifier matching the originating
                    network_request event.
                error_text:
                  type: string
                  description: >-
                    Network error description (e.g.
                    net::ERR_CONNECTION_REFUSED).
                canceled:
                  type: boolean
                  description: >-
                    True if the request was canceled by the browser or page
                    script.
                resource_type:
                  type: string
                  description: >-
                    CDP Network.ResourceType for the request, passed through
                    as-is from Chrome. Known values include Document, Fetch,
                    XHR, Script, Stylesheet, Image, Media, Font, TextTrack,
                    EventSource, WebSocket, Manifest, Prefetch, Other, and more.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserNetworkIdleEvent:
      type: object
      title: network_idle
      description: >-
        A browser network idle event emitted after a 500ms quiet period with no
        in-flight HTTP requests.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: network_idle
        category:
          type: string
          const: network
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          $ref: '#/components/schemas/BrowserEventContext'
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageNavigationEvent:
      type: object
      title: page_navigation
      description: >-
        A browser page navigation started event (CDP Page.frameNavigated).
        Carries nav context fields inline but not nav_seq, as this event resets
        the navigation epoch.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_navigation
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          properties:
            url:
              type: string
              description: URL navigated to.
            frame_id:
              type: string
              description: CDP frame identifier of the navigated frame.
            parent_frame_id:
              type: string
              description: >-
                Parent frame identifier for subframe navigations; absent for
                top-level navigations.
            loader_id:
              type: string
              description: New CDP document loader identifier assigned for this navigation.
            session_id:
              type: string
              description: CDP session identifier.
            target_id:
              type: string
              description: Browser target identifier.
            target_type:
              $ref: '#/components/schemas/BrowserTargetType'
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageDomContentLoadedEvent:
      type: object
      title: page_dom_content_loaded
      description: A browser DOMContentLoaded event (CDP Page.domContentEventFired).
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_dom_content_loaded
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                cdp_timestamp:
                  type: number
                  description: >-
                    Chrome monotonic clock value in seconds at which
                    DOMContentLoaded fired, relative to browser process start
                    (not Unix epoch). Use ts for wall-clock time.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageLoadEvent:
      type: object
      title: page_load
      description: A browser page load event (CDP Page.loadEventFired).
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_load
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                cdp_timestamp:
                  type: number
                  description: >-
                    Chrome monotonic clock value in seconds at which the load
                    event fired, relative to browser process start (not Unix
                    epoch). Use ts for wall-clock time.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageTabOpenedEvent:
      type: object
      title: page_tab_opened
      description: >-
        A new browser tab or target was opened (CDP Target.attachedToTarget for
        page targets). Fires before a CDP session is attached to the new target,
        so session_id, frame_id, loader_id, and nav_seq are absent; this event
        does not compose BrowserEventContext. Consumers reading context fields
        generically should treat it as a special case.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_tab_opened
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          properties:
            target_id:
              type: string
              description: CDP target identifier for the newly opened tab.
            target_type:
              $ref: '#/components/schemas/BrowserTargetType'
            url:
              type: string
              description: Initial URL of the new tab.
            title:
              type: string
              description: Initial page title of the new tab.
            opener_id:
              type: string
              description: Target identifier of the tab that opened this one, if any.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageLayoutShiftEvent:
      type: object
      title: page_layout_shift
      description: >-
        A browser cumulative layout shift (CLS) event from the Performance
        Timeline API.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_layout_shift
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                source_frame_id:
                  type: string
                  description: >-
                    CDP frame identifier of the frame where the layout shift
                    occurred.
                time:
                  type: number
                  description: >-
                    Performance Timeline timestamp of the layout shift in
                    milliseconds.
                duration:
                  type: number
                  description: >-
                    Duration of the layout shift entry in milliseconds (always 0
                    for layout shifts per spec).
                layout_shift_details:
                  type: object
                  additionalProperties: false
                  description: >-
                    PerformanceLayoutShift attributes from the Performance
                    Timeline entry.
                  properties:
                    value:
                      type: number
                      description: Layout shift score for this entry (contribution to CLS).
                    had_recent_input:
                      type: boolean
                      description: >-
                        True if the layout shift was preceded by user input
                        within 500ms, excluding it from CLS.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageLcpEvent:
      type: object
      title: page_lcp
      description: >-
        A browser Largest Contentful Paint (LCP) event from the Performance
        Timeline API.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_lcp
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                source_frame_id:
                  type: string
                  description: >-
                    CDP frame identifier of the frame where the LCP element was
                    rendered.
                time:
                  type: number
                  description: >-
                    Performance Timeline timestamp of the LCP entry in
                    milliseconds.
                lcp_details:
                  type: object
                  additionalProperties: false
                  description: >-
                    LargestContentfulPaint attributes from the Performance
                    Timeline entry.
                  properties:
                    render_time:
                      type: number
                      description: >-
                        Render time of the LCP element in milliseconds; 0 for
                        cross-origin images without Timing-Allow-Origin.
                    load_time:
                      type: number
                      description: Load time of the LCP element in milliseconds.
                    size:
                      type: number
                      description: Visible area of the LCP element in pixels squared.
                    element_id:
                      type: string
                      description: id attribute of the LCP element, if present.
                    url:
                      type: string
                      description: URL of the LCP element for image or video elements.
                    node_id:
                      type: integer
                      description: CDP DOM node identifier of the LCP element.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageLayoutSettledEvent:
      type: object
      title: page_layout_settled
      description: >-
        A browser layout settled event emitted 1 second after page load with no
        intervening layout shifts, indicating visual stability. Each layout
        shift resets the 1-second timer.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_layout_settled
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          $ref: '#/components/schemas/BrowserEventContext'
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserPageNavigationSettledEvent:
      type: object
      title: page_navigation_settled
      description: >-
        Emitted when page_dom_content_loaded and page_layout_settled have both
        fired for the same navigation, indicating the page is loaded and
        visually stable. Independent of network_idle; a single pending request
        does not block it.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: page_navigation_settled
        category:
          type: string
          const: page
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          $ref: '#/components/schemas/BrowserEventContext'
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserInteractionClickEvent:
      type: object
      title: interaction_click
      description: A browser user click event captured via injected page script.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: interaction_click
        category:
          type: string
          const: interaction
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                x:
                  type: integer
                  description: Viewport x-coordinate of the click in CSS pixels.
                'y':
                  type: integer
                  description: Viewport y-coordinate of the click in CSS pixels.
                selector:
                  type: string
                  description: CSS selector path to the clicked element.
                tag:
                  type: string
                  description: >-
                    HTML tag name of the clicked element in uppercase (e.g.
                    BUTTON, A, DIV).
                text:
                  type: string
                  description: Visible text content of the clicked element, trimmed.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserInteractionKeyEvent:
      type: object
      title: interaction_key
      description: A browser keyboard event captured via injected page script.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: interaction_key
        category:
          type: string
          const: interaction
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                key:
                  type: string
                  description: Key value from the KeyboardEvent (e.g. Enter, Backspace, a).
                selector:
                  type: string
                  description: >-
                    CSS selector path to the element that had focus when the key
                    was pressed.
                tag:
                  type: string
                  description: >-
                    HTML tag name of the focused element in uppercase (e.g.
                    INPUT, TEXTAREA, DIV).
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserInteractionScrollSettledEvent:
      type: object
      title: interaction_scroll_settled
      description: >-
        A browser scroll settled event emitted after scroll position stops
        changing, captured via injected page script.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: interaction_scroll_settled
        category:
          type: string
          const: interaction
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          allOf:
            - $ref: '#/components/schemas/BrowserEventContext'
            - type: object
              properties:
                from_x:
                  type: integer
                  description: >-
                    Scroll x-position at the start of the scroll gesture in CSS
                    pixels.
                from_y:
                  type: integer
                  description: >-
                    Scroll y-position at the start of the scroll gesture in CSS
                    pixels.
                to_x:
                  type: integer
                  description: >-
                    Final scroll x-position after the gesture settled in CSS
                    pixels.
                to_y:
                  type: integer
                  description: >-
                    Final scroll y-position after the gesture settled in CSS
                    pixels.
                target_selector:
                  type: string
                  description: CSS selector path to the scrolled element.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserMonitorScreenshotEvent:
      type: object
      title: monitor_screenshot
      description: A periodic screenshot of the browser viewport.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: monitor_screenshot
        category:
          type: string
          const: screenshot
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          properties:
            png:
              type: string
              contentEncoding: base64
              description: Base64-encoded PNG screenshot of the browser viewport.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserMonitorDisconnectedEvent:
      type: object
      title: monitor_disconnected
      description: >-
        The CDP connection to Chrome was lost. Telemetry events may be dropped
        until monitor_reconnected arrives. Treat any in-progress computed state
        (network_idle, page_layout_settled) as unreliable until then.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: monitor_disconnected
        category:
          type: string
          const: monitor
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          properties:
            reason:
              type: string
              description: >-
                Reason for the disconnection. chrome_restarted: Chrome process
                restarted.
              enum:
                - chrome_restarted
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserMonitorReconnectedEvent:
      type: object
      title: monitor_reconnected
      description: >-
        The CDP connection to Chrome was successfully re-established after a
        disconnection. Events emitted during the gap are lost. Computed state is
        reset, so navigation and network tracking restart fresh from this point.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: monitor_reconnected
        category:
          type: string
          const: monitor
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          properties:
            reconnect_duration_ms:
              type: integer
              format: int64
              description: >-
                Wall-clock time in milliseconds taken to reconnect after the
                disconnection.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserMonitorReconnectFailedEvent:
      type: object
      title: monitor_reconnect_failed
      description: >-
        The CDP connection to Chrome could not be re-established after
        exhausting all reconnection attempts. No further telemetry events will
        arrive on this session.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: monitor_reconnect_failed
        category:
          type: string
          const: monitor
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          properties:
            reason:
              type: string
              description: >-
                Reason for the reconnection failure. reconnect_exhausted: all
                retry attempts were used up without successfully restoring the
                CDP connection.
              enum:
                - reconnect_exhausted
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserMonitorInitFailedEvent:
      type: object
      title: monitor_init_failed
      description: The CDP session could not be initialized.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: monitor_init_failed
        category:
          type: string
          const: monitor
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          properties:
            step:
              type: string
              description: >-
                The CDP method or initialization step that failed (e.g.
                Target.setAutoAttach).
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserApiCallEvent:
      type: object
      description: An agent-driven HTTP call handled by the in-VM API server.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: api_call
        category:
          type: string
          const: control
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          required:
            - request_id
            - operation_id
            - status
            - duration_ms
          properties:
            request_id:
              type: string
              description: Per-request identifier from the in-VM API request middleware.
            operation_id:
              type: string
              description: >-
                OpenAPI operationId of the matched route (e.g. processExec,
                takeScreenshot).
            status:
              type: integer
              description: HTTP response status code.
            duration_ms:
              type: number
              description: Wall-clock duration of the handler in milliseconds.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserCdpConnectEvent:
      type: object
      description: >-
        An external client (e.g. customer SDK, Playwright, Puppeteer) connected
        to the CDP WebSocket proxy on this VM.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: cdp_connect
        category:
          type: string
          const: connection
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserCdpDisconnectEvent:
      type: object
      description: >-
        An external client disconnected from the CDP WebSocket proxy on this VM.
        Pair with the immediately preceding cdp_connect on the same stream.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: cdp_disconnect
        category:
          type: string
          const: connection
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          required:
            - duration_ms
            - message_count
            - reason
          properties:
            duration_ms:
              type: number
              description: Wall-clock duration of the connection in milliseconds.
            message_count:
              type: integer
              description: >-
                Number of CDP messages relayed across the connection in either
                direction.
            reason:
              type: string
              x-go-type: string
              description: >-
                Why the connection ended. client_close: the client initiated the
                close. upstream_changed: Chromium restarted mid-session and the
                proxy tore down so the client could reconnect against the new
                upstream. upstream_error: upstream dial or message pump errored.
                context_cancelled: the request context was cancelled (typically
                server shutdown).
              enum:
                - client_close
                - upstream_changed
                - upstream_error
                - context_cancelled
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserLiveViewConnectEvent:
      type: object
      description: >-
        A live view client connected to the headful browser's WebRTC server.
        Headful only; not emitted for headless images.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: live_view_connect
        category:
          type: string
          const: connection
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          required:
            - session_id
          properties:
            session_id:
              type: string
              description: >-
                Live view session identifier. Stable across reconnects, so a
                transient network blip can emit two events with the same
                session_id.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserLiveViewDisconnectEvent:
      type: object
      description: >-
        A live view client disconnected from the headful browser's WebRTC
        server. Pair with live_view_connect by session_id.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: live_view_disconnect
        category:
          type: string
          const: connection
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          required:
            - session_id
            - duration_ms
          properties:
            session_id:
              type: string
              description: >-
                Live view session identifier; matches the corresponding
                live_view_connect event.
            duration_ms:
              type: number
              description: Wall-clock duration of the connection in milliseconds.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserCaptchaSolveResultEvent:
      type: object
      description: A captcha solve attempt reached a terminal outcome.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: captcha_solve_result
        category:
          type: string
          const: captcha
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          required:
            - captcha_type
            - status
            - duration_ms
          properties:
            captcha_type:
              type: string
              x-go-type: string
              description: >-
                Captcha vendor family. Provider-specific task names are
                normalized into this set; anything not covered is reported as
                other.
              enum:
                - hcaptcha
                - recaptcha_v2
                - recaptcha_v3
                - turnstile
                - geetest
                - other
            status:
              type: string
              x-go-type: string
              description: >-
                Terminal outcome. success: solver returned a usable solution.
                failure: solver returned an error (see error_code). timeout:
                solver did not return within the caller's wait budget.
                abandoned: caller cancelled or the page navigated away
                mid-solve.
              enum:
                - success
                - failure
                - timeout
                - abandoned
            duration_ms:
              type: number
              description: Wall-clock duration from solve start to terminal outcome.
            task_id:
              type: string
              description: >-
                Solver-assigned identifier. Opaque, useful for support
                cross-references.
            website_host:
              type: string
              description: Host of the page where the captcha was solved.
            website_path:
              type: string
              description: >-
                Path of the page where the captcha was solved. Query string
                excluded.
            error_code:
              type: string
              description: >-
                Solver-specific error code on failure (e.g.
                ERROR_CAPTCHA_UNSOLVABLE). Absent on success.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserSystemOomKillEvent:
      type: object
      description: >-
        The Linux kernel OOM-killer terminated a process inside the VM. Fires
        for any process killed by the kernel due to memory exhaustion, including
        Chrome renderer subprocesses that are not supervised.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: system_oom_kill
        category:
          type: string
          const: system
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          required:
            - process_name
            - pid
            - rss_kb
          properties:
            process_name:
              type: string
              description: >-
                Comm of the killed process as reported by the kernel (max 15
                chars, truncated by the kernel).
            pid:
              type: integer
              description: PID of the killed process.
            rss_kb:
              type: integer
              description: >-
                Resident set size of the killed process in KiB (sum of anon-rss,
                file-rss, and shmem-rss).
            trigger_process_name:
              type: string
              description: >-
                Comm of the process whose allocation request caused the kernel
                to invoke the OOM-killer. Often the same as process_name but can
                differ. Max 15 chars.
            trigger_pid:
              type: integer
              description: >-
                PID of the triggering process. Absent if the kernel did not emit
                the standard header line.
            constraint:
              type: string
              x-go-type: string
              description: >-
                Why the kernel decided to OOM-kill. none means global memory
                exhaustion; memcg means a cgroup memory limit was hit; cpuset /
                memory_policy are NUMA/policy-driven kills. Absent on kernels
                older than 5.0.
              enum:
                - none
                - memcg
                - cpuset
                - memory_policy
            mem_total_kb:
              type: integer
              description: >-
                Total system memory in KiB at the time of the kill. Assumes a 4
                KiB page size. Absent if the kernel did not emit a parseable
                Mem-Info section.
            mem_free_kb:
              type: integer
              description: >-
                Free system memory in KiB at the time of the kill. Assumes a 4
                KiB page size. Does not include reclaimable caches. Absent if
                the kernel did not emit a parseable Mem-Info section.
            top_tasks:
              type: array
              maxItems: 5
              description: >-
                Top processes by resident-set-size at the moment of the kill,
                sorted descending. Empty if the kernel did not emit the Tasks
                state table. Capped at 5 entries.
              items:
                type: object
                additionalProperties: false
                required:
                  - pid
                  - name
                  - rss_kb
                properties:
                  pid:
                    type: integer
                    description: PID of the process.
                  name:
                    type: string
                    description: >-
                      Comm of the process (max 15 chars, truncated by the
                      kernel).
                  rss_kb:
                    type: integer
                    description: Resident set size in KiB at the moment of the kill.
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    BrowserServiceCrashedEvent:
      type: object
      description: >-
        A managed service exited unexpectedly. Intentional stops do not produce
        this event; only unexpected exits and terminal restart-give-up
        transitions do.
      required:
        - ts
        - type
        - category
        - source
      properties:
        ts:
          type: integer
          format: int64
          description: Event timestamp in Unix microseconds.
        type:
          type: string
          const: service_crashed
        category:
          type: string
          const: system
        source:
          $ref: '#/components/schemas/BrowserEventSource'
        data:
          type: object
          additionalProperties: false
          required:
            - service_name
            - phase
          properties:
            service_name:
              type: string
              description: >-
                Program name of the crashed service (e.g. chromium, mutter,
                kernel-images-api).
            pid:
              type: integer
              description: >-
                PID of the crashed process. Absent when the process manager gave
                up after exhausting restart attempts.
            phase:
              type: string
              x-go-type: string
              description: >-
                Lifecycle phase the crash occurred in. startup: the process died
                before reaching a healthy running state. running: a previously
                healthy process died unexpectedly. gave_up: the process manager
                exhausted its restart attempts and stopped trying.
              enum:
                - startup
                - running
                - gave_up
        truncated:
          type: boolean
          description: True if the data field was truncated due to size limits.
    ErrorDetail:
      type: object
      properties:
        code:
          type: string
          description: Lower-level error code providing more specific detail
          example: invalid_input
        message:
          type: string
          description: Further detail about the error
          example: Provided version string is not semver compliant
    BrowserEventSource:
      type: object
      description: Provenance metadata identifying which producer emitted the event.
      required:
        - kind
      properties:
        kind:
          type: string
          enum:
            - cdp
            - kernel_api
            - extension
            - local_process
          description: >-
            Event producer. cdp: Chrome DevTools Protocol events from the
            browser. kernel_api: Kernel API server. extension: injected Chrome
            extension. local_process: system process running alongside the
            browser.
        event:
          type: string
          description: >-
            Producer-specific event name (e.g. Runtime.consoleAPICalled for
            CDP-sourced console events, Runtime.exceptionThrown for uncaught
            exceptions).
        metadata:
          type: object
          description: Producer-specific context (e.g. CDP target/session/frame IDs).
          additionalProperties:
            type: string
    BrowserEventContext:
      type: object
      description: >-
        Browser event context stamped by the browser monitor onto all
        CDP-sourced events. Identifies the target, frame, and navigation epoch
        in which the event occurred.
      properties:
        session_id:
          type: string
          description: CDP session identifier for the target connection.
        target_id:
          type: string
          description: Browser target identifier (stable across navigations within a tab).
        target_type:
          $ref: '#/components/schemas/BrowserTargetType'
        frame_id:
          type: string
          description: CDP frame identifier within the target.
        loader_id:
          type: string
          description: CDP document loader identifier, reset on each navigation.
        url:
          type: string
          description: >-
            URL relevant to this event — page URL for navigation and page
            events, request URL for network events.
        nav_seq:
          type: integer
          format: int64
          description: >-
            Monotonically increasing navigation sequence number, incremented on
            each top-level navigation within the target.
    BrowserCallStack:
      type: object
      description: >-
        CDP Runtime.StackTrace representing the JavaScript call stack at the
        time of an event. Fields use CDP naming conventions rather than
        snake_case to match the Chrome DevTools Protocol wire format.
      required:
        - callFrames
      properties:
        description:
          type: string
          description: Optional label for the stack trace (e.g. async cause).
        callFrames:
          type: array
          description: Ordered list of call frames, outermost first.
          items:
            type: object
            required:
              - functionName
              - scriptId
              - url
              - lineNumber
              - columnNumber
            properties:
              functionName:
                type: string
                description: >-
                  JavaScript function name, or empty string for anonymous
                  functions.
              scriptId:
                type: string
                description: CDP script identifier.
              url:
                type: string
                description: URL or name of the script file.
              lineNumber:
                type: integer
                description: Zero-based line number within the script.
              columnNumber:
                type: integer
                description: Zero-based column number within the line.
        parent:
          $ref: '#/components/schemas/BrowserCallStack'
          description: Parent stack trace for async stacks.
    BrowserHttpHeaders:
      type: object
      description: >-
        HTTP headers map forwarded as-is from CDP without normalization. Values
        are typically strings but may be any JSON type.
      additionalProperties: true
    BrowserTargetType:
      type: string
      description: CDP target type of the page that produced the event.
      enum:
        - page
        - background_page
        - service_worker
        - shared_worker
        - other
  responses:
    BadRequest:
      description: Bad Request – invalid input
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized – missing or invalid authorization token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden – insufficient permissions or plan
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````