# Get model runtime status

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

Get request counts, latency, error rates, and health for the current user’s models over the last hour.

```text
GET https://billing.moi.matrixorigin.cn/api/v1/taas/dashboard/model-status
```

## Before you begin

Prepare a personal access token. For creation and management, see [Manage personal access tokens](../../../../../guides/billing/credentials.md#personal-access-token).

Results are scoped to data accessible to the current user.

## Query parameters

Replace `$MOI_PERSONAL_ACCESS_TOKEN` in the example with your personal access token.

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} Request example

```bash
curl --get "https://billing.moi.matrixorigin.cn/api/v1/taas/dashboard/model-status" \
  -H "X-API-Key: $MOI_PERSONAL_ACCESS_TOKEN" \
  --data-urlencode "model_status_sort=requests1h" \
  --data-urlencode "model_status_limit=8"
```

:::::
:::::{tab-item} Parameters

::::{div} mo-api-parameter-table

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `model_status_sort` | string | No | Descending sort: `requests1h`, `latency`, or `errorRate`; defaults to `requests1h`. |
| `model_status_limit` | integer | No | Maximum models returned; defaults to 8, capped at 50. |
| `model_type` | string | No | Model type. |
| `requested_model` | string | No | Model name submitted in the inference request. |
| `status` | string | No | Call status, such as `success` or `failed`. |
| `error_type` | string | No | Call error category. |
| `caller_ip` | string | No | Caller IP address. |
| `token_key_id` | string | No | TaaS local token key ID. |
| `token_key_ids` | string | No | TaaS local key IDs; repeat the parameter or comma-separate values. |
| `credential_type` | string | Required with `credential_id` | Credential type: `taas_token_key`, `personal_access_token`, or `service_account_api_key`; requires `credential_id`. |
| `credential_id` | string | Required with `credential_type` | Credential object ID; requires `credential_type`. |
| `billing_event_id` | string | No | Billing usage-event ID. |
| `billing_record_id` | string | No | Billing record ID. |
| `pricing_mode` | string | No | Pricing mode. |
| `settlement_method` | string | No | Settlement method: genesis or `ai_service`. |
| `enterprise_plan_id` | string | No | Enterprise plan ID. |
| `enterprise_contract_no` | string | No | Enterprise contract number. |
| `enterprise_plan_model_id` | string | No | Enterprise plan model ID. |
| `response_id` | string | No | Responses response ID. |
| `conversation_id` | string | No | Conversation ID. |
| `ids` | string | No | Usage log IDs; repeat the parameter or comma-separate values. |
| `usage_ids` | string | No | Alias for ids; values are combined. |
| `provider_id` | string | No | Provider ID; results remain scoped to the current user. |

::::

:::::
::::::
:::::::

## Successful response

Returns HTTP `200` with model metrics and health for the past hour.

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} Response example

```json
{
  "model_status": [
    {
      "model_id": "model_example",
      "model_name": "Example Chat",
      "latency_ms": 120,
      "avg_latency_ms": 120,
      "error_rate": 0,
      "recent_1h_requests": 2,
      "requests_1h": 2,
      "health_status": "healthy"
    }
  ],
  "model_health": [
    {
      "model_id": "model_example",
      "model_name": "Example Chat",
      "latency_ms": 120,
      "avg_latency_ms": 120,
      "error_rate": 0,
      "recent_1h_requests": 2,
      "requests_1h": 2,
      "health_status": "healthy"
    }
  ],
  "model_status_sort": "requests1h",
  "model_status_limit": 8
}
```

:::::
:::::{tab-item} Fields

| Field | Type | Description |
| --- | --- | --- |
| `model_status` | array of object | Model status entries. |
| `model_status[].model_id` | string | Catalog model object ID. |
| `model_status[].model_name` | string | Model display name. |
| `model_status[].latency_ms` | integer | Average call `latency` over the last `hour`, in milliseconds. |
| `model_status[].avg_latency_ms` | integer | Alias of `latency_ms`. |
| `model_status[].error_rate` | number | Failure ratio over the last `hour`, between 0 and 1. |
| `model_status[].recent_1h_requests` | integer | Request count over the last `hour`. |
| `model_status[].requests_1h` | integer | Alias of `recent_1h_requests`. |
| `model_status[].health_status` | string | Latest recorded health status; `unknown` when unavailable. |
| `model_health` | array of object | Alias of `model_status`. |
| `model_health[].model_id` | string | Catalog model object ID. |
| `model_health[].model_name` | string | Model display name. |
| `model_health[].latency_ms` | integer | Average call `latency` over the last `hour`, in milliseconds. |
| `model_health[].avg_latency_ms` | integer | Alias of `latency_ms`. |
| `model_health[].error_rate` | number | Failure ratio over the last `hour`, between 0 and 1. |
| `model_health[].recent_1h_requests` | integer | Request count over the last `hour`. |
| `model_health[].requests_1h` | integer | Alias of `recent_1h_requests`. |
| `model_health[].health_status` | string | Latest recorded health status; `unknown` when unavailable. |
| `model_status_sort` | string | Effective sort order. |
| `model_status_limit` | integer | Effective maximum count. |

In field paths, `[]` denotes each array item.

:::::
::::::
:::::::

Filters other than sort and limit apply to usage metrics. The model list contains enabled models in scope; a model with no matching calls can still appear with zero requests.
