---
title: "Database Health Check"
method: GET
path: "/v1/graphs/{graph_id}/health"
tags: ["Graph Health"]
---

# Database Health Check

`GET /v1/graphs/{graph_id}/health`

## Request

- Base URL: `https://api.robosystems.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.robosystems.ai/v1/graphs/{graph_id}/health`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

## Path parameters

- `graph_id` string, required

## Response `200`

Successful Response

- DatabaseHealthResponse: Response model for database health check.
  - `graph_id` string, required: Graph database identifier
  - `status` string, required: Overall health status
  - `connection_status` string, required: Database connection status
  - `uptime_seconds` number, required: Database uptime in seconds
  - `last_query_time` string, nullable: Timestamp of last query execution
  - `query_count_24h` integer, required: Number of queries executed in last 24 hours
  - `avg_query_time_ms` number, required: Average query execution time in milliseconds
  - `error_rate_24h` number, required: Error rate in last 24 hours (percentage)
  - `memory_usage_mb` number, nullable: Instance memory in use, MB. Only populated for dedicated single-tenant instances; null on shared repositories and packed tiers.
  - `memory_usage_percent` number, nullable: Instance memory in use, percent. Expect high values during materialization — the engine deliberately boosts to near the whole instance while rebuilding. Read `resource_status` rather than this number alone. Dedicated instances only.
  - `cpu_usage_percent` number, nullable: Instance CPU in use, percent. Dedicated single-tenant instances only.
  - `resource_status` string, nullable: Interpreted instance load: 'idle' (headroom), 'busy' (working normally — typical while materializing), 'constrained' (sustained pressure worth acting on). Null when resource metrics are not exposed.
  - `storage_usage_mb` number, nullable: Storage usage in MB
  - `alerts` string[]: Active alerts or warnings
  - `is_stale` boolean: Whether the graph has staged changes not yet materialized
  - `stale_reason` string, nullable: Reason the graph was marked stale (e.g. 'file_deleted: data.parquet')
  - `stale_since` string, nullable: ISO timestamp when the graph became stale
  - `last_materialized_at` string, nullable: ISO timestamp of the last successful materialization
  - `hours_since_materialization` number, nullable: Hours elapsed since last materialization

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Access denied
- `404`: Resource not found
- `422`: Validation Error
- `429`: Rate limit exceeded
- `500`: Internal server error

---

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