---
title: "Heartbeat"
method: POST
path: "/robots/heartbeat"
tags: ["robots"]
---

# Heartbeat

`POST /robots/heartbeat`

## Request

- Base URL: `https://api.os3robotics.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.os3robotics.com/robots/heartbeat`
- Auth: HTTP bearer

## Request body

- Heartbeat: POST /robots/heartbeat body. `specs` omitted keeps the last reported ones; `endpoint_id`, `latency_ms` and `voice` each omitted keep the last reported one too (null clears it).
  - `specs` RobotSpecs: What the robot agent reports on its heartbeat (the registered identity, embodiment, action_space_id and the policy's camera_shapes, are the Robot's own fields).
    - `dof` integer, nullable
    - `cameras` object
    - `agent_version` string, nullable
    - `firmware_version` string, nullable
    - `rig` string, nullable
  - `endpoint_id` string, uuid, nullable
  - `latency_ms` number, nullable
  - `voice` VoiceHealth: The robot's voice fallback state at its heartbeat: the current rung of its degradation ladder, backend names and reasons, never audio or text.
    - `rung` 'full' | 'cascade' | 'local_only' | 'voice_paused' | 'audio_lost', required
    - `backend` string, nullable
    - `unhealthy_backends` string[]
    - `harness_dead` boolean
    - `reason` string, nullable

## Response `204`

Successful Response

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/os3robotics/apis/os3-api.md) - [All operations](https://skmtc.dev/os3robotics/apis/os3-api/llms.txt) - [OpenAPI document](https://skmtc.dev/os3robotics/apis/os3-api/revisions/af32cd4f14bb?raw)
