---
title: "Healthz"
method: GET
path: "/healthz"
---

# Healthz

`GET /healthz`

## Request

- Base URL: `https://api.tryardent.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tryardent.com/healthz`
- Auth: none declared

Process liveness — wired to k8s livenessProbe.

Returns 200 while the Python process is alive. Has no dependency check by
design: restarting a pod can't fix a Supabase outage, and the thrashing
only deepens an incident. See ARD-728 and `app/health.py` for context.

Declared `async` deliberately (ARD-2136). A sync `def` endpoint is
dispatched to Starlette's threadpool, which is the same pool
`check_supabase_ready` occupies via `asyncio.to_thread` on every 5s
readiness probe. Liveness then queues behind dependency work it is
documented not to depend on, times out, and the pod is killed anyway —
exactly the thrashing ARD-728 set out to prevent. Answering on the event
loop removes that coupling.

## Response `200`

Successful Response

- object

---

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