---
title: "Get telemetry configuration"
method: GET
path: "/telemetry"
---

# Get telemetry configuration

`GET /telemetry`

Returns the current telemetry configuration. Returns 404 if telemetry is not configured.

## Response `200`

Telemetry configuration

- TelemetryState — Current telemetry configuration.
  - `config` BrowserTelemetryConfig, required — Telemetry configuration for a browser. Selection is opt-in. Omit the browser key (or send an empty object) to capture the default set: lightweight operational signals (control, connection, system, captcha). Within `browser`, only the categories you set enabled: true are captured; anything omitted is off. The CDP categories (console, network, page, interaction), `screenshot` and `platform` are off by default and must be opted into. A `browser` config with nothing enabled clears the telemetry configuration. The `monitor` category (CDP collector health) is not configurable here; it flows automatically whenever a CDP category is captured.
    - `browser` BrowserTelemetryCategoriesConfig — Per-category telemetry capture settings for browser events.
      - `console` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `page` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `interaction` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `network` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `control` BrowserTelemetryControlConfig — Configuration for the control category. Same `enabled` semantics as any other category, plus settings for the browser-control commands the CDP proxy reports.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
        - `cdp` BrowserTelemetryCdpControlConfig — Settings for the `cdp_command` events the DevTools proxy reports.
          - `excluded_methods` BrowserCdpCommandMethod[] — Methods to leave out of the `cdp_command` stream. Omit the list (or send an empty one) to report every supported method. Exclusion is a telemetry setting only: an excluded command is still relayed to the browser unchanged, it simply produces no event. Use it to drop the highest-volume methods — `Input.dispatchMouseEvent` during a humanized cursor path, or `Page.captureScreenshot` under a screencast — without turning the whole category off.
      - `platform` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `connection` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `system` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `screenshot` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
      - `captcha` BrowserTelemetryCategoryConfig — Configuration for a single telemetry category.
        - `enabled` boolean — Whether this category is captured. In PUT requests selection is opt-in: omitting this field (or the whole category) leaves the category off, so a PUT captures exactly the categories set to true. In PATCH requests, omitting this field (or sending an empty object `{}`) is a no-op; the category retains its current state. To enable or disable a category via PATCH, you must send an explicit `true` or `false`.
    - `export` BrowserTelemetryExportConfig — Forwarding of captured telemetry to an external destination. Independent of what is captured: export is off unless explicitly enabled here, even when an export destination is configured. In a PUT (full replace) an omitted export block resets export to off, the same as omitted categories turn off; in a PATCH an omitted field leaves the current setting unchanged.
      - `otlp` BrowserTelemetryOTLPExportConfig — OTLP/HTTP export settings.
        - `enabled` boolean — Whether captured telemetry is forwarded to the configured OTLP destination. Off by default. Has no effect (export stays inactive) when no export destination is configured.
  - `seq` integer, required — Process-monotonic sequence number of the last published event. Does not reset across configuration changes.
  - `dropped_events` integer — Cumulative number of buffered events a consumer missed because it fell behind the ring, summed across consumers and configuration changes. A rising count means the stream is being produced faster than it is being read; a steady one means nothing has been lost. Always present on images that report it; absent on an image predating the field, which is not the same as zero.
  - `applied_at` string, date-time — Wall-clock time at which the current configuration was applied. Omitted when telemetry is not configured.

## Other responses

- `404` — Not Found

## Changes

> 52 revisions in range; 4 could not be searched.

- **2026-07-22** `3edee2339d16` — 1 info
  - added the optional property `config/export` to the response with the `200` status
- **2026-06-03** `476130d5c598` — 1 warning, 5 info
  - removed the optional property `config/browser/api` from the response with the `200` status
  - added the optional property `config/browser/captcha` to the response with the `200` status
  - added the optional property `config/browser/connection` to the response with the `200` status
  - added the optional property `config/browser/control` to the response with the `200` status
  - …2 more
- **2026-05-22** `9a07b5ebd7b8` — 1 info
  - added the optional property `config/browser/api` to the response with the `200` status
- **2026-05-15** `14ce560a6f1d` — 1 info
  - endpoint added
- **2025-06-27** `f980a92ab23f` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/kernel/apis/kernel-images-api/changes/telemetry/get.md)

---

[API](https://skmtc.dev/kernel/apis/kernel-images-api.md) · [All operations](https://skmtc.dev/kernel/apis/kernel-images-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kernel/kernel-images-api/revisions/7a641fa15a85/schema)
