GLM-5.3 Flash: Multimodal at a Tenth the Price

zai/glm-5.3-flash is live on BlockRun, on Base and Solana both. It is the first
natively multimodal model in the GLM-5 series — it reads images, not just
descriptions of them — and it costs $0.15 per 1M input tokens and $0.50 per 1M output.
That combination is the story. A 1M-token context window with image input, at a rate below what most flagship models charge for text alone.
What it is
320 billion total parameters, 18 billion active per token. The interesting part is the attention: it is the first open-weight frontier model to combine sparse and linear attention in one hybrid architecture. Against GLM-5.3, Z.AI measures 3.01× less attention computation and a 4.44× smaller KV cache. That is where the price comes from — it is an architectural saving, not a promotional one.
Z.AI's own framing is vision-driven coding: the model looks at the screenshot, the rendered page, the Blender viewport, and iterates against what it sees rather than against a description of what it sees. Feed it a set of page screenshots and ask for the app.
What we checked before listing it
Every model on BlockRun gets probed live before it appears in the catalog, because "listed" and "serving" are two different facts and either can be true alone. For GLM-5.3 Flash:
| Result | |
|---|---|
| Completions | Real content back in 1.4s |
| Tool calling | finish_reason=tool_calls, well-formed arguments |
| Streaming | Deltas plus a final usage frame |
| Vision | A base64 image answered correctly |
| Max output | 131,072 tokens — the API's hard ceiling |
Two of those deserve a note.
The output cap is not the context window. The context is 1M tokens; the
largest max_tokens the API will accept is 131,072, and asking for 131,073
returns error 1210. That is the same ceiling every GLM-5 SKU enforces. We clamp
to it rather than letting a large ask 400 after you have already paid.
Remote image URLs mostly work. Passing an image_url as an https:// link
works on the hosts we tried, with one exception: upload.wikimedia.org blocks
Z.AI's fetcher, and the failure comes back as error 1210 "image input
format/parse error" — a fetch failure wearing a parse error's clothes. If you
hit that, the image is not malformed; the host is refusing the fetch. Base64 data
URLs always work.
Thinking is always on, and that is an improvement
Earlier GLM-5 models had a failure mode we had to work around: left to
themselves, glm-5, glm-5.1 and glm-5.2 would spend the entire token budget
on internal reasoning and return an empty content field. The gateway sends
thinking: {type: "disabled"} on those SKUs so that requests actually come back
with an answer.
The 5.3 generation does the opposite. Thinking cannot be turned off at all —
{type: "disabled"} is rejected outright — and it no longer needs to be, because
the model returns its answer alongside its reasoning instead of in place of it.
So GLM-5.3 and GLM-5.3 Flash are deliberately excluded from that workaround. You
get reasoning on every call, and you get an answer too.
The price is the list rate, not the promotion
Z.AI is running a 50% launch discount on GLM-5.3 Flash — $0.075/$0.25 — that ends on September 9, 2026. We list $0.15/$0.50, the rate that survives it.
This is a deliberate choice and it is worth being explicit about, because the
cheaper number is right there on the vendor's page and some resellers are already
quoting it. BlockRun sells chat at cost: the price you see is the upstream price,
with no spread on top. A catalog priced against a promotion goes below cost the
morning the promotion lapses — quietly, on every call, with nothing failing to
signal it. We have made that mistake before, on glm-5, and spent two months
selling under our own cost basis because a price comment went stale while the
vendor's page moved.
If Z.AI makes the discount permanent, we will re-read the page and cut. Until then, the number in the catalog is the one you can build a budget on.
How to call it
No API key, no account. Payment is a USDC micropayment over x402, on Base or Solana.
curl https://blockrun.ai/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-PAYMENT: $PAYMENT_HEADER" \
-d '{
"model": "zai/glm-5.3-flash",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is wrong with this layout?"},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}}
]
}]
}'
Same OpenAI-compatible shape as every other model on the gateway, so switching to it is a one-line change.
Where it sits
| Model | Input / 1M | Output / 1M | Context | Images |
|---|---|---|---|---|
zai/glm-5.3-flash | $0.15 | $0.50 | 1M | ✅ |
zai/glm-5.3 | $1.40 | $4.40 | 1M | — |
zai/glm-5.2 | $1.40 | $4.40 | 1M | — |
GLM-5.3 remains the flagship and remains text-only. Flash is the one to reach for when the work involves looking at something — a screenshot, a rendered page, a chart — or when the context is long and the budget is not.