---
title: "GET /health/ready"
method: GET
path: "/health/ready"
---

# GET /health/ready

`GET /health/ready`

## Request

- Base URL: `https://api.greentally.ai/v1`
- URL: `https://api.greentally.ai/v1/health/ready`
- Auth: none declared

Database-aware readiness, for monitoring only (no auth). It pings the primary database
with a 2-second timeout and answers 200 when the ping succeeds, 503 when the database is
unreachable. The result is cached for a few seconds per instance and at most one ping
is in flight, so callers cannot load the database through it. It carries no detail
about the failure. Cloud Run's probes keep using /health, which never touches the
database, so a database blip never restarts an instance.

## Response `200`

The primary database answered.

- ReadinessResponse
  - `data` object, required
    - `status` 'ready' | 'unavailable', required
    - `timestamp` string, date-time, required: When the database was last checked (the cached result's time).

## Other responses

- `503`: The primary database did not answer within the timeout.

## Changes

- **2026-10-11** `74b67002e593`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/greentally/apis/esgai-api/changes/health/ready/get.md)

---

[API](https://skmtc.dev/greentally/apis/esgai-api.md) · [All operations](https://skmtc.dev/greentally/apis/esgai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/greentally/apis/esgai-api/revisions/7eab940f1dd0?raw)
