---
title: "Api Health"
method: GET
path: "/api/health"
---

# Api Health

`GET /api/health`

## Request

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

Cached public health probe. ALWAYS cheap — never blocks on outbound.

That claim is now structural rather than aspirational: a stale provider
cache triggers a background refresh that this request does not await, so
the response time is independent of third-party latency. Before
2026-08-19 the refresh WAS awaited, and its ~8s worst case exceeded
Render's 5s health-check budget.

Returns 503 until lifespan startup completes (CIK map loaded, billing
initialized, seed financials ready). Render health-check uses this
endpoint; pre-lifespan 200s caused routing to partially-initialized
workers for 5-15s post-deploy (S49 Performance P1).

## Response `200`

Successful Response

- HealthResponse: `GET /api/health` — cached public health probe. F4 backfill 2026-05-11. Returns 503 with {status: "starting", timestamp} pre-lifespan; 200 with {status, timestamp, checked_at, providers} once lifespan_ready=True. `status` is the discriminator (ok / degraded / starting).
  - `status` string, required
  - `timestamp` string, required
  - `checked_at` string, nullable
  - `providers` object, nullable
  - `release_sha` string, nullable
  - `asset_manifest_hash` string, nullable
  - `boot_time` string, nullable

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
