Most API pages describe a toggle; this one describes a contract. On the model page for GLM 5.3, thinking cannot be switched off: the `thinking.type` field accepts exactly one value, `enabled`, and a request that passes `disabled` is rejected rather than downgraded [VENDOR]. For anyone routing through OrcaRouter‘s z.ai api catalogue, that single fact changes what cost control means, because the model that will not turn off also defaults to its deepest reasoning level.
A request that says “disabled” fails
The API contract is worth quoting exactly. On the model page, thinking is described as always on: the field accepts `enabled`, and any attempt to pass `disabled` fails the request [VENDOR]. That is a behavioral difference from the usual reasoning toggle. Most reasoning models let a caller trade depth for speed by switching reasoning off; here that trade does not exist at the API level, and the failure is loud — the request is refused, not silently served at reduced depth. Two consequences follow. First, there is no “cheap, shallow” mode to fall back on, so every call carries reasoning whether the task needs it or not [OURS]. Second, an integration written against a model that does accept `disabled` will error out on this one until the field is dropped — a porting detail worth checking before you move calls onto it, not after [OURS].
The failure mode is worth one more sentence, because it is the kind that costs an afternoon. A rejected request is not a transient error, so retrying it changes nothing — the same body produces the same refusal every time. It is a configuration error wearing the costume of a runtime one, and the repair belongs in the request builder rather than in a retry wrapper. If you are porting calls from a model that does accept the off switch, that field is usually set once at the client or gateway layer, which means the breakage can surface as every call in an integration failing at once rather than as one bad path among many. Finding it is a matter of diffing the request body against this page’s contract before the first deploy, not after [OURS].
The depth dial defaults to max
Control is not gone; it has moved from “on or off” to “how deep”. The page specifies `reasoning_effort` with three levels — low, high and max — and states that the default is max [VENDOR]. Put the two policies together and an unmodified request is maximum thinking on every call: thinking always on, effort defaulting to the deepest tier. Lowering cost is therefore an explicit act. A caller who wants the shallowest level must set `reasoning_effort: low` by hand, and there is no middle ground you get without asking for it [OURS]. That is the honest reading of the pricing implication: with this model, cheap calls are opt-in rather than default, and the default bills you for the full depth [OURS].
Latency tells the same story. The model page reports a time-to-first-token of 3.75 seconds at p50, which is 3,750 ms when converted from the seconds value the page prints [VENDOR]. The provider page’s median across its ten models is 4,052 ms p50 [OURS], so GLM 5.3 sits a step below the middle of its own catalogue on this metric, not above it [OURS]. The always-on policy and the default depth are visible in the numbers before they appear in the invoice [OURS].
Two prices on the same page, and the page prints both
Now the money, and here the page contradicts itself. The STAT block at the top of the model page lists GLM 5.3 at $1.26 per million input tokens and $3.96 per million output tokens [VENDOR]. The page body, in three separate places, lists $1.40 and $4.40 [VENDOR]. Both readings are the page’s own — this is not a choice between the page and a vendor press release, it is a page disagreeing with itself. Which one you bill against is your call, but the honest move is to flag the discrepancy rather than pick a side silently [OURS]. The context numbers on the same block are firm: 1,000,000 input tokens in, 128,000 output tokens out [VENDOR]. The provider page’s FAQ separately names GLM 5.3 as the largest context in the z.ai catalogue at 1000K tokens [VENDOR]. The provider page also counts ten models, with a cheapest input rate of $0.150 per million tokens and a capability census of Vision 2, Tools 10, Reasoning 10 and JSON mode 10 [OURS].
The 8.4x sibling
The same provider page that sells GLM 5.3 also sells its cheaper sibling, GLM 5.3 Flash — 320B total parameters with 18B active at run time, priced at $0.15 per million input tokens and $0.50 per million output tokens [VENDOR]. On OrcaRouter’s own leaderboard the two sit 2.2 composite points apart — GLM 5.3 Flash at 69.1 and GLM 5.3 at 71.3, a composite OrcaRouter computes from its own evidence [OURS]. The input-price gap between them is 8.4x, $1.26 against $0.15 [OURS]. Whether 2.2 points of composite is worth an 8.4x input price is a task-by-task question, and the catalogue leaves both halves of it in front of you [OURS]. There is also a GLM 5.3 Flash (Free) row on the provider page at $0.00 per request, which is a per-request billing arrangement, not free tokens [VENDOR]. For high-volume, low-depth work, the flash model with an explicit `reasoning_effort: low` is the lever the flagship does not give you, because the flagship will not turn its thinking down on its own [OURS].


The takeaway
Three facts, one decision. Fact one: on GLM 5.3, thinking is always on and `disabled` is not accepted — the request fails [VENDOR]. Fact two: the depth dial defaults to max, so an unmodified call is maximum reasoning every time, and a cheaper depth is opt-in rather than default [VENDOR][OURS]. Fact three: the page’s own price block disagrees with its own body — $1.26/$3.96 against $1.40/$4.40 — so reconcile before you bill [VENDOR]. The decision is where the depth is actually needed: if your workload survives 2.2 composite points and an explicit low-effort setting, GLM 5.3 Flash at $0.15 per million input is the row to reach for; if you need the flagship, budget for always-on max thinking and check both price columns first [OURS].
Sourcing note: the always-on thinking contract (thinking.type accepting only enabled, a disabled value failing the request), the reasoning_effort low/high/max levels with a default of max, the STAT-block prices of $1.26/$3.96, the body prices of $1.40/$4.40 printed in three places, the 1,000,000-token input / 128,000-token output context, the 3.75 s p50 time-to-first-token, the GLM 5.3 Flash parameter count of 320B total / 18B active and its $0.15/$0.50 rates, the GLM 5.3 Flash (Free) $0.00-per-request row and the FAQ’s 1000K-token context for GLM 5.3 are all read from OrcaRouter’s own z-ai provider and glm-5.3 model pages on 2026-10-15 [VENDOR]. The ten-model count, the $0.150/M cheapest input, the 4,052 ms p50 median, the capability census (Vision 2 / Tools 10 / Reasoning 10 / JSON 10) and the two leaderboard composite scores (GLM 5.3 Flash 69.1, GLM 5.3 71.3) are OrcaRouter’s own catalogue and leaderboard data [OURS]. The 3,750 ms conversion, the 2.2-point gap and the 8.4x input-price gap are my own arithmetic on those published numbers [OURS]. The page’s self-contradiction on price is stated as the page printing both figures; no side is chosen as truth. No third-party benchmark or market figures are used. Catalogue figures are rolling and will drift. Read 2026-10-15.