GLM-5.3 Flash
Connect to GLM-5.3 Flash through the OpenAI Chat Completions compatible API, including streaming usage, tool calls, and the thinking trace.
GLM-5.3 Flash uses HopBase's OpenAI Chat Completions compatible protocol. Use https://api.hop-base.com/v1 and set the model to glm-5.3-flash.
GLM-5.3 Flash was released and open-sourced by Zhipu on 2026-08-26 and is the first natively multimodal member of the GLM-5 series: a mixture-of-experts model with 320B total parameters and 18B active per token, a 1M context window, and up to 128K output tokens.
Model and specifications
| Item | Value |
|---|---|
| Model ID | glm-5.3-flash |
| Architecture | MoE, 320B total parameters, 18B active per token |
| Attention | Hybrid sparse plus linear attention: 3.01x less attention compute and a 4.44x smaller KV cache than GLM-5.3 |
| Context window | 1M tokens |
| Max output | 128K tokens |
| Input modalities | Text, image, video, file |
| Output | Text |
| Thinking | Always on; the trace is returned in reasoning_content |
Endpoint and Base URL
| Field | Value |
|---|---|
| API address / Base URL | https://api.hop-base.com/v1 |
| Endpoint | POST /v1/chat/completions |
| API Key | sk-your-key |
| Model | glm-5.3-flash |
| API format (CC Switch and other routing-capable clients only) | OpenAI Chat Completions (routing required) |
Group selection and billing
glm-5.3-flashis sold through the GLM 5.3 Flash 专线 (GLM 5.3 Flash dedicated line) group. When creating an API key under API Keys in the console, set the key's group to this one; only a key bound to it can call the model.- One key is bound to one group. Keys bound to other groups get a clear 404 when calling
glm-5.3-flash— create a new key on this group, or rebind an existing key in the console. - Rates take Zhipu's official list price for this model as their basis and are published on the pricing page; your own effective rate is shown in the signed-in model catalog.
glm-5.3keeps its own groups and is unaffected; see GLM-5.3.
Recommended parameters
Zhipu publishes these recommended values for this model:
| Parameter | Recommended | Notes |
|---|---|---|
temperature | 1 | |
top_p | 0.95 | |
reasoning_effort | max | Thinking is always on and cannot be disabled |
stream_options.include_usage | true | Required to receive usage in the final streaming chunk |
tool_stream | true | Recommended alongside streaming whenever the request carries tools |
curl
curl https://api.hop-base.com/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3-flash",
"temperature": 1,
"top_p": 0.95,
"reasoning_effort": "max",
"messages": [{"role": "user", "content": "Hello, introduce yourself"}]
}'Streaming and usage
Send "stream": true. To receive token counts, add stream_options.include_usage; the final chunk then carries a usage object. When the request also carries tools, set tool_stream: true so tool-call arguments stream incrementally instead of arriving in one block.
curl https://api.hop-base.com/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3-flash",
"stream": true,
"stream_options": {"include_usage": true},
"tool_stream": true,
"messages": [{"role": "user", "content": "Write a haiku about latency"}]
}'Tool calling
Function calling works over the standard OpenAI fields. Pass tools, read choices[].message.tool_calls from the reply, run the function, then send the result back as a tool message.
curl https://api.hop-base.com/v1/chat/completions \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3-flash",
"messages": [{"role": "user", "content": "What is the weather in Tokyo?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
}'Thinking output
The model always thinks; there is no switch to turn it off. The thinking trace is returned in reasoning_content alongside the answer in content, and in streaming mode it arrives as delta.reasoning_content. Render it separately, or drop it, but do not concatenate it into the answer. Size max_tokens for the answer and the trace together.
OpenAI SDK / Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.hop-base.com/v1",
api_key="sk-your-key",
)
resp = client.chat.completions.create(
model="glm-5.3-flash",
temperature=1,
top_p=0.95,
reasoning_effort="max",
messages=[{"role": "user", "content": "Explain where GLM-5.3 Flash works best"}],
)
print(resp.choices[0].message.content)
print(resp.usage)FAQ
- Calling
glm-5.3-flashreturns 404 model not found. The key is not on the GLM 5.3 Flash dedicated line group; create a new key on that group or rebind the existing one in the console. - Streaming returns no
usage. Add"stream_options": {"include_usage": true}; without it the final chunk carries no token counts. - Thinking cannot be disabled. This model always thinks. Use
reasoning_effortto pick the depth instead of trying to switch thinking off.