---
title: "Probe a connection's health"
method: GET
path: "/v1/connections/{id}/health"
tags: ["connections"]
---

# Probe a connection's health

`GET /v1/connections/{id}/health`

## Request

- Base URL: `https://data.thinair.co`
- URL: `https://data.thinair.co/v1/connections/{id}/health`
- Auth: API key in header `x-api-key`

Run a dialect-appropriate `SELECT 1` ping and best-effort version probe against the connection identified by `id` (name match first, id match second). Returns latency, server version, current database, and current schema. Costs 1 quota unit per call.

## Path parameters

- `id` string, required: Connection name or id (see `/v1/connections`).

## Response `200`

Probe completed (the connection may have reported `ok: false` for an auth or origin failure — still a 200; the body's `ok` is the success signal).

- ConnectionHealthResponse: Health-probe result for a single connection. Surfaces dialect, server version, current database/schema, and ping/total latency. Costs 1 quota unit per call.
  - `ok` boolean, required: True when the ping succeeded.
  - `db_type` 'postgres' | 'mysql' | 'mssql', required
  - `version` string, required
  - `current_database` string, nullable, required
  - `current_schema` string, nullable, required
  - `ping_ms` integer, required: Wall time of the `SELECT 1` ping in milliseconds.
  - `total_ms` integer, required: Wall time of the full probe (ping + version + schema lookup).
  - `connection` string, required: Resolved connection name (matches the row in `/v1/connections`).

## Other responses

- `401`: Authentication required.
- `404`: No connection matches `id` for this tenant.
- `429`: Quota exceeded for this tenant.
- `502`: Connection unreachable (origin refused / DNS / TLS / etc).
- `504`: Connection probe timed out.

---

[API](https://skmtc.dev/thinair/apis/thinair-data-api.md) · [All operations](https://skmtc.dev/thinair/apis/thinair-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinair/apis/thinair-data-api/revisions/8a2a2d1b2400?raw)
