Live provider health
Alpha
GET
https://api.voxrouter.ai/v1/statusReport the current state of each provider: whether it is `available`, `degraded` (half-open circuit-breaker probe in flight), or `unavailable` (circuit-breaker open, or API key not configured on this deployment). Safe to poll — cheap to serve (no upstream calls, just in-memory breaker state + env-key presence). Breaker state is per-process in-memory. Multi-replica deployments expose each replica's independent view; a client polling through a load balancer may observe flapping, which is a true signal of "some replicas see this provider as failing."
bash
curl https://api.voxrouter.ai/v1/status \
-H "Authorization: Bearer $VOXROUTER_API_KEY"Headers
AuthorizationstringRequiredBearer token. Send as
Authorization: Bearer pk_....Response
Per-provider health snapshot.
json
{
"providers": [
{
"id": "string",
"state": "available",
"reason": "missing_api_key"
}
]
}providersobject[]RequiredErrors
Non-2xx responses return a JSON body with a machine-readable error code and an optional details string.
| Status | Meaning |
|---|---|
| 401 | Missing or invalid API key. |
| 429 | Per-key rate limit or per-key concurrency limit exceeded. The `code` field on the body distinguishes the two (`rate_limit_exceeded` vs `concurrency_limit_exceeded`). `Retry-After` is seconds-from-now: a hard value until the rate-limit window resets, or a soft `1` hint for concurrency (slots free on request completion). |
| 500 | Unexpected server error. |