---
title: "GET /diagnostics/capture"
method: GET
path: "/diagnostics/capture"
tags: ["system"]
---

# GET /diagnostics/capture

`GET /diagnostics/capture`

## Request

- The document declares no server URL.
- Auth: one of:
  - API key in query parameter `auth`
  - API key in header `Authorization`

## Response `200`

Current daemon-owned diagnostic capture state

- DiagnosticStatusEnvelope: Canonical success envelope: `{ "data": T, "ts": <unix millis i64> }`. `ts` is `chrono::Utc::now().timestamp_millis()`, set in the webserver handler via [`ApiEnvelope::now`] (the contract carries only the type + the clock helper, not a hard dependency on when the handler reads the clock). `rename_all = "camelCase"` is a no-op for the single-word fields here but is declared for forward-compat. IMPORTANT (utoipa v4): every concrete `ApiEnvelope<X>` that needs a named OpenAPI component is declared in the `#[aliases(...)]` block below. Add a new alias line whenever a new payload type needs enveloping. NEVER register the bare `ApiEnvelope` in `components(schemas(...))` — utoipa errors on a bare generic, and an un-aliased generic inlines an anonymous schema.
  - `data` DiagnosticStatusDto, required
    - `capture` DiagnosticCaptureStateDto, required
      - `captureId` string, nullable
      - `endReason` 'expired' | 'requested' | 'suspensionExpiryUnknown' | 'runtimeShutdown'
      - `lastCaptureId` string, nullable
      - `mode` 'standard' | 'detailed', required
      - `remainingMs` integer, required
      - `revision` string, required
      - `startedAtUtc` string, nullable
    - `closed` boolean, required
    - `correlationLimitedRecords` string, required
    - `counterScope` string, required
    - `engineVersion` string, required
    - `localFile` 'disabled' | 'ready' | 'unavailable', required
    - `observedRecords` string, required
    - `policyFilteredRecords` string, required
    - `runId` string, required
    - `schemaRejectedRecords` string, required
    - `sourceCommit` string, required
    - `sources` DiagnosticSourceCoverageDto[], required
      - `capability` 'supported' | 'partial' | 'unsupported' | 'unknown', required
      - `collection` 'enabled' | 'disabled' | 'unavailable' | 'notRegistered', required
      - `observedCount` string, required
      - `policyFilteredCount` string, required
      - `source` 'runtime' | 'connections' | 'addressStorage' | 'dnsDiscovery' | 'mdnsDiscovery' | 'pkarrDiscovery' | 'connectionPaths' | 'relayRecovery' | 'membershipUpdates' | 'sessions' | 'hostApplication' | 'hostShareExtension' | 'hostKeyboardExtension' | 'hostBackgroundService', required
  - `ts` integer, required: Server time when the response was built (unix epoch milliseconds).

## Other responses

- `503`: Local Engine diagnostics unavailable

## Changes

- **2026-10-15** `4c664cabd0c5`: 1 info
  - added the optional property `requestId` to the response with the `503` status
- **2026-09-12** `7c52b3ab791c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/uniclipboard/apis/uniclipboard-daemon-api/changes/diagnostics/capture/get.md)

---

[API](https://skmtc.dev/uniclipboard/apis/uniclipboard-daemon-api.md) - [All operations](https://skmtc.dev/uniclipboard/apis/uniclipboard-daemon-api/llms.txt) - [OpenAPI document](https://skmtc.dev/uniclipboard/apis/uniclipboard-daemon-api/revisions/48a01cf04e4c?raw)
