Migrating from GLM-5.2 to GLM-5.3
GLM-5.2 (zai/glm-5.2) retires at 5:00 PM AEDT on Tuesday 10 November 2026.
After that, any request that names it returns an error. Its replacement,
GLM-5.3 (zai/glm-5.3), is available now.
GLM-5.3 is Z.ai’s post-training refresh of GLM-5.2. The model architecture is the same, and it is tuned further for long-horizon agentic work, coding and tool use. It runs on the same OpenAI-compatible endpoint, so your API key, SDK and base URL stay as they are.
Most integrations need two changes: the model name and, if you set it, the reasoning effort. Read the reasoning section before switching, because GLM-5.3 handles reasoning differently from GLM-5.2.
1. Change the model name
Section titled “1. Change the model name”| Replace | With |
|---|---|
zai/glm-5.2 |
zai/glm-5.3 |
response = client.chat.completions.create( model="zai/glm-5.3", # was "zai/glm-5.2" messages=[{"role": "user", "content": "Hello"}],)Check the places a model name tends to hide, as well as your application code:
- Coding tools and agent frameworks. A provider entry such as
resetdata/zai/glm-5.2in an OpenCode configuration file needs updating too (see Coding tools). - Environment variables and saved configuration, for example a
MODELorANTHROPIC_MODELvariable. - Scheduled jobs and batch scripts that run less often than your main application, and so are the most likely to break unnoticed after the retirement.
2. Reasoning cannot be turned off
Section titled “2. Reasoning cannot be turned off”GLM-5.2 let you switch reasoning off. GLM-5.3 always reasons: Z.ai’s model does not offer a non-thinking mode.
If you currently disable reasoning on GLM-5.2 with any of these:
reasoning_effort: "none"reasoning_effort: "minimal"thinking: {"type": "disabled"}
then GLM-5.3 runs at its highest effort, max, instead. That is the
opposite of what you asked for: responses are slower and use more output tokens,
which are billed.
Send reasoning_effort: "low" to get the lightest reasoning GLM-5.3 offers.
response = client.chat.completions.create( model="zai/glm-5.3", messages=messages, reasoning_effort="low", # was "none" on GLM-5.2)3. Check your reasoning effort level
Section titled “3. Check your reasoning effort level”GLM-5.3 has three native levels: low, high and max. GLM-5.2’s
levels were mapped differently, so the same value can now do something
different.
| If you send today | GLM-5.2 ran at | GLM-5.3 runs at | To keep similar behaviour |
|---|---|---|---|
none, minimal, or thinking disabled |
no reasoning | max |
send low |
low |
high |
low |
send high |
medium |
high |
max |
send high |
high |
high |
high |
no change |
xhigh or max |
max |
max |
no change |
| nothing (field omitted) | max |
high |
send max for the same depth |
Two of these are easy to miss:
mediumgets heavier. On GLM-5.2 it ran ashigh. On GLM-5.3 it runs asmax. If you chosemediumas a middle setting, sendhigh.- Omitting the field gets lighter. GLM-5.2 reasoned at
maxby default. GLM-5.3 useshigh. If you relied on the default for hard problems, sendmaxexplicitly.
These mappings follow Z.ai’s own documentation for each model. You can confirm them from the API:
curl -s "https://api.resetdata.ai/api/v1/models/detail?slug=zai/glm-5.3" \ -H "Authorization: Bearer $RESETDATA_API_KEY" \ | jq '.default_parameters | {reasoning_effort_levels, reasoning_effort_default}'4. Check prompt length and price
Section titled “4. Check prompt length and price”GLM-5.3 has a smaller maximum context window than GLM-5.2. If you send very
long prompts or run long agentic sessions, check the current limit before you
switch; a request above it is rejected. The model detail call above returns it
as context_length, and the
catalog shows it alongside pricing.
GLM-5.3 is also priced differently. Current rates are on its page in the catalog.
5. Test before you cut over
Section titled “5. Test before you cut over”Run a representative sample of your prompts and tool calls against
zai/glm-5.3 before switching production traffic.
Your first requests may be slower than you are used to. The prompt cache is held per model, so everything starts uncached on GLM-5.3. Once your repeated prompt prefixes are cached again, latency and input cost settle. Keep your reasoning effort fixed while you compare: on these models the level is written into the start of the prompt, so changing it between requests also misses the cache.
For a general checklist when moving between any two models, see Switching models safely.
What doesn’t change
Section titled “What doesn’t change”- Your API keys, workspace and wallet balance.
- The endpoint (
/api/v1/chat/completions) and request format. - Supported request parameters, including tool calling (
toolsandtool_choice) and structured output (response_format). - The maximum length of a single response (
max_completion_tokens). - Hosting: GLM-5.3 is served from Australia, as GLM-5.2 is.
Questions, or need help validating your prompts? Contact support@resetdata.com.au.