---
title: "Submit one anonymous allowlisted client diagnostic event"
method: POST
path: "/client-diagnostic-events/v1"
tags: ["Diagnostics"]
---

# Submit one anonymous allowlisted client diagnostic event

`POST /client-diagnostic-events/v1`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/client-diagnostic-events/v1`
- Auth: none required

Best-effort unauthenticated ingestion for aggregate setup-funnel counters. Accepts only frozen enum/coarse-version fields, stores no raw event or caller identity, and always returns an empty 204 on success.

## Request body

- ClientDiagnosticEvent
  - `event_id` string, uuid, required: Fresh random UUID v4 used only for 24-hour deduplication.
  - `event_at` string, date-time, required
  - `schema_version` 1, required
  - `flow_version` 'run402.buzz-doctor.v1', required
  - `event` 'preflight_started' | 'preflight_passed' | 'preflight_blocked', required
  - `check_name` 'session_shell' | 'node_runtime' | 'run402_cli' | 'buzz_cli' | 'buzz_agent_target' | 'run402_api' | 'run402_console' | 'buzz_relay' | 'wallet_profile', nullable, required
  - `code` 'BUZZ_PREFLIGHT_SHELL_UNAVAILABLE' | 'BUZZ_PREFLIGHT_NODE_UNAVAILABLE' | 'BUZZ_PREFLIGHT_NODE_INCOMPATIBLE' | 'BUZZ_PREFLIGHT_RUN402_UNAVAILABLE' | 'BUZZ_PREFLIGHT_RUN402_INCOMPATIBLE' | 'BUZZ_PREFLIGHT_RUN402_UPDATE_AVAILABLE' | 'BUZZ_PREFLIGHT_BUZZ_CLI_UNAVAILABLE' | 'BUZZ_PREFLIGHT_BUZZ_CLI_INCOMPATIBLE' | 'BUZZ_AGENT_TARGET_REQUIRED' | 'BUZZ_AGENT_TARGET_UNVERIFIED' | 'BUZZ_AGENT_TARGET_MISMATCH' | 'BUZZ_PREFLIGHT_API_UNREACHABLE' | 'BUZZ_PREFLIGHT_CONSOLE_UNREACHABLE' | 'BUZZ_PREFLIGHT_RELAY_UNSAFE' | 'BUZZ_PREFLIGHT_RELAY_UNREACHABLE' | 'BUZZ_PREFLIGHT_WALLET_PROFILE_REQUIRED' | 'BUZZ_PREFLIGHT_WALLET_PROFILE_NOT_FOUND' | 'BUZZ_PREFLIGHT_WALLET_PROFILE_MISMATCH' | 'null', nullable, required
  - `os_family` 'macos' | 'linux' | 'windows' | 'other', required
  - `node_major` integer, required
  - `run402_major` integer, required
  - `run402_minor` integer, required
  - `buzz_fixture_id` 'buzz-cli-v0.5.2-capabilities', required
  - `install_context` 'project_local' | 'user_global_npm' | 'ephemeral_exec' | 'managed_buzz_sidecar' | 'custom_path' | 'unknown', required

## Response `204`

Event accepted into aggregate counters

## Other responses

- `400`: Event rejected by the strict allowlist
- `429`: Anonymous IP rate limit exceeded

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
