---
title: "Health"
method: GET
path: "/api/health"
tags: ["health"]
---

# Health

`GET /api/health`

## Request

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

Unauthenticated liveness probe for Railway and the uptime monitor.

The failure branch answers with a fixed string rather than the driver's
exception text. A SQLAlchemy connection error spells out the
private-network DB host, port, role, and pool sizing, and nothing
authenticates this route. The operator still gets the full detail, at error
level in the service logs (and so in Sentry, via the logging integration).

Both branches keep answering 200. Railway's health check and the uptime
monitor read the status code, so a DB blip must not read as a dead
container and roll back a deploy. ``status`` is what separates them.

## Response `200`

Successful Response

- unknown

---

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