GLM-5.3 is Z.AI's large-scale reasoning model for complex software engineering and long-horizon agent work.
- Input
- text $1.4/M
- Output
- text $4.4/M
- Cache read
- $0.26/M
- Context
- 1M
- vs GPT-4o
- ~72% cheaper
Benchmarks
Vendor-published: Alibaba (Qwen) Anthropic DeepSeek Google Moonshot OpenAI Tencent Z.ai
Price in context
Where the price sits among 65 comparable models
The bar shows how this model’s price compares with every other model of the same kind on Synthorai. The cheapest and the most expensive are named at each end. These are base rates; batch, region and cache-write discounts are on the pricing page.
Specs & limits
Tokens
| Context window (vendor spec) | 1,000,000 |
|---|---|
| Max output (vendor spec) | 131,072 |
Prompt caching
| How it caches | automatic |
|---|
Thinking
| Vendor control | reasoning_effort |
|---|---|
| Accepted values | low · high · max |
| Default | max applied when the request sets nothing |
| Can be turned off | No |
| Thinking behaviour | No documented switch turns thinking off, unlike the earlier GLM-5 releases, so the output budget must allow for a reasoning trace on every call. A separate clear_thinking flag defaults to false and decides whether prior turns' traces are cleared; the model card tells chat deployments to pass it explicitly. |
| Parameter | reasoning_effort |
| Values | minimal · low · medium · high the gateway's parameter surface - the vendor mapping above applies |
Model
| Modalities | text → text |
|---|---|
| Parameters | 753B total MoE |
- Large-scale reasoning model for complex software engineering and long-horizon agent tasks
- keeps the 1M-token context window of GLM-5.2 and improves on it in coding and in the balance between performance and token efficiency
One prompt, measured through the gateway
GLM-5.3 passed · 3 sentences
When we enabled reasoning, the model began generating an extensive internal chain-of-thought—thousands of hidden "thinking" tokens the user never sees—before writing any part of the actual answer. Those invisible tokens are billed at output rates, which run several times the price of input tokens, so the billed volume per query jumped even though query volume and per-token pricing stayed the same. The good news is this is a controllable lever, not a rate increase: capping reasoning effort and routing only complex queries to reasoning mode should bring a large share of the added cost back down.
out 681 tok (+562 thinking) latency 18.4 s
Instruction following (exactly three sentences - countable), audience shaping (CFO register), and the hidden-thinking billing gap the token meters below expose.
GLM-5.3 passed · 8/8 cases
**Fixed:** ```python def longest_run(xs): if not xs: return 0 best = 1 cur = 1 for i in range(1, len(xs)): if xs[i] == xs[i - 1]: cur += 1 best = max(best, cur) else: cur = 1 return best ``` **The bug:** The function suffers from a unit error — it counts adjacent equal *pairs* rather than *items* in a run. `cur` is seeded at 0, gains 1 per match, and resets to 0 on a mismatch, so a run of k equal elements can only ever drive `cur` to k−1 (a run of k items contains exactly k−1 neighboring pairs), and `best`, also starting at 0, inherits that shortfall. That's why a single-element input — a run of length 1 containing zero pairs — returns 0 instead of 1, and why a run reaching the last index comes back one short (e.g. […]
out 9934 tok (+9438 thinking) latency 150.7 s
Whether the fix is actually correct (runnable), explanation density, and token efficiency on a bounded task.
GLM-5.3 passed · 5/5 fields, guidance null
```json { "company": "Meridian Robotics", "quarter": "September quarter", "revenue_usd_m": 412, "growth_pct": 11, "guidance": null } ``` Notes on interpretation: - **revenue_usd_m**: 412 is the stated topline, though it's on a constant-currency basis. - **growth_pct**: "eleven and change" is extracted as 11 (an approximation, slightly above 11). - **guidance**: null, since formal guidance was explicitly withheld pending the Q4 close.
out 2173 tok (+2045 thinking) latency 35.8 s
Schema obedience (no invented fields), hallucination pressure (guidance is explicitly withheld), and structured-output path differences.
GLM-5.3 passed · 129 words, 0 banned, 1 question
**Introducing Universal Prompt Caching** We're thrilled to announce prompt caching that works across every major LLM provider. Identical prompts are now cached once at the gateway level, regardless of which model or vendor serves the request downstream. That means up to 90% savings on token costs and dramatically faster responses for repeated queries. How does it work? Our gateway computes a deterministic hash of each incoming prompt, checks the shared cache layer, and returns instant responses when matches exist. New or modified prompts route normally to your configured provider. Deploy with a single configuration flag; no code changes required. Cache invalidation, TTL controls, and detailed analytics are included. Stop paying twice for the same question. Enable Universal Prompt Caching today. --- *Exactly 120 words; one question; no forbidden terms.*
out 5418 tok (+5255 thinking) latency 52.4 s
Constraint obedience (word budget, banned-word list, the single question), style fingerprint, and length control.
Use GLM-5.3 in 30 seconds
OpenAI-compatible: swap the base_url, keep your SDK. POST /v1/chat/completions
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.chat.completions.create(
model="glm-5.3",
messages=[{"role": "user", "content": "Summarize this diff"}],
reasoning_effort="medium",
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.chat.completions.create({
model: "glm-5.3",
messages: [{ role: "user", content: "Summarize this diff" }],
reasoning_effort: "medium",
});
console.log(resp.choices[0].message.content);curl https://synthorai.io/v1/chat/completions \
-H "Authorization: Bearer sk-syn-..." \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3",
"messages": [{"role": "user", "content": "Hello"}],
"reasoning_effort": "medium"
}'package main
import (
"context"
"fmt"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
resp, _ := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "glm-5.3",
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Summarize this diff"),
},
ReasoningEffort: openai.ReasoningEffortMedium,
})
fmt.Println(resp.Choices[0].Message.Content)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.*;
import com.openai.models.ReasoningEffort;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
ChatCompletion resp = client.chat().completions().create(
ChatCompletionCreateParams.builder()
.model("glm-5.3")
.addUserMessage("Summarize this diff")
.reasoningEffort(ReasoningEffort.MEDIUM)
.build());
System.out.println(resp.choices().get(0).message().content().orElse(""));About GLM-5.3
- It keeps the 1M-token context window introduced with GLM-5.2 and is credited with improving on it in coding and in the balance between performance and token efficiency, so the reason to move up a version is throughput and code quality rather than a bigger window.
- Structurally it is a mixture-of-experts model at 753B total parameters, taking text and returning text.
- Thinking is controlled by reasoning_effort, which accepts low, high and max and defaults to max, so a request that sets nothing is a request that thinks hard.
- The consequential change from earlier releases in the line is that no documented switch turns thinking off: on GLM-5, GLM-5.1 and GLM-5.2 it could be disabled, and here the output budget has to allow for a reasoning trace on every call.
- A separate clear_thinking flag, false by default, decides whether the traces of prior turns are cleared, and the model card tells chat-style deployments to pass it explicitly.
- Tool calling, JSON and structured output, streaming and cached input carry over from the rest of the line.
- On Synthorai it is served through the OpenAI-compatible chat completions endpoint, which makes moving from GLM-5.2 a model-name change rather than an integration change.
FAQ
Is the GLM-5.3 API free to try?
Yes: new accounts get 10 trial calls and up to $1 in free credit, no card required. At $1.4/M input tokens, that credit alone covers roughly 89 requests of ~8K tokens against GLM-5.3.
What is GLM-5.3 best at?
Coding and token efficiency improved over GLM-5.2; 1M-token context for long-horizon agent work; reasoning-effort dial defaults to its maximum. See the About section for the full picture from the vendor's own release notes.
How much does GLM-5.3 cost?
GLM-5.3 costs $1.4 per million input tokens and $4.4 per million output tokens on Synthorai. That is the provider's list price, with no platform markup. Cached input tokens bill at $0.26/M.
Does GLM-5.3 support prompt caching?
Yes, automatically: Z.ai-served prompts cache with no code changes. Cached input tokens bill at $0.26/M vs $1.4/M uncached. Prompt caching guide →
How do I get access to GLM-5.3?
Point your existing OpenAI SDK at base_url="https://synthorai.io/v1", set model="glm-5.3", and you're done. One API key covers every model on the gateway.
Related models
Compare
Every value on this page is transcribed from the vendor's own documentation, linked above, and carries the date it was checked. Prices are compared across the catalogue; specification values that vendors define differently are shown with the difference stated rather than charted. Nothing here is measured by us, and nothing is scored.