> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datris.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Health Check API

> Health check endpoints

The Health Check API provides endpoints to check the connectivity status of all backend services, and to list which destinations and vector stores are actually available in this deployment.

## Check Service Health

```
GET /api/v1/health/services
```

Returns the health status of all configured backend services.

### Response

```json theme={null}
{
  "postgres": {"status": "up", "message": "Connected"},
  "mongodb": {"status": "up", "message": "Connected"},
  "minio": {"status": "up", "message": "Connected"},
  "activemq": {"status": "up", "message": "Connected"},
  "kafka": {"status": "up", "message": "Connected"},
  "qdrant": {"status": "not_configured"},
  "weaviate": {"status": "not_configured"},
  "milvus": {"status": "not_configured"},
  "chroma": {"status": "not_configured"},
  "pgvector": {"status": "not_configured"}
}
```

### Status Values

| Status           | Description                                                      |
| ---------------- | ---------------------------------------------------------------- |
| `up`             | Service is reachable and responding                              |
| `down`           | Service is configured but not reachable (includes error message) |
| `not_configured` | No Vault secret configured for this service                      |

### Services Checked

**Core infrastructure** (always checked):

* `postgres` — PostgreSQL database
* `mongodb` — MongoDB database
* `minio` — MinIO object store
* `activemq` — ActiveMQ message queue
* `kafka` — Apache Kafka

**Vector databases** (checked only if configured via Vault secrets):

* `qdrant` — Qdrant vector database
* `weaviate` — Weaviate vector database
* `milvus` — Milvus vector database
* `chroma` — Chroma vector database
* `pgvector` — PostgreSQL with pgvector extension

### Example

```bash theme={null}
curl http://localhost:8080/api/v1/health/services
```

***

## List Available Destinations

```
GET /api/v1/destinations/available
```

Returns the structured destinations that are usable in this deployment, as a JSON array of destination names. This drives the pipeline wizard's and Assistant's destination pickers.

Two availability semantics are used on purpose:

* **Self-hosted destinations** (`mongodb`, `postgres`, `objectstore`) are **live-probed** — a destination is listed only if the service is actually reachable. The presence of a Vault secret alone is not enough, because the compose stack seeds secrets even when a service is disabled.
* **External SaaS destinations** (`snowflake`, `databricks`) have no local service to probe, so they are listed when any Platform secret contains a complete set of credentials for that destination. Credential secret names are user-chosen per pipeline, so every Platform secret is scanned rather than a fixed name looked up.

### Response

```json theme={null}
["mongodb", "postgres", "objectstore", "snowflake"]
```

### Example

```bash theme={null}
curl http://localhost:8080/api/v1/destinations/available
```

***

## List Available Vector Stores

```
GET /api/v1/vector-stores/available
```

Returns the vector stores that are live and reachable, as a JSON array of store keys. This drives the document-tap pipeline wizard's store picker and the Search tab's store dropdown, and is the recommended way to discover which stores can be searched via [`POST /api/v1/search/{store}`](/api-reference/search-api).

Each candidate store (`qdrant`, `weaviate`, `pgvector`, `milvus`, `chroma`) is actively probed using the same connectivity checks as `/health/services` — only stores whose status is `up` are returned. A store with a configured Vault secret but an unreachable service is excluded.

### Response

```json theme={null}
["pgvector", "qdrant"]
```

### Example

```bash theme={null}
curl http://localhost:8080/api/v1/vector-stores/available
```
