---
title: "Provider Health"
method: GET
path: "/v1/providers/health"
tags: ["providers"]
---

# Provider Health

`GET /v1/providers/health`

Report every configured provider's reachability, with a last-checked time.

Reuses the per-provider model-discovery test path, so a provider is healthy
when its credentials can list models. Results are served from the discovery
cache (cheap enough to poll), so ``checked_at`` reflects when each provider
was actually dialed. Pass ``refresh=true`` to force a live re-dial of every
provider. Master-key gated because it describes the gateway's own providers.

A provider whose backend serves no model-listing endpoint cannot be verified
this way, but it is not unreachable either: it is reported with
``discovery_unsupported`` and counted under ``degraded`` rather than as a
reachability failure.

## Query parameters

- `refresh` boolean

## Response `200`

Successful Response

- ProviderHealthResponse — Provider connectivity across the whole gateway, for the health monitor. Carries per-provider results plus the ``healthy`` / ``total`` counts and the most recent ``checked_at`` so the overview page can render a summary tile without re-deriving them.
  - `checked_at` string, nullable — ISO 8601 time of the most recent per-provider check (null if none yet).
  - `degraded` integer — How many providers are not counted as reachable only because model discovery is unavailable for them. These may still serve requests.
  - `healthy` integer, required — How many providers are currently reachable.
  - `providers` ProviderHealthSchema[], required
    - `checked_at` string, nullable — ISO 8601 wall-clock time the provider's reachability was last checked (null if never).
    - `discovery_unsupported` boolean — True when the check failed only because this backend serves no model-listing endpoint. The provider may still handle requests; only model discovery is unavailable.
    - `error` string, nullable — Sanitized provider error when unreachable.
    - `instance` string, required
    - `model_count` integer, required — Number of models the last successful listing returned.
    - `ok` boolean, required — True when the provider's credentials could list models.
  - `total` integer, required — How many providers are configured.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.net/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/dc832629bd32/schema)
