---
title: "Heartbeat"
method: POST
path: "/v1/workers/heartbeat"
tags: ["private-workers"]
---

# Heartbeat

`POST /v1/workers/heartbeat`

## Request

- Base URL: `https://api.cybret.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cybret.ai/v1/workers/heartbeat`
- Auth: none declared. Required headers: `X-Worker-Id`

## Headers

- `X-Worker-Id` string, required
- `Authorization` string, nullable

## Request body

- WorkerPosture: Non-secret runtime posture reported by the worker.
  - `agent_version` string, required
  - `platform` string
  - `outbound_only` boolean
  - `capabilities` string[]
  - `region` string
  - `data_residency` string

## Response `200`

Successful Response

- PrivateWorker: Tenant-bound private worker record safe for API responses.
  - `worker_id` string, required
  - `tenant_id` string, required
  - `display_name` string, required
  - `status` 'active' | 'revoked' | 'outdated' | 'disabled', required
  - `agent_version` string, required
  - `min_supported_version` string, required
  - `credential_version` integer, required
  - `posture` WorkerPosture, required: Non-secret runtime posture reported by the worker.
    - `agent_version` string, required
    - `platform` string
    - `outbound_only` boolean
    - `capabilities` string[]
    - `region` string
    - `data_residency` string
  - `last_seen_at` string, date-time, nullable
  - `revoked_at` string, date-time, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/cybret/apis/api-scanner-control-plane.md) · [All operations](https://skmtc.dev/cybret/apis/api-scanner-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/cybret/apis/api-scanner-control-plane/revisions/4c9b522246af?raw)
