---
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.

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

## Changes

- **2026-07-31** `ea473885237b` — 2 info
  - added the optional property `degraded` to the response with the `200` status
  - added the optional property `providers/items/discovery_unsupported` to the response with the `200` status
- **2026-07-21** `5f68f5e8b687` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mozilla-ai/apis/otari/changes/v1/providers/health/get.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc.dev/mozilla-ai/apis/otari/revisions/80c117c36f36?raw)
