# GLM 5.3 API Cost: Always Thinking, 2.5x Cheaper per Answer Than 5.2

> Source: <https://dev.to/synthorai/glm-53-api-cost-always-thinking-25x-cheaper-per-answer-than-52-13jg>
> Published: 2026-09-15 15:22:14+00:00

[GLM 5.3](https://synthorai.io/models/glm-5-3/) costs the same $1.40 per million input tokens and $4.40 per million output as [GLM 5.2](https://synthorai.io/models/glm-5-2/), and it no longer lets you turn thinking off: every way of disabling it returns a 400 error, and the default effort is `max`. On 11 tasks with a checkable answer, run three times each, `max` was the only setting that got all 33 right, at $0.00468 per correct answer, 2.5x less than GLM 5.2 at `max` because GLM 5.3 reasons about half as much. `low` costs 63% less per correct answer and misses 5 of 33. [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) reached 31 of 33 at a tenth of the price. `reasoning_effort`, the parameter that sets how long a model thinks before answering, now decides accuracy as well as cost; we measured both builds against GLM 5.2 and [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) in one batch.

**TL;DR**

`thinking: disabled`, `reasoning_effort: none` and `medium` with error 1210; only `low`, `high` and `max` (the default) work.`json_schema`; `json_object` returned correct values 8 of 8 times.
A retrained GLM 5.2 at the same price, plus a smaller model at a tenth of it. GLM 5.3 "uses the same base model as GLM-5.2, with all improvements driven by post-training", per Z.ai's [guide](https://docs.z.ai/guides/llm/glm-5.3), and takes text only. [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) has "320B total parameters with 18B activated" (only 18B do work on each token, which is what makes it cheap) and accepts images, video and files. Both have a 1M-token context and 128K output. Prices from Z.ai's [pricing page](https://docs.z.ai/guides/overview/pricing), per million tokens:

| Model | Input | Cached input | Output | 
|---|---|---|---|
| [GLM 5.3](https://synthorai.io/models/glm-5-3/) | $1.40 | $0.26 | $4.40 | 
| [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) | $0.15 | $0.03 | $0.50 | 
| [GLM 5.2](https://synthorai.io/models/glm-5-2/) | $1.40 | $0.26 | $4.40 | 
| [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) | $0.30 peak | $0.006 peak | $1.20 peak | 

Z.ai's [model card](https://huggingface.co/zai-org/GLM-5.3) and [Flash guide](https://docs.z.ai/guides/llm/glm-5.3-flash) put the gain on agent and coding work:

| Benchmark | What it tests | GLM 5.2 | GLM 5.3 | GLM 5.3 Flash | 
|---|---|---|---|---|
| Terminal Bench 3.0 | agent tasks in a terminal | 4.6 | **28.3** | not listed | 
| DeepSWE v1.1 | fixing real repositories | 46.2 | **66.9** | 63.4 | 
| AutomationBench | workflow automation | 26.2 | 48.2 | **48.8** | 
| CyberGym | security vulnerability tasks | 77.2 | **84.5** | not listed | 
| HLE with tools | hard questions, tools allowed | 54.7 | **62.5** | not listed | 

What follows is what we could check ourselves: tasks with one verifiable answer, not agent benchmarks.

No. GLM 5.2 accepted `thinking: {"type": "disabled"}`. [GLM 5.3](https://synthorai.io/models/glm-5-3/) and [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) return HTTP 400 with error code 1210 ("this model always thinks, turning thinking off is not supported; use low, high or max") for `thinking: disabled`, `enable_thinking: false`, and `reasoning_effort` set to `none`, `minimal`, `medium` or `xhigh`. Leave `reasoning_effort` out and you get `max`. `thinking_budget`, a token cap on thinking that some providers honour, is accepted and ignored on GLM 5.3: every value from 0 to 1,024 produced about 101 reasoning tokens on the same question.

```
resp = client.chat.completions.create(
    model="glm-5.3",
    messages=[{"role": "user", "content": prompt}],
    reasoning_effort="high",   # "low" | "high" | "max"; omitted means "max"
    max_tokens=8192,           # GLM 5.3 Flash rejects anything above 131,072
)
reasoning_tokens = resp.usage.completion_tokens_details.reasoning_tokens  # billed as output
thinking_text = resp.choices[0].message.reasoning_content                # the thinking itself, as text
```

The old cheap path was not a good one anyway: with thinking off, [GLM 5.2](https://synthorai.io/models/glm-5-2/) answered 10 of our 33 tasks correctly, and [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) 22.

On GLM 5.3, only `max`; on GLM 5.3 Flash, none of them. We ran 11 tasks whose answer is a single number we can check (sums of primes, digit counts, grid paths, coin combinations, a rule applied 40 times, the remainder of 7 to the power 222 divided by 1000, a base conversion, a knapsack, and counting four-digit numbers under three constraints) three times each. Reasoning tokens are the hidden thinking written before the answer, billed as output; cost per correct answer is total spend divided by correct answers, at list price:

| Model | Effort | Correct | Reasoning tokens, median (max) | Cost per correct answer | 
|---|---|---|---|---|
| [GLM 5.3](https://synthorai.io/models/glm-5-3/) | `low` | 28/33 | 143 (1,826) | $0.00173 | 
| GLM 5.3 | `high` | 29/33 | 226 (1,950) | $0.00197 | 
| GLM 5.3 | `max` (default) | **33/33** | 538 (7,733) | $0.00468 | 
| [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) | `low` | 24/33 | 120 (467) | $0.00012 | 
| GLM 5.3 Flash | `high` | 29/33 | 196 (1,582) | $0.00021 | 
| GLM 5.3 Flash | `max` (default) | 31/33 | 419 (5,024) | $0.00040 | 
| [GLM 5.2](https://synthorai.io/models/glm-5-2/) | `max` | 33/33 | 1,129 (21,917) | $0.01173 | 
| [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) | `low` | 33/33 | 337 (6,797) | $0.00102 | 
| DeepSeek V4.1 Flash | `max` | 33/33 | 386 (10,769) | $0.00138 | 

The 2.5x against GLM 5.2 comes from reasoning volume: a median of 538 reasoning tokens against 1,129, and a longest run of 7,733 against 21,917. The lower settings save money by skipping checks. At `low`, GLM 5.3 answered the grid-path count as 216 twice (one blocked cell makes it 132) and missed the coin combinations, the knapsack and the base conversion once each. GLM 5.3 Flash at `low` failed the 40-step rule and the constrained count every time. DeepSeek V4.1 Flash, by contrast, scored 33 of 33 at every setting.

On GLM 5.3, keep the default for anything with arithmetic or several steps, and use `low` only where a wrong answer is cheap to catch. At `max`, GLM 5.3 costs 3.4x [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) per correct answer; GLM 5.3 Flash costs under a third of it while missing 2 of 33.

No, even with thinking forced on. We asked five questions about entities we made up, so the only right answer is "I do not know" (a share price for `Verantis Dynamics`, the melting point of `Oridium-7`, the winner of the `1987 Pan-Continental Robotics Prize`), at the default effort with a 16,384-token cap:

| Model | Declined | Invented an answer | Hit the cap, empty answer | Reasoning tokens | Cost per question | 
|---|---|---|---|---|---|
| [GLM 5.3](https://synthorai.io/models/glm-5-3/) | 5/5 | 0/5 | 0/5 | 230 to 542 | $0.0022 | 
| [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) | 5/5 | 0/5 | 0/5 | 238 to 625 | $0.0003 | 
| [GLM 5.2](https://synthorai.io/models/glm-5-2/) | 5/5 | 0/5 | 0/5 | 134 to 1,559 | $0.0035 | 
| [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) | 1/5 | 3/5 | 1/5 | 7,021 to 16,384 | $0.0139 | 

Both GLM 5.3 builds said they had no information after a few hundred reasoning tokens. DeepSeek V4.1 Flash thought for 7,000 to 16,000 tokens and then usually invented something (`Andrew Martin, the robot protagonist of Isaac Asimov's The Bicentennial Man, won`); in [its own study](https://synthorai.io/blog/deepseek-v4-1-flash-cost/) a day earlier, more runs hit the cap instead, but it rarely declined. For lookups that can legitimately come back empty, this is the biggest difference we measured between the two flash-tier models.

Not a strict one; use `json_object`. With `response_format` set to a strict `json_schema` for an invoice extraction, [GLM 5.3](https://synthorai.io/models/glm-5-3/) and [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) returned HTTP 200 and ignored the schema in 16 of 16 runs: the JSON came wrapped in a markdown code fence with keys the schema did not ask for (`invoice_date`, `reference`), so none parsed as the requested object. Z.ai's [API reference](https://docs.z.ai/api-reference/llm/chat-completion) lists only `text` and `json_object`; the trap is that the schema is accepted silently.

With `{"type": "json_object"}` and the fields named in the prompt, both builds returned every value right in 8 of 8 runs, as did [GLM 5.2](https://synthorai.io/models/glm-5-2/) and [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/). Since thinking stays on, extraction costs a median of 240 output tokens on GLM 5.3 and 140 on Flash, against 25 on V4.1 Flash with thinking off. Validate the result against your schema yourself.

It grows with pixel area and does not cap by 2048x2048, so large images cost more than on DeepSeek V4.1 Flash despite the lower rate. We sent generated PNGs to [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) ([GLM 5.3](https://synthorai.io/models/glm-5-3/) is text only) and subtracted the text-only prompt:

| Image | GLM 5.3 Flash tokens | Cost at $0.15/M | DeepSeek V4.1 Flash tokens | Cost at $0.30/M | 
|---|---|---|---|---|
| 512x512 | 363 | $0.000054 | 184 | $0.000055 | 
| 1024x1024 | 1,371 | $0.000206 | 652 | $0.000196 | 
| 2048x2048 | 5,478 | $0.000822 | 994 | $0.000298 | 

Above 512 pixels, GLM 5.3 Flash spends about one token per 766 pixels; `detail`, image content and file format did not change the count. The [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) numbers come from its study the day before. Downscale screenshots and document pages before sending: at 2048x2048, GLM 5.3 Flash costs 2.8x more per image.

Speed, and little of the plumbing. Streamed in the same window at `low`, [GLM 5.3](https://synthorai.io/models/glm-5-3/) generated 59 to 64 output tokens per second, [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) 70 to 82, [GLM 5.2](https://synthorai.io/models/glm-5-2/) 51 to 55, and [DeepSeek V4.1 Flash](https://synthorai.io/models/deepseek-v4-1-flash/) 124 to 161. In a two-turn function-calling loop every model made one call per turn. The three GLM builds count identical tokens on English, Chinese and Python text (737, 484 and 488), so token budgets carry over.

The repeated opening of a prompt is billed at the cached rate, counted in 64-token steps (a 1,153-token prompt read 1,024 from cache). Both builds accept prompts close to the 1M-token limit, although the Flash model card mentions 300,000 tokens: a 990,000-token prompt with one value hidden near its start returned that value (we did not test recall near the end), and one of about 1.07M tokens got a 400, `Prompt exceeds max length`, instead of being cut short. One upgrade break: GLM 5.3 Flash rejects `max_tokens` above 131,072.

[GLM 5.3](https://synthorai.io/models/glm-5-3/), [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) and [GLM 5.2](https://synthorai.io/models/glm-5-2/) are `glm-5.3`, `glm-5.3-flash` and `glm-5.2` on the gateway, at Z.ai's list prices, on `/v1/chat/completions` and `/v1/responses`. The 1210 error passes through unchanged, so a client still sending its GLM 5.2 off switch fails loudly instead of silently thinking at `max`. Reasoning text comes back in `reasoning_content`; images go to GLM 5.3 Flash as `image_url` content parts.

**Can you disable thinking on GLM 5.3?**

No. [GLM 5.3](https://synthorai.io/models/glm-5-3/) and [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) return a 400 with error 1210 for every off switch; only `low`, `high` and `max` are accepted, and `max` is the default. On our suite `low` cost 63% less per correct answer but got 28 of 33 right instead of 33.

**Is GLM 5.3 cheaper than GLM 5.2?**

Per token, no: both cost $1.40 input and $4.40 output. Per correct answer, yes: at `max`, [GLM 5.3](https://synthorai.io/models/glm-5-3/) cost $0.00468 against [GLM 5.2](https://synthorai.io/models/glm-5-2/)'s $0.01173, because it reasons about half as much.

**Can GLM 5.3 Flash replace GLM 5.3?**

Where an occasional wrong number gets caught downstream, yes, at a tenth of the price: [GLM 5.3 Flash](https://synthorai.io/models/glm-5-3-flash/) at `max` got 31 of 33 right at $0.00040 per correct answer, against 33 of 33 at $0.00468 on [GLM 5.3](https://synthorai.io/models/glm-5-3/). Avoid Flash at `low` for multi-step arithmetic, where it got 24 of 33.

Related: [GLM 5.2 reasoning effort](https://synthorai.io/blog/glm-52-coding-cost/), [GLM 5.2 tool calls](https://synthorai.io/blog/glm-5-2-tool-calls/), [DeepSeek V4.1 Flash cost](https://synthorai.io/blog/deepseek-v4-1-flash-cost/), [LLM thinking controls](https://synthorai.io/blog/llm-thinking-controls/), [LLM structured outputs](https://synthorai.io/blog/llm-structured-outputs/).
