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

ItemValue
Model IDglm-5.3-flash
ArchitectureMoE, 320B total parameters, 18B active per token
AttentionHybrid sparse plus linear attention: 3.01x less attention compute and a 4.44x smaller KV cache than GLM-5.3
Context window1M tokens
Max output128K tokens
Input modalitiesText, image, video, file
OutputText
ThinkingAlways on; the trace is returned in reasoning_content

Endpoint and Base URL

FieldValue
API address / Base URLhttps://api.hop-base.com/v1
EndpointPOST /v1/chat/completions
API Keysk-your-key
Modelglm-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-flash is 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.3 keeps its own groups and is unaffected; see GLM-5.3.

Zhipu publishes these recommended values for this model:

ParameterRecommendedNotes
temperature1
top_p0.95
reasoning_effortmaxThinking is always on and cannot be disabled
stream_options.include_usagetrueRequired to receive usage in the final streaming chunk
tool_streamtrueRecommended 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-flash returns 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_effort to pick the depth instead of trying to switch thinking off.

On this page