GLM 5.3 Flash on OpenRouter: Model ID, Provider Prices & API Setup
Aug 27, 2026

GLM 5.3 Flash on OpenRouter: Model ID, Provider Prices & API Setup

GLM 5.3 Flash on OpenRouter: model ID z-ai/glm-5.3-flash, ten providers with a 2x price spread, 1M context, and curl + Python setup with provider routing rules.

Quick answer: GLM 5.3 Flash is on OpenRouter as z-ai/glm-5.3-flash — a multimodal model (text + image + video in, text out) with a 1,048,576-token context window and 131,072-token max output on the primary endpoints. Ten providers serve it at prices ranging from $0.075/$0.25 (Z.AI, Novita, GMICloud — a temporary 50% launch discount) to $0.15/$0.50 (list). Call it through the standard OpenAI-compatible endpoint at https://openrouter.ai/api/v1/chat/completions. Pin your provider — the context ceiling varies from 262K to 1.31M across them.

The last part is the reason this article exists. On a single-provider model, "call the model ID" is the whole integration. On a model with ten providers whose prices differ by 2x and whose context ceilings differ by 5x, default routing will silently hand you a different model configuration on different days — and you will discover it as an intermittent truncation error at 3am, not as a line item.

Everything below comes from OpenRouter's model page and its public endpoints API, queried August 27, 2026. The provider table is reproduced in full rather than summarised, because the variance is the story.

What This Article Solves

The pain point: OpenRouter abstracts providers away, and for this model that abstraction leaks. The same model ID can route you to a 262K context window or a 1.31M one, to a $0.075 rate or a $0.15 one, to a 131K max output or a 1.18M one. None of that is visible from the model ID.

You will leave with the complete provider table, working curl and Python calls, the provider-pinning syntax that makes behaviour deterministic, and the specific routing traps to avoid.

Model Card

FieldValue
Model IDz-ai/glm-5.3-flash
Display nameZ.ai: GLM 5.3 Flash
ReleasedAugust 26, 2026
Previouslystealth/ox-alpha (anonymous preview from August 20, 2026)
Context window1,048,576 tokens
Max output131,072 tokens (varies by provider — see below)
Modalitytext + image + video → text
Providers10

OpenRouter's own description: GLM-5.3-Flash is a native multimodal model from Z.ai, suited for efficient coding and long-horizon agent tasks, whose hybrid sparse and linear attention architecture maintains accurate long-context behaviour while reducing compute overhead.

The Provider Table — Read This Before You Integrate

Straight from OpenRouter's endpoints API, August 27, 2026:

ProviderInput / 1MOutput / 1MCache readContextMax outputQuant
Z.AI$0.075$0.25$0.0151,048,576131,072fp8
Novita$0.075$0.25$0.0151,048,576131,072fp8
GMICloud$0.075$0.25$0.0151,048,576943,718fp8
Venice$0.09375$0.3125$0.018751,048,576131,072unknown
Modal$0.14999$0.49995$0.031,048,576943,718fp8
Parasail$0.15$0.501,048,576943,718fp8
DeepInfra$0.15$0.50$0.031,048,576943,718fp8
Baseten$0.15$0.50$0.031,048,576131,072fp8
Cloudflare$0.15$0.50$0.031,310,7201,179,648unknown
Io Net$0.15$0.50$0.03262,144131,072fp8

Three traps, in order of how much they will cost you:

Trap 1 — the 262K provider. Io Net serves a quarter of the advertised context. A long-context request routed there fails; the same request routed to Z.AI succeeds. That is an intermittent, hard-to-reproduce bug unless you pin providers.

Trap 2 — the 2x price spread. Identical MIT-licensed weights, $0.075 to $0.15 input. Default routing does not optimise for your wallet.

Trap 3 — the missing cache rate. Parasail publishes no cache-read price. If your architecture depends on the 5x cached-input discount, routing there quietly removes your main cost optimisation.

The $0.075 / $0.25 tier reflects a 50% launch discount — see the full pricing breakdown for worked cost examples. The undiscounted list price is $0.15 / $0.50 / $0.03, which is what six of ten providers already charge and what you should forecast on.

Calling It with curl

Standard OpenAI-compatible request:

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "z-ai/glm-5.3-flash",
    "messages": [
      {"role": "user", "content": "Read this repo diff and write the migration notes."}
    ]
  }'

Pinning a Provider (Do This)

OpenRouter's provider block makes routing deterministic. This is the single most valuable line in the whole integration:

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "z-ai/glm-5.3-flash",
    "provider": { "order": ["Z.AI", "Novita"], "allow_fallbacks": false },
    "messages": [{"role": "user", "content": "Summarise this 400-page contract."}]
  }'

allow_fallbacks: false means you get the provider you asked for or an error — which is exactly what you want for long-context work, because a silent fallback to a 262K endpoint is worse than a clean failure. Drop the flag and allow fallbacks for latency-sensitive traffic where any provider will do.

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key=os.environ["OPENROUTER_API_KEY"],
)

resp = client.chat.completions.create(
    model="z-ai/glm-5.3-flash",
    messages=[{"role": "user", "content": "Trace this flaky test to its root cause."}],
    max_tokens=8192,
    extra_body={"provider": {"order": ["Z.AI"], "allow_fallbacks": False}},
)
print(resp.choices[0].message.content)

Two notes. Set max_tokens explicitly — the ceiling varies between 131,072 and 1,179,648 depending on provider, and an unbounded request on a slow model is an expensive way to learn that. And because GLM 5.3 Flash measures at roughly 50 output tokens/second, use streaming for anything user-facing; the model's time to first token (~1.47s) is good, its throughput is not.

Sending Images and Video

The model is natively multimodal, so visual input uses the standard OpenAI content-parts format:

resp = client.chat.completions.create(
    model="z-ai/glm-5.3-flash",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "This dropdown renders behind the modal. What CSS is wrong?"},
            {"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}},
        ],
    }],
)

This is where the model earns its keep relative to text-only rivals in the same price band. Z.ai reports 62.4 on OfficeQA Pro, a document-and-visual reasoning benchmark, claiming a lead over Claude Opus 4.8 — the one benchmark where the Flash tier claims an outright flagship win. If you want to check that against your own screenshots without wiring up an API key first, run GLM 5.3 Flash in the browser on glm5.app and paste one in.

OpenRouter vs. Going Direct

The differentiator most integration guides skip: OpenRouter is not automatically the right front door for this model.

Use OpenRouter when you want one key across many models, automatic failover, or the ability to A/B providers without code changes. The cost is the routing variance described above, plus OpenRouter's ~5.5% credit top-up fee.

Go direct to Z.ai when GLM 5.3 Flash is your primary model. You get first-party rates, the cached-input discount without provider roulette, access to the GLM Coding Plan (where Flash carries roughly 3x the usable quota of GLM-5.3 across the Lite, Pro, and Max tiers), and one fewer hop of latency.

Self-host only if you need sovereignty, air-gapping, or fine-tuning. The MIT-licensed weights make it legal and free; the ~328 GB FP8 footprint makes it expensive. At $0.15 per million input tokens the break-even volume is very high.

Whichever front door you pick, the sensible first step is the same: put a real task in front of the model. Open a GLM 5.3 Flash session or hit the glm-5.3-flash model ID from your existing harness and diff the output against whatever you run today.

Frequently Asked Questions

What is the GLM 5.3 Flash model ID on OpenRouter? z-ai/glm-5.3-flash. It replaced the anonymous preview ID stealth/ox-alpha (see Ox Alpha vs GLM 5.3 Flash), which was the same model running under a codename from August 20, 2026.

Why do providers show different prices for the same model? Three of the ten (Z.AI, Novita, GMICloud) are honouring a temporary 50% launch discount at $0.075/$0.25; the rest charge the $0.15/$0.50 list price. Venice sits in between. The weights are identical.

Which provider should I use? Z.AI or Novita for the discounted rate at full 1M context and a published cache-read price. Avoid Io Net for long-context work — it serves only 262,144 tokens. Always pin with provider.order and set allow_fallbacks: false if context length matters.

Does it support tool calling and structured output? Yes — it is served through OpenRouter's standard OpenAI-compatible interface and is positioned by Z.ai for long-horizon agent tasks. Confirm the exact supported-parameter list for your chosen provider on the OpenRouter model page, since it can vary by endpoint.

Is the 1M context real on OpenRouter? On most providers, yes — 1,048,576 tokens. Cloudflare lists 1,310,720 and Io Net only 262,144. No public benchmark measures retrieval accuracy at the top of that window, so treat the ceiling as a specification and test at your working length.

Sources

Provider prices and endpoint capabilities verified August 27, 2026 and change frequently. Re-check the endpoints API before relying on any specific provider's context ceiling.

Start Using GLM 5 Today

Try GLM 5 free — reasoning, coding, agents, and image generation in one platform.