---
title: "Heartbeat"
method: POST
path: "/api/luria/sessions/{lease_id}/heartbeat"
tags: ["luria"]
---

# Heartbeat

`POST /api/luria/sessions/{lease_id}/heartbeat`

Called by luria-core inside the sandbox (process token) every ~60s.
`active=true` means a turn ran recently — it refreshes the idle clock.
Returns balance + state so the core can surface 「点数即将用尽」to the
conversation before the drain hits.

## Path parameters

- `lease_id` integer, required

## Headers

- `authorization` string, nullable

## Request body

- HeartbeatIn
  - `process_id` string, nullable
  - `active` boolean
  - `runtime_ready` boolean
  - `runtime_error` string, nullable
  - `execution_epoch` integer, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-25** `a73cec84f3f0` — 3 info
  - added the new optional request property `execution_epoch`
  - added the new optional request property `runtime_error`
  - added the new optional request property `runtime_ready`

[Change history](https://skmtc.dev/omicos/apis/omicos-server/changes/api/luria/sessions/:lease_id/heartbeat/post.md)

---

[API](https://skmtc.dev/omicos/apis/omicos-server.md) · [All operations](https://skmtc.dev/omicos/apis/omicos-server/llms.txt) · [OpenAPI document](https://skmtc.dev/omicos/apis/omicos-server/revisions/a73cec84f3f0?raw)
