---
title: "Whether the application is up and its database answers"
method: GET
path: "/api/health"
tags: ["Public"]
---

# Whether the application is up and its database answers

`GET /api/health`

## Request

- Base URL: `https://tre-app.com`
- URL: `https://tre-app.com/api/health`
- Auth: none required

Public: no session and no bearer; what an uptime monitor asks. `200 { status: "ok", db: "ok", commit }` when one database round-trip succeeds within three seconds — `commit` is the build the deployment runs, null outside a platform build. `503 SERVICE_UNAVAILABLE` (Database unreachable) with Retry-After when it does not; the same 503 when the rate limiter is unavailable, because every other route is refusing for that reason too. Never cached. 120 requests a minute per network address.

## Response `200`

Success

- HealthReport
  - `status` 'ok', required
  - `db` 'ok', required
  - `commit` string, nullable, required: The commit this deployment was built from; null outside a platform build.

## Other responses

- `400`: Invalid request
- `401`: Unauthenticated
- `403`: Forbidden: insufficient role or token scope; scope denials name the held scope and the operation
- `404`: Not found
- `409`: Conflict
- `429`: Rate limited
- `500`: Internal server error
- `503`: Temporarily unavailable

---

[API](https://skmtc.dev/tre-app/apis/tre-rest-api.md) · [All operations](https://skmtc.dev/tre-app/apis/tre-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tre-app/apis/tre-rest-api/revisions/26a7187a05fc?raw)
