Skip to content

Liveness + dependency health probe

GET
/v1/health

Is the API process up and can it reach its dependencies. 200 when Postgres and Redis both answer, 503 with the same body shape when either does not; each dependency reports ok, the probe latency, and the error text when it failed. No key, no rate limit, not logged — made for uptime probes. It says nothing about how fresh the data is: that is GET /v1/health/coverage.

Every dependency answered.

Media type application/json
object
status
required

ok with a 200; degraded with a 503.

string
Allowed values: ok degraded
service
required
string
Allowed values: igregulator-api
checks
required

One entry per dependency. The keys (postgres, redis) are stable; new dependencies may be added.

object
postgres
required
object
ok
required
boolean
latency_ms

How long the probe took. Absent when it threw.

integer
error

The driver’s error message. Only when the probe threw.

string
redis
required
object
ok
required
boolean
latency_ms

How long the probe took. Absent when it threw.

integer
error

The driver’s error message. Only when the probe threw.

string
key
additional properties
object
ok
required
boolean
latency_ms

How long the probe took. Absent when it threw.

integer
error

The driver’s error message. Only when the probe threw.

string
timestamp
required

When the probe ran.

string format: date-time

Example

{
"status": "ok",
"service": "igregulator-api",
"checks": {
"postgres": {
"ok": true,
"latency_ms": 1
},
"redis": {
"ok": true,
"latency_ms": 1
}
},
"timestamp": "2026-10-08T00:56:22.662Z"
}

At least one dependency did not answer.

Media type application/json
object
status
required

ok with a 200; degraded with a 503.

string
Allowed values: ok degraded
service
required
string
Allowed values: igregulator-api
checks
required

One entry per dependency. The keys (postgres, redis) are stable; new dependencies may be added.

object
postgres
required
object
ok
required
boolean
latency_ms

How long the probe took. Absent when it threw.

integer
error

The driver’s error message. Only when the probe threw.

string
redis
required
object
ok
required
boolean
latency_ms

How long the probe took. Absent when it threw.

integer
error

The driver’s error message. Only when the probe threw.

string
key
additional properties
object
ok
required
boolean
latency_ms

How long the probe took. Absent when it threw.

integer
error

The driver’s error message. Only when the probe threw.

string
timestamp
required

When the probe ran.

string format: date-time

Example

{
"status": "degraded",
"service": "igregulator-api",
"checks": {
"postgres": {
"ok": true,
"latency_ms": 2
},
"redis": {
"ok": false,
"error": "Connection is closed."
}
},
"timestamp": "2026-10-08T00:56:22.662Z"
}