---
title: "Scheduler Health"
method: GET
path: "/v1/health/beat"
tags: ["Health"]
---

# Scheduler Health

`GET /v1/health/beat`

## Request

- Base URL: `https://api.mixpeek.com`
- URL: `https://api.mixpeek.com/v1/health/beat`
- Auth: none required

Check that this plane's work scheduler is running.

Reads the scheduler's `last_tick` from `work_schedules`. The scheduler
writes it each time it fires an entry, and the schedule has several
every-minute entries, so a heartbeat older than 5 minutes means it stopped.
The response keeps the fields this route has always returned
(`beat_running`, `last_heartbeat`, `age_seconds`).

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error
- `503`: Service Unavailable

## Changes

- **2026-10-09** `61a175e8eb9a`: 3 info
  - added the non-success response with the status `422`
  - added the non-success response with the status `429`
  - added the non-success response with the status `503`

[Operation history](https://skmtc.dev/mixpeek/apis/mixpeek-api/changes/v1/health/beat/get.md)

---

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