v3
latestOpenAPI 3.1.02026-07-311,4541,5202.3 MBApi Models Status Retrieve
GET/POST /api/models/<model_name>/status/ (Public API — auth optional) GET/POST /api/llm_models/models/<model_name>/status/ (Platform)
Per-model status resource for the exact logged model string in the URL path, over an absolute UTC [start_time, end_time) range, bucketed by time_tick (minute / hour / day). Returns four things (see ModelStatusResponseSerializer):
- data — per-provider uptime time series (per-attempt grain). Scoped to provider_id when that filter is supplied, else cross-provider.
- respan_uptime — request-grain "via Respan" uptime time series: one verdict per client call (UP if ANY retry/fallback attempt succeeded), so it reflects failover and sits at/above the per-provider line. Omitted for provider-filtered requests because it is inherently cross-provider.
- metrics_series — per-bucket performance metrics over the window (tps, ttft, latency, cache-hit %, + admin-only counts/cost), so the other metrics can be plotted over time just like uptime. Scoped to provider_id when that filter is supplied, else cross-provider.
- status — scalar model-wide summary over the window (uptime %, tps, ttft, latency, cache-hit %, catalog input list price). Omitted when a provider_id filter is supplied (it is cross-provider).
Redaction: public/regular callers get only normalized rates/percentages plus the catalog list price; staff/superadmins additionally get volume scalars (request/down counts, total cost) — those are withheld from the public so competitors can't infer platform traffic/revenue from counts × price.
The model is the URL path segment (<path:model_name>) so provider-prefixed identifiers (e.g. vertex_ai/gemini-1.5-pro) survive routing; the filters (provider_id, time_tick, range) stay query/body params.
Path parameters
Query parameters
- minute - minute
- hour - hour
- day - day
Headers
JWT access token or Respan API key