---
title: "Read telemetry events for a browser session"
method: GET
path: "/browsers/{id}/telemetry/events"
tags: ["Browser Telemetry"]
---

# Read telemetry events for a browser session

`GET /browsers/{id}/telemetry/events`

Reads a page of telemetry events for the browser session. 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.

## Path parameters

- `id` string, required

## Query parameters

- `offset` integer
- `since` string
- `until` string
- `limit` integer
- `category` string[]
- `order` string

## Response `200`

A page of telemetry events.

- BrowserTelemetryEventEnvelope[]
  - `seq` integer, required — 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` union, required — 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.
    - BrowserConsoleLogEvent — A browser console log event (console.log, console.info, console.warn, etc.).
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'console_log', required
      - `category` 'console', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `level` string — 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` string — First console argument coerced to string.
        - `args` string[] — All console arguments coerced to strings.
        - `stack_trace` BrowserCallStack — 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.
          - `description` string — Optional label for the stack trace (e.g. async cause).
          - `callFrames` object[], required — Ordered list of call frames, outermost first.
            - `functionName` string, required — JavaScript function name, or empty string for anonymous functions.
            - `scriptId` string, required — CDP script identifier.
            - `url` string, required — URL or name of the script file.
            - `lineNumber` integer, required — Zero-based line number within the script.
            - `columnNumber` integer, required — Zero-based column number within the line.
          - `parent` BrowserCallStack — recursive
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserConsoleErrorEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'console_error', required
      - `category` 'console', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `text` string, required — Human-readable error text, as the browser console would display it. For console.error() calls, the first argument coerced to a string. For uncaught exceptions, the prefix and error message, e.g. "Uncaught Error: boom" or "Uncaught (in promise) TypeError: x is not a function".
        - `stack_trace` BrowserCallStack — 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.
          - `description` string — Optional label for the stack trace (e.g. async cause).
          - `callFrames` object[], required — Ordered list of call frames, outermost first.
            - `functionName` string, required — JavaScript function name, or empty string for anonymous functions.
            - `scriptId` string, required — CDP script identifier.
            - `url` string, required — URL or name of the script file.
            - `lineNumber` integer, required — Zero-based line number within the script.
            - `columnNumber` integer, required — Zero-based column number within the line.
          - `parent` BrowserCallStack — recursive
        - `level` string — CDP console type value, always "error". Present only when sourced from Runtime.consoleAPICalled.
        - `args` string[] — All console arguments coerced to strings. Present only when sourced from Runtime.consoleAPICalled.
        - `line` integer — Line number in the script where the exception was thrown. Present only when sourced from Runtime.exceptionThrown.
        - `column` integer — Column number in the script where the exception was thrown. Present only when sourced from Runtime.exceptionThrown.
        - `source_url` string — URL of the script file that threw the exception. Present only when sourced from Runtime.exceptionThrown.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserNetworkRequestEvent — A browser network request sent event.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_request', required
      - `category` 'network', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `request_id` string — CDP request identifier, unique within the session.
        - `method` string — HTTP method as sent on the wire (e.g. GET, POST).
        - `document_url` string — URL of the document that initiated the request.
        - `headers` BrowserHttpHeaders — HTTP headers map forwarded as-is from CDP without normalization. Values are typically strings but may be any JSON type.
        - `resource_type` string — 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` string — CDP Initiator.type indicating what caused the request, passed through as-is from Chrome. Known values include script, parser, preload, and other.
        - `post_data` string — Request body for POST/PUT requests, if available.
        - `is_redirect` boolean — True if this request is the result of a redirect.
        - `redirect_url` string — Original URL before the redirect, present when is_redirect is true.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserNetworkResponseEvent — A browser network response received event. Fired after the response body is fully received, not when headers arrive.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_response', required
      - `category` 'network', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `request_id` string — CDP request identifier matching the originating network_request event.
        - `method` string — HTTP method of the original request.
        - `status` integer — HTTP response status code.
        - `status_text` string — HTTP response status text (e.g. OK, Not Found).
        - `headers` BrowserHttpHeaders — HTTP headers map forwarded as-is from CDP without normalization. Values are typically strings but may be any JSON type.
        - `mime_type` string — MIME type of the response (e.g. text/html, application/json).
        - `resource_type` string — 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` string — Truncated response body, present only for text MIME types.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserNetworkLoadingFailedEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_loading_failed', required
      - `category` 'network', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `request_id` string — CDP request identifier matching the originating network_request event.
        - `error_text` string — Network error description (e.g. net::ERR_CONNECTION_REFUSED).
        - `canceled` boolean — True if the request was canceled by the browser or page script.
        - `resource_type` string — 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` boolean — True if the data field was truncated due to size limits.
    - BrowserNetworkIdleEvent — A browser network idle event emitted after a 500ms quiet period with no in-flight HTTP requests.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'network_idle', required
      - `category` 'network', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` BrowserEventContext — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserPageNavigationEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_navigation', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `url` string — URL navigated to.
        - `frame_id` string — CDP frame identifier of the navigated frame.
        - `parent_frame_id` string — Parent frame identifier for subframe navigations; absent for top-level navigations.
        - `loader_id` string — New CDP document loader identifier assigned for this navigation.
        - `session_id` string — CDP session identifier.
        - `target_id` string — Browser target identifier.
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserPageDomContentLoadedEvent — A browser DOMContentLoaded event (CDP Page.domContentEventFired).
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_dom_content_loaded', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `cdp_timestamp` number — 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` boolean — True if the data field was truncated due to size limits.
    - BrowserPageLoadEvent — A browser page load event (CDP Page.loadEventFired).
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_load', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `cdp_timestamp` number — 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` boolean — True if the data field was truncated due to size limits.
    - BrowserPageTabOpenedEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_tab_opened', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `target_id` string — CDP target identifier for the newly opened tab.
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `url` string — Initial URL of the new tab.
        - `title` string — Initial page title of the new tab.
        - `opener_id` string — Target identifier of the tab that opened this one, if any.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserPageLayoutShiftEvent — A browser cumulative layout shift (CLS) event from the Performance Timeline API.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_layout_shift', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `source_frame_id` string — CDP frame identifier of the frame where the layout shift occurred.
        - `time` number — Performance Timeline timestamp of the layout shift in milliseconds.
        - `duration` number — Duration of the layout shift entry in milliseconds (always 0 for layout shifts per spec).
        - `layout_shift_details` object — PerformanceLayoutShift attributes from the Performance Timeline entry.
          - `value` number — Layout shift score for this entry (contribution to CLS).
          - `had_recent_input` boolean — True if the layout shift was preceded by user input within 500ms, excluding it from CLS.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserPageLcpEvent — A browser Largest Contentful Paint (LCP) event from the Performance Timeline API.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_lcp', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `source_frame_id` string — CDP frame identifier of the frame where the LCP element was rendered.
        - `time` number — Performance Timeline timestamp of the LCP entry in milliseconds.
        - `lcp_details` object — LargestContentfulPaint attributes from the Performance Timeline entry.
          - `render_time` number — Render time of the LCP element in milliseconds; 0 for cross-origin images without Timing-Allow-Origin.
          - `load_time` number — Load time of the LCP element in milliseconds.
          - `size` number — Visible area of the LCP element in pixels squared.
          - `element_id` string — id attribute of the LCP element, if present.
          - `url` string — URL of the LCP element for image or video elements.
          - `node_id` integer — CDP DOM node identifier of the LCP element.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserPageLayoutSettledEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_layout_settled', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` BrowserEventContext — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserPageNavigationSettledEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'page_navigation_settled', required
      - `category` 'page', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` BrowserEventContext — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserInteractionClickEvent — A browser user click event captured via injected page script.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'interaction_click', required
      - `category` 'interaction', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `x` integer — Viewport x-coordinate of the click in CSS pixels.
        - `y` integer — Viewport y-coordinate of the click in CSS pixels.
        - `selector` string — CSS selector path to the clicked element.
        - `tag` string — HTML tag name of the clicked element in uppercase (e.g. BUTTON, A, DIV).
        - `text` string — Visible text content of the clicked element, trimmed.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserInteractionKeyEvent — A browser keyboard event captured via injected page script.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'interaction_key', required
      - `category` 'interaction', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `key` string — Key value from the KeyboardEvent (e.g. Enter, Backspace, a).
        - `selector` string — CSS selector path to the element that had focus when the key was pressed.
        - `tag` string — HTML tag name of the focused element in uppercase (e.g. INPUT, TEXTAREA, DIV).
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserInteractionScrollSettledEvent — A browser scroll settled event emitted after scroll position stops changing, captured via injected page script.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'interaction_scroll_settled', required
      - `category` 'interaction', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object — 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.
        - `session_id` string — CDP session identifier for the target connection.
        - `target_id` string — Browser target identifier (stable across navigations within a tab).
        - `target_type` 'page' | 'background_page' | 'service_worker' | 'shared_worker' | 'other' — CDP target type of the page that produced the event.
        - `frame_id` string — CDP frame identifier within the target.
        - `loader_id` string — CDP document loader identifier, reset on each navigation.
        - `url` string — URL relevant to this event — page URL for navigation and page events, request URL for network events.
        - `nav_seq` integer — Monotonically increasing navigation sequence number, incremented on each top-level navigation within the target.
        - `from_x` integer — Scroll x-position at the start of the scroll gesture in CSS pixels.
        - `from_y` integer — Scroll y-position at the start of the scroll gesture in CSS pixels.
        - `to_x` integer — Final scroll x-position after the gesture settled in CSS pixels.
        - `to_y` integer — Final scroll y-position after the gesture settled in CSS pixels.
        - `target_selector` string — CSS selector path to the scrolled element.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserMonitorScreenshotEvent — A periodic screenshot of the browser viewport.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_screenshot', required
      - `category` 'screenshot', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `png` string, byte — Base64-encoded PNG screenshot of the browser viewport.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserMonitorDisconnectedEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_disconnected', required
      - `category` 'monitor', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `reason` 'chrome_restarted' — Reason for the disconnection. chrome_restarted: Chrome process restarted.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserMonitorReconnectedEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_reconnected', required
      - `category` 'monitor', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `reconnect_duration_ms` integer — Wall-clock time in milliseconds taken to reconnect after the disconnection.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserMonitorReconnectFailedEvent — The CDP connection to Chrome could not be re-established after exhausting all reconnection attempts. No further telemetry events will arrive on this session.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_reconnect_failed', required
      - `category` 'monitor', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `reason` 'reconnect_exhausted' — Reason for the reconnection failure. reconnect_exhausted: all retry attempts were used up without successfully restoring the CDP connection.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserMonitorInitFailedEvent — The CDP session could not be initialized.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'monitor_init_failed', required
      - `category` 'monitor', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `step` string — The CDP method or initialization step that failed (e.g. Target.setAutoAttach).
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserApiCallEvent — An agent-driven HTTP call handled by the in-VM API server.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'api_call', required
      - `category` 'control', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `request_id` string, required — Per-request identifier from the in-VM API request middleware.
        - `operation_id` string, required — OpenAPI operationId of the matched route (e.g. processExec, takeScreenshot).
        - `status` integer, required — HTTP response status code.
        - `duration_ms` number, required — Wall-clock duration of the handler in milliseconds.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserCdpConnectEvent — An external client (e.g. customer SDK, Playwright, Puppeteer) connected to the CDP WebSocket proxy on this VM.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'cdp_connect', required
      - `category` 'connection', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserCdpDisconnectEvent — An external client disconnected from the CDP WebSocket proxy on this VM. Pair with the immediately preceding cdp_connect on the same stream.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'cdp_disconnect', required
      - `category` 'connection', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `duration_ms` number, required — Wall-clock duration of the connection in milliseconds.
        - `message_count` integer, required — Number of CDP messages relayed across the connection in either direction.
        - `reason` 'client_close' | 'upstream_changed' | 'upstream_error' | 'context_cancelled', required — 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).
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserLiveViewConnectEvent — A live view client connected to the headful browser's WebRTC server. Headful only; not emitted for headless images.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'live_view_connect', required
      - `category` 'connection', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `session_id` string, required — Live view session identifier. Stable across reconnects, so a transient network blip can emit two events with the same session_id.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserLiveViewDisconnectEvent — A live view client disconnected from the headful browser's WebRTC server. Pair with live_view_connect by session_id.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'live_view_disconnect', required
      - `category` 'connection', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `session_id` string, required — Live view session identifier; matches the corresponding live_view_connect event.
        - `duration_ms` number, required — Wall-clock duration of the connection in milliseconds.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserCaptchaSolveResultEvent — A captcha solve attempt reached a terminal outcome.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'captcha_solve_result', required
      - `category` 'captcha', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `captcha_type` 'hcaptcha' | 'recaptcha_v2' | 'recaptcha_v3' | 'turnstile' | 'geetest' | 'other', required — Captcha vendor family. Provider-specific task names are normalized into this set; anything not covered is reported as other.
        - `status` 'success' | 'failure' | 'timeout' | 'abandoned', required — 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.
        - `duration_ms` number, required — Wall-clock duration from solve start to terminal outcome.
        - `task_id` string — Solver-assigned identifier. Opaque, useful for support cross-references.
        - `website_host` string — Host of the page where the captcha was solved.
        - `website_path` string — Path of the page where the captcha was solved. Query string excluded.
        - `error_code` string — Solver-specific error code on failure (e.g. ERROR_CAPTCHA_UNSOLVABLE). Absent on success.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserSystemOomKillEvent — 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.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'system_oom_kill', required
      - `category` 'system', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `process_name` string, required — Comm of the killed process as reported by the kernel (max 15 chars, truncated by the kernel).
        - `pid` integer, required — PID of the killed process.
        - `rss_kb` integer, required — Resident set size of the killed process in KiB (sum of anon-rss, file-rss, and shmem-rss).
        - `trigger_process_name` string — 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` integer — PID of the triggering process. Absent if the kernel did not emit the standard header line.
        - `constraint` 'none' | 'memcg' | 'cpuset' | 'memory_policy' — 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.
        - `mem_total_kb` integer — 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` integer — 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` object[] — 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.
          - `pid` integer, required — PID of the process.
          - `name` string, required — Comm of the process (max 15 chars, truncated by the kernel).
          - `rss_kb` integer, required — Resident set size in KiB at the moment of the kill.
      - `truncated` boolean — True if the data field was truncated due to size limits.
    - BrowserServiceCrashedEvent — A managed service exited unexpectedly. Intentional stops do not produce this event; only unexpected exits and terminal restart-give-up transitions do.
      - `ts` integer, required — Event timestamp in Unix microseconds.
      - `type` 'service_crashed', required
      - `category` 'system', required
      - `source` BrowserEventSource, required — Provenance metadata identifying which producer emitted the event.
        - `kind` 'cdp' | 'kernel_api' | 'extension' | 'local_process', required — 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` string — Producer-specific event name (e.g. Runtime.consoleAPICalled for CDP-sourced console events, Runtime.exceptionThrown for uncaught exceptions).
        - `metadata` object — Producer-specific context (e.g. CDP target/session/frame IDs).
      - `data` object
        - `service_name` string, required — Program name of the crashed service (e.g. chromium, mutter, kernel-images-api).
        - `pid` integer — PID of the crashed process. Absent when the process manager gave up after exhausting restart attempts.
        - `phase` 'startup' | 'running' | 'gave_up', required — 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.
      - `truncated` boolean — True if the data field was truncated due to size limits.

## Other responses

- `400` — Bad Request – invalid input
- `401` — Unauthorized – missing or invalid authorization token
- `403` — Forbidden – insufficient permissions or plan
- `404` — Resource not found
- `500` — Internal Server Error

---

[API](https://skmtc.net/kernel/apis/kernel-api.md) · [All operations](https://skmtc.net/kernel/apis/kernel-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kernel/kernel-api/revisions/9e8ce9fcf5e1/schema)
