GLM 5.3 is Z.ai's flagship coding and agentic model, released on August 14, 2026. It runs on the same base model as GLM 5.2, with the gains coming from extended post-training rather than a new pretraining run: Z.ai reports a 50% improvement in coding over GLM 5.2 on its own Code Bench, along with state-of-the-art results among open-source models on Terminal Bench 3.0 and Agents' Last Exam.
GLM 5.3 is live on EmpirioLabs today through an OpenAI-compatible API, with text input and output, a 1M token context, up to 128K output tokens, function calling, JSON mode structured output, built-in web search, and streaming. Try it in the playground or call it from any OpenAI-compatible client. The full spec and current rates live on the GLM 5.3 model page and the API docs.
Pricing
Billing is usage based: input and output tokens are metered per token, and each built-in web search adds a small per-call fee that applies only when a search actually runs. There is no separate cache tier. Current per-token rates always live on the model page and the pricing page, which stay in sync with what you are charged.
Quickstart
Point any OpenAI SDK at the EmpirioLabs base URL and pass glm-5-3 as the model:
from openai import OpenAI
client = OpenAI(
base_url="https://api.empiriolabs.ai/v1",
api_key="YOUR_EMPIRIOLABS_API_KEY",
)
resp = client.chat.completions.create(
model="glm-5-3",
messages=[
{"role": "user", "content": "Find the race condition in this worker pool and propose a fix."},
],
reasoning_effort="max",
)
print(resp.choices[0].message.content)
The same model id works on /v1/responses, the Anthropic-shaped /v1/messages, and the Google-compatible /v1beta/models/glm-5-3:generateContent route. Alternate ids glm-5.3, zai/glm-5.3, and zhipu/glm-5.3 resolve to the same model.
Reasoning effort
GLM 5.3 exposes a native reasoning_effort control with three levels: low for lightweight reasoning, high for enhanced reasoning, and max for deep reasoning. The default is max, which is what Z.ai recommends for complex coding and long-horizon agent work. Drop to low for short, latency-sensitive turns.
Web search and tools
Set tool_web_search to true to let the model search the web before answering, and narrow the results with search_recency_filter, search_domain_filter, and count. Function calling uses the standard OpenAI tools array, and tool_stream streams tool-call arguments as they are produced.
Things worth knowing before your first call
- Reasoning cannot be turned off, so it is always part of your output bill. Unlike GLM 5.2, this model has no thinking-off mode, and
reasoning_effortaccepts onlylow,high, andmax. A request that asks for a different level, or for thinking to be disabled, is served at the nearest supported level rather than failing, so code written for GLM 5.2 keeps working. Reasoning tokens bill as output tokens, and atmaxeven a one-word answer can spend most of its output budget thinking, so sendlowexplicitly for trivial calls. - Structured output is JSON mode, not schema enforcement. Use
response_formatwith{"type": "json_object"}and describe the fields you want in the prompt. Supplying a JSON Schema is accepted but not enforced, so validate the result on your side rather than assuming the shape. - It is text only. Images, video, and file parts are rejected. Use a vision model such as GLM 4.6V for multimodal input.
Where to go next
Open the playground to try GLM 5.3 without writing code, read the API reference for the full parameter list, or browse the model catalog to compare it with the rest of the lineup.



