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.

On this page
  1. IDs, not page URLs
  2. Your key's group decides what you can call
  3. OpenRouter-style names
  4. Model names in Usage
  5. What an unknown model returns
  6. Verify the setup
  7. Troubleshooting
  8. Related

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

cURL
curl https://bigmodel.io/v1/models \
  -H "Authorization: Bearer $BIGMODEL_API_KEY"
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)
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.

Plain IDs without / or : are never rewritten.

#Model names in Usage

Always send the catalog ID. The 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 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, 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.

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

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

Updated · View as Markdown