# Model IDs

> How BigModel.io model IDs are written, how to list the models your API key can call, how OpenRouter-style names resolve, and what an unknown model returns.

Web version: https://bigmodel.io/docs/model-ids · Updated 2026-10-18

The `model` field in every request is a model ID such as `glm-5.3`. IDs are lowercase vendor names with their dots kept.

| Family | Example IDs |
|---|---|
| GLM (Zhipu) | `glm-5.3`, `glm-5.3-flash` |
| Kimi (Moonshot) | `kimi-k3` |
| DeepSeek | `deepseek-v4-pro`, `deepseek-v4-flash` |
| MiniMax | `minimax-m3` |

These are examples. The current list, with prices, is in the [model catalog](https://bigmodel.io/models). Copy the ID from the model page instead of typing it.

## IDs, not page URLs

A model page URL is readable but is not the ID. `glm-5.3` lives at `/models/glm-5-3`: the dot became a dash. Always send the ID shown on the page, with its dots and in lowercase (`deepseek-v4-pro`, not `DeepSeek-V4-Pro`).

## Your key's group decides what you can call

Every API key belongs to a group, and the group decides which models the key can use. A model in the catalog may not be available to every group. List the models your key can call:

```bash [cURL]
curl https://bigmodel.io/v1/models \
  -H "Authorization: Bearer $BIGMODEL_API_KEY"
```

```python [Python]
import os
from openai import OpenAI

client = OpenAI(base_url="https://bigmodel.io/v1", api_key=os.environ["BIGMODEL_API_KEY"])
for model in client.models.list():
    print(model.id)
```

```js [Node.js]
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://bigmodel.io/v1", apiKey: process.env.BIGMODEL_API_KEY });
for await (const model of client.models.list()) console.log(model.id);
```

The response is `{"object": "list", "data": [...]}` and each entry has an `id`. Add `?configured_only=true` to list only models configured for the group. Some Chat Completions only groups return an empty list even though they serve models; in that case use the IDs from the catalog and test with one request.

`GET /v1/models` needs a positive balance. With a zero balance it returns 403 `INSUFFICIENT_BALANCE`.

## OpenRouter-style names

You can also send OpenRouter IDs such as `z-ai/glm-5.3` or `deepseek/deepseek-v4-pro:nitro`. If the exact name is not served, the gateway tries it without the routing suffix and without the `provider/` prefix. `:free` is never removed. The full rules are in [OpenRouter compatibility](https://bigmodel.io/docs/openrouter-compat).

Plain IDs without `/` or `:` are never rewritten.

## Model names in Usage

Always send the catalog ID. The [Usage](https://bigmodel.io/usage) page may also show the provider's own name for the model that answered.

## What an unknown model returns

There is no "model not found" 404 for text models. A misspelled ID, or one your group does not serve, returns:

```json
{"error":{"type":"api_error","message":"No available accounts: no available accounts supporting model: glm-5.3x"}}
```

with HTTP 503. Check the ID first: retrying a wrong ID will not help. If the ID is correct and listed for your key, check [Status](https://bigmodel.io/status) and retry later.

## Verify the setup

Run the cURL list command, pick an ID from the output, and send one request with it. In [Usage](https://bigmodel.io/usage), the request appears with that model.

## Troubleshooting

**503 `api_error` "No available accounts: no available accounts supporting model: X".** The ID is misspelled (check dots, case and dashes) or not served to your key's group. Copy it from the model page, or create a key in a group that serves the model.

**403 `INSUFFICIENT_BALANCE` on `/v1/models`.** The model list needs a positive balance. Top up in [Billing](https://bigmodel.io/purchase).

**`/v1/models` returns an empty `data` array.** Some Chat Completions only groups do not publish a list. Use the catalog IDs and test with a request.

**A tool says the model is not recognized.** Tools such as Claude Code keep their own model lists. The request can still work; see the tool's guide, for example [Claude Code](https://bigmodel.io/docs/claude-code).

**A `:free` model fails.** `:free` is part of the ID and is never removed. Use the exact ID shown in the catalog.

## Related

- [OpenRouter compatibility](https://bigmodel.io/docs/openrouter-compat) for `provider/model` names and fallback lists.
- [Models API reference](https://bigmodel.io/docs/api-models).
- [Model catalog](https://bigmodel.io/models) and [Pricing](https://bigmodel.io/pricing).
