{"slug": "how-much-every-ai-model-can-read-and-write-at-once", "title": "How Much Every AI Model Can Read and Write at Once", "summary": "A new census of 54 AI models across 13 vendors, published August 30, 2026, reveals that maximum output token limits—the amount a model can write in a single response—are rarely disclosed, especially in consumer chat apps, while context windows are widely advertised. The data shows output limits are uniform at Western labs (128,000 for OpenAI reasoning SKUs, 65,536 for Google's seven text models, 128K for Anthropic except Haiku 4.5 at 64K) but vary wildly elsewhere, from Kimi K3's 1,048,576 to Amazon Nova Pro's 5,000, and are absent from xAI and Meta. The census also clarifies that OpenAI's 1,050,000 context includes its 128,000 output budget, while Google's 1,048,576 does not, making the two '1M' figures different quantities.", "body_md": "Every model has two limits, and the industry reports one of them. The context window is on every launch post, every comparison table and every headline. The maximum output tokens figure — how much the model is permitted to write back in a single response — is the one that decides whether your 40-page report generates or stops mid-sentence, and it appears in almost none of them. This page carries both, for 54 current models across 13 vendors, as of August 30, 2026.\n\nThe output half is the reason this census exists, and the finding is sharper than “it is hard to find”. It splits three ways. On API surfaces it is uniform and plainly published: 128,000 tokens on every current OpenAI reasoning SKU, 65,536 on all seven of Google’s text models, 128K across Anthropic’s line with one exception. Among the vendors that publish it elsewhere it varies enormously, from Kimi K3’s ceiling of the entire context window down to Tencent Hy4’s 64K write cap on a one-million-token read window. And on the surface most people actually use — the consumer chat apps — it is not published at all.\n\nThe second thing this table does that a launch post cannot is state, per model, whether the headline context number already includes the output budget. OpenAI’s does. Google’s does not. That single distinction makes their two “one million token” figures different quantities, and it is why the census carries a column for it rather than a footnote.\n\n- 01Max output splits three ways, not two.It is uniform at the three Western frontier labs — 128,000 across OpenAI’s current reasoning SKUs, 65,536 across all seven Gemini text models, 128K across Anthropic except Haiku 4.5 at 64K. It is wildly variable wherever anyone else publishes it, from 1,048,576 (Kimi K3) down to Amazon Nova Pro’s 5,000. And it is systematically absent from whole vendors — xAI, Meta — and from both consumer apps.\n- 02“1M context” is not one quantity, so the table has a column for it.OpenAI’s 1,050,000 is 922,000 max input plus 128,000 max output, exactly — the headline number includes the write budget. Google’s 1,048,576 is an input limit with 65,536 output on top. Comparing the two directly overstates Google’s window or understates OpenAI’s, depending on which way you read it. Every row in the census answers the question explicitly, including the rows where the honest answer is that the vendor never says.\n- 03Max output is the stable number and the context window is the variable one.That is the reverse of the usual framing. OpenAI runs two context shapes (1,050,000 and 400,000) and one output ceiling (128,000). Google runs one of each across seven models spanning Flash to Pro, GA to Preview, and varies price by tier instead. If you are designing around a limit, the write ceiling is the one you can rely on and the read window is the one that moves.\n- 04One model can have three different ceilings at one vendor.Anthropic’s own support article gives Claude Opus 4.6 a 1M context in Claude Code, 500K in Claude chat and 200K in Claude Cowork — same model, same paid plan, three answers. And newer is not larger: xAI’s Grok 4.6 carries a 500,000-token window against Grok 4.3’s 1,000,000, on xAI’s own model pages. “What can this model do” has no answer until you say where you are calling it from.\n- 05Every absence is kept in the table with a label.Cells we could not fill are not deleted. Three labels distinguish three different failures: (a) the vendor does not publish it, (b) we could not locate the page, and (c) we located the page but could not read the figure. Each renders in a visually distinct style, because collapsing them into one “N/A” would hide the finding — most of the gaps in this census are label (a), which is a fact about the vendor rather than about our research.\n\n## 01 — The output halfThe write ceiling splits *three ways*.\n\nStart with the half that is missing from the genre. Our own archive has four narrative posts about the context-window race and none about output ceilings, which is a fair reflection of the market. The expectation going in was that max output would be scattered and hard to find. It is not. It is three different things at once, and the three are worth separating because they have three different causes.\n\n**First: on API surfaces it is uniform and boring.** OpenAI publishes 128,000 max output tokens on every current reasoning SKU — Sol, Terra, Luna, Cyber, 5.5, 5.5 Pro, 5.4, 5.4 Pro, 5.4 mini, 5.4 nano and the surviving Codex variant. Not one of them deviates. Google publishes 65,536 on all seven current Gemini text models, across Flash, Flash-Lite and Pro, and across GA and Preview alike. Anthropic publishes 128K on Fable 5, Opus 5 and Sonnet 5, and 64K on Haiku 4.5 — one exception in an otherwise flat line. Three frontier labs, three flat numbers.\n\n**Second: wherever anyone else publishes it, it varies enormously.** Moonshot documents Kimi K3 at a default of 131,072 tokens and a ceiling of 1,048,576 — the entire context window, the most permissive figure anywhere in this census. MiniMax documents M3 at a recommended 131,072 and a maximum of 524,288. DeepSeek’s whole V4 line is 384K. Z.ai’s GLM-5.3 is 128K. Tencent’s Hy4 preview caps output at 64K on a 1M context, which is a 16:1 read-to-write asymmetry and the widest of the six Chinese labs.\n\n**Third: it is systematically absent from whole vendors and whole surfaces.** xAI publishes no max output figure on its model list, on any per-model page, or in its API reference. Meta’s Muse models page has a context-window column and no output column. AWS Bedrock model cards publish a `Max output tokens`\n\nline for Anthropic and Amazon models and omit it for xAI models on the same docs template — so the gap tracks the model vendor rather than the reseller. And neither ChatGPT’s pricing page nor Google’s Gemini app help article states an output limit for any plan.\n\n##### Uniform on API surfaces\n\nOpenAI’s figure on every current reasoning SKU, from the $0.20-per-million Luna to the $30-per-million Pro tiers. Google’s equivalent is 65,536 across all seven text models; Anthropic’s is 128K on everything except Haiku 4.5. Where a frontier lab publishes max output at all, it does not vary it by tier.\n\n##### Variable where anyone else publishes it\n\nAcross the six Chinese labs at a nominal 1M context, the write ceiling spans sixteen-fold: Kimi K3 at 1,048,576, MiniMax M3 at 524,288, DeepSeek V4 at 384K, Qwen at 131K, GLM-5.3 at 128K, Tencent Hy4 at 64K. Same headline read window, sixteen times the difference in what comes back.\n\n##### Absent from both consumer apps\n\nopenai.com/chatgpt/pricing publishes context windows and an input maximum in pages of text; the word “output” does not appear in its plan comparison at all. Google’s Gemini app help article has a “Context windows” section and no output section. Both checked August 30, 2026. Both are label (a) absences, not search failures.\n\nSo the honest headline is not that nobody publishes this. It is that max output is well published on API surfaces, wildly inconsistent between the vendors that publish it, and systematically absent from the surface most people actually use. Those three statements have three different remedies, and only the second one is a standardisation problem.\n\nOne boundary before the data. This page is the numbers. What actually happens when a generation runs into one of these ceilings — the truncated JSON, the tool call that never closes, the response that ends mid-sentence with a `length`\n\nfinish reason and no error — is the subject of our companion piece on [silent output truncation in agent pipelines](/blog/agent-output-truncation-silent-failures), not of this one. The failure modes live there. The limits live here.\n\n## 02 — MethodWhat was collected, and how the *gaps* are marked.\n\nThe hard part of a limits census is not the cells you can fill. It is deciding what to do with the ones you cannot, because deleting them turns a vendor’s silence into our omission. Every unfilled cell in this table is kept in, and carries one of three labels that say which kind of failure it is.\n\n**What was collected.** For every current text model with a published API surface: the context window, the maximum input tokens, the maximum output tokens, whether the vendor states that the context figure includes the output budget, and the resulting context-to-output ratio. Where a vendor publishes a default and a ceiling separately, both are recorded and the mechanism is named.\n\n**Vendors reviewed (13).** OpenAI, Anthropic, Google, xAI, Meta, Mistral, Amazon, DeepSeek, Alibaba (Qwen), Zhipu / Z.ai, Moonshot, MiniMax and Tencent. Surfaces reviewed beyond the direct APIs: Microsoft Foundry, AWS Bedrock, Google Vertex AI, the ChatGPT consumer app, the Gemini consumer app, Claude chat, Claude Code and Claude Cowork.\n\n**Sources.** Vendor-first throughout: model pages, pricing pages, API references, docs tables, model cards and help centre articles owned by the vendor whose number is being recorded. Reseller figures are labelled as reseller figures and are never merged into a vendor row. No aggregator or third-party tracker supplied a number in this table.\n\n**Dates.** Pages were fetched on August 30, 2026, and the data’s **as-of date is August 30, 2026**. Nothing dated after that appears here as having happened.\n\n**Units.** Table cells quote the vendor’s spec-table figure, not its prose rounding — **65,536** rather than “64k”, **1,048,576** rather than “1M”. Google’s own “What’s new” page says “64k max output tokens” while its model spec tables say 65,536; these are the same number (64 × 1024), and two writers quoting two Google pages would otherwise appear to contradict each other. Round numbers appear only in prose. Where a vendor itself publishes a round figure and no exact one — Anthropic’s “1M / 128K”, DeepSeek’s “384K” — the round figure is what the cell carries, because inventing precision the vendor did not publish is worse than reporting its rounding.\n\n**The three UNVERIFIED labels.** They mean different things and render in three different styles so the distinction survives a screenshot. UNVERIFIED (a) — the vendor does not publish it; the absence is the finding. UNVERIFIED (b) — the page could not be located; this is our gap, not the vendor’s. UNVERIFIED (c) — the page was located but the figure could not be read from it, typically a JavaScript widget or a partial render.\n\n**Known limitations.** The census covers text models only; image, video, audio and embedding models are out of scope. Ratios are computed from the figures in the same row and rounded to one decimal place, so a row whose inputs are themselves rounded carries a rounded ratio. Where a vendor publishes both a recommended and a maximum output value, the ratio is given at the maximum and the default is named in the cell. Rows for OpenAI’s `gpt-5.5`\n\n, `gpt-5.4`\n\nand the two Pro tiers leave max input unfilled rather than subtracting: those pages publish context and max output and omit the max-input line, and the 400,000 shape proves the arithmetic is model-specific rather than universal. Finally, this is a record of what vendors publish, not of what any endpoint returns under load — we did not probe the APIs.\n\nDigital Applied, “How Much Every AI Model Can Read and Write at Once,” Digital Applied Blog, August 30, 2026, https://www.digitalapplied.com/blog/model-context-window-output-limit-census\n\nData as of August 30, 2026, which is distinct from the publication date and should be cited alongside any cell. This is a maintained dataset at a stable URL: *refreshed monthly by the Digital Applied Team*, with rows appended and cells updated in place rather than the page being replaced. Carry the row number with any figure — the context, max input and max output cells are separate claims from three separate vendor fields and should not be quoted as one.\n\n## 03 — The spine“1M” is not *one quantity*.\n\nThis is the single most important mechanic on the page, and it is invisible in every side-by-side comparison we have seen. OpenAI and Google both advertise a million-token context window. They are not measuring the same thing.\n\nOpenAI’s model pages publish three numbers for GPT-5.6 Sol: a context window of **1,050,000**, a maximum input of **922,000**, and a maximum output of **128,000**. Those add up exactly. The headline context figure is the sum of the read budget and the write budget, which means the usable input is 922,000 tokens and never the advertised million. Google’s model pages publish an input token limit of **1,048,576** and an output token limit of **65,536**, and the second is on top of the first.\n\nSet those side by side and the comparison inverts depending on which column you read. On the read side Google’s window is 126,576 tokens larger than OpenAI’s usable input. On the total-tokens side OpenAI’s envelope is 1,050,000 against Google’s 1,114,112. Neither vendor is being misleading on its own page; the misleading step is the comparison table that puts “1,050,000” next to “1,048,576” and calls them a tie. A census table without an explicit does-this-include-output column misleads about precisely the thing it exists to clarify, which is why the one below has one.\n\n##### Context includes output\n\nThe three published figures partition exactly, and the same holds on the smaller shape: 400,000 = 272,000 + 128,000. Whatever you allow the model to write comes out of the window you thought you had for reading. Budget your prompt against 922,000, not 1,050,000.\n\n##### Output sits on top\n\nGoogle labels its two figures “input token limit” and “output token limit” rather than publishing a combined context number at all. The full input budget is available regardless of how long the response runs, and the same pair holds on all seven current text models without variation.\n\n##### Never stated either way\n\nAnthropic, DeepSeek, Z.ai, MiniMax, Meta and Mistral publish a context figure and (sometimes) a max output figure with no statement about whether one contains the other. Moonshot is the exception that proves it is answerable: its API rejects any request where input plus max_completion_tokens exceeds the window.\n\nTwo structural details follow from the same source pages. OpenAI runs **two shapes and only two**: 1,050,000 / 922,000 / 128,000 for the flagship and Pro tiers, and 400,000 / 272,000 / 128,000 for mini, nano, Codex and Cyber. The max input on the smaller shape is 272,000 — which is exactly the threshold at which OpenAI’s long-context pricing kicks in. The cheap and specialised SKUs stop at the precise point where the expensive ones start charging double. That is not a coincidence worth over-reading, but it is a genuine design fact: you cannot accidentally trigger long-context billing on a mini model, because the model will not accept a long-context prompt. What that threshold costs on the models that do accept it is the subject of our [analysis of long-context pricing cliffs](/blog/long-context-pricing-thresholds-llm-cost-cliffs); here it matters only as the shape of a limit.\n\nGoogle, meanwhile, is *perfectly uniform*. All seven current text models carry 1,048,576 in and 65,536 out — Flash, Flash-Lite and Pro, GA and Preview, the cheapest model and the dearest. Google differentiates its tiers entirely by price and does not differentiate them by limit at all.\n\nPut those together and the usual framing is backwards. The number the market treats as the headline spec, the context window, is the one that varies — 1,050,000 or 400,000 at OpenAI, 1M or 200K at Anthropic, 500,000 or 1,000,000 at xAI, 256k across Mistral’s own line. The number the market ignores, the output ceiling, is the one that holds still. If you are writing a routing layer that has to degrade gracefully, the write ceiling is the constant you can code against and the read window is the variable you have to look up.\n\n## 04 — The CensusFifty-four models, *both numbers*.\n\nRows are grouped by vendor, and each group header names the first-party page the group’s figures came from. The column that does the most work is **Context includes output?** — without it, the ratio column and the context column cannot be compared across vendors. Cells reading UNVERIFIED (a), UNVERIFIED (b) or UNVERIFIED (c) are kept in deliberately; see the methodology above for what each one means.\n\n| # | Model | Surface | Context window | Max input | Max output | Context includes output? | Context : output |\n|---|---|---|---|---|---|---|---|\n| OpenAI — platform.openai.com/docs/models (11 rows) | |||||||\n| 1 | gpt-5.6-sol | OpenAI direct API | 1,050,000 | 922,000 | 128,000 | Yes — 922,000 + 128,000 = 1,050,000 exactly | 8.2:1 |\n| 2 | gpt-5.6-terra | OpenAI direct API | 1,050,000 | 922,000 | 128,000 | Yes — the three figures partition | 8.2:1 |\n| 3 | gpt-5.6-luna | OpenAI direct API | 1,050,000 | 922,000 | 128,000 | Yes — the three figures partition | 8.2:1 |\n| 4 | gpt-5.6-cyberDaybreak, gated | OpenAI direct API | 400,000 | 272,000 | 128,000 | Yes — 272,000 + 128,000 = 400,000 exactly | 3.1:1 |\n| 5 | gpt-5.5 | OpenAI direct API | 1,050,000 | UNVERIFIED (a)Max-input line absent from this page | 128,000 | Not stated on this page; the 5.6 family’s pages do state it | 8.2:1 |\n| 6 | gpt-5.5-pro | OpenAI direct API | 1,050,000 | UNVERIFIED (a) | 128,000 | Not stated on this page | 8.2:1 |\n| 7 | gpt-5.4 | OpenAI direct API | 1,050,000 | UNVERIFIED (a) | 128,000 | Not stated on this page | 8.2:1 |\n| 8 | gpt-5.4-pro | OpenAI direct API | 1,050,000 | UNVERIFIED (a) | 128,000 | Not stated on this page | 8.2:1 |\n| 9 | gpt-5.4-mini | OpenAI direct API | 400,000 | 272,000 | 128,000 | Yes — the three figures partition | 3.1:1 |\n| 10 | gpt-5.4-nano | OpenAI direct API | 400,000 | 272,000 | 128,000 | Yes — the three figures partition | 3.1:1 |\n| 11 | gpt-5.3-codexOnly live Codex variant | OpenAI direct API | 400,000 | 272,000 | 128,000 | Yes — the three figures partition | 3.1:1 |\n| Anthropic — platform.claude.com/docs/en/models (4 rows) | |||||||\n| 12 | Claude Fable 5 | Claude API | 1M | UNVERIFIED (a) | 128K | Not stated | 8:1 |\n| 13 | Claude Opus 5 | Claude API | 1M | UNVERIFIED (a) | 128K | Not stated | 8:1 |\n| 14 | Claude Sonnet 5 | Claude API | 1M | UNVERIFIED (a) | 128K | Not stated | 8:1 |\n| 15 | Claude Haiku 4.5Breaks the family pattern | Claude API | 200K | UNVERIFIED (a) | 64K | Not stated | 3.1:1 |\n| Google — ai.google.dev/gemini-api/docs/models (7 rows, all identical) | |||||||\n| 16 | Gemini 3.7 Flash | Gemini Developer API | 1,048,576 | 1,048,576 | 65,536 | No — Google publishes an input limit with output on top | 16:1 |\n| 17 | Gemini 3.6 Flash | Gemini Developer API | 1,048,576 | 1,048,576 | 65,536 | No — output on top | 16:1 |\n| 18 | Gemini 3.5 Flash | Gemini Developer API | 1,048,576 | 1,048,576 | 65,536 | No — output on top | 16:1 |\n| 19 | Gemini 3.5 Flash-Lite | Gemini Developer API | 1,048,576 | 1,048,576 | 65,536 | No — output on top | 16:1 |\n| 20 | Gemini 3.1 Flash-Lite | Gemini Developer API | 1,048,576 | 1,048,576 | 65,536 | No — output on top | 16:1 |\n| 21 | Gemini 3.1 Progemini-3.1-pro-preview | Gemini Developer API | 1,048,576 | 1,048,576 | 65,536 | No — output on top | 16:1 |\n| 22 | Gemini 3 Flash Preview | Gemini Developer API | 1,048,576 | 1,048,576 | 65,536 | No — output on top | 16:1 |\n| xAI — docs.x.ai/docs/models (5 rows, no max output on any surface) | |||||||\n| 23 | grok-4.6Smaller than grok-4.3 | xAI direct API | 500,000 | UNVERIFIED (a) | UNVERIFIED (a)Absent from the model list, the model page and the API reference | Not stated | — |\n| 24 | grok-4.5 | xAI direct API | 500,000 | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| 25 | grok-4.3 | xAI direct API | 1,000,000 | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| 26 | grok-4.20Reasoning, non-reasoning, multi-agent | xAI direct API | 1,000,000 | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| 27 | grok-build-0.1 | xAI direct API | 256,000 | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| DeepSeek — api-docs.deepseek.com/quick_start/pricing (3 rows) | |||||||\n| 28 | deepseek-v4-pro | DeepSeek direct API | 1M | UNVERIFIED (a) | 384K | Not stated | ~2.6:1 |\n| 29 | deepseek-v4-flash | DeepSeek direct API | 1M | UNVERIFIED (a) | 384K | Not stated | ~2.6:1 |\n| 30 | deepseek-v4-flash-vision-exp | DeepSeek direct API | 1M | UNVERIFIED (a) | 384K | Not stated | ~2.6:1 |\n| Alibaba Qwen — qwencloud.com model pages (6 rows, richest disclosure in the census) | |||||||\n| 31 | qwen3.8-maxMax reasoning budget 262K, published separately | Qwen Cloud | 1M | 991K983K in thinking mode | 131K | Not stated — and 991K + 131K exceeds the stated 1M window, so the three ceilings cannot all bind at once | ~7.6:1 |\n| 32 | qwen3.8-flash | Qwen Cloud | 1M | 991K | 131K | Not stated | ~7.6:1 |\n| 33 | qwen3.7-max | Qwen Cloud | 1M | 991K | 131K | Not stated | ~7.6:1 |\n| 34 | qwen3.7-plus | Qwen Cloud | 1M | 991K | 131K | Not stated | ~7.6:1 |\n| 35 | qwen3.7-flash | Qwen Cloud | 1M | 991K | 131K | Not stated | ~7.6:1 |\n| 36 | qwen3.6-max-preview | Qwen Cloud | 262K | 245K | 65K | Not stated | 4:1 |\n| Zhipu / Z.ai — docs.z.ai/guides/llm (2 rows) | |||||||\n| 37 | GLM-5.3 | Z.ai direct API | 1M | UNVERIFIED (a) | 128K | Not stated | 8:1 |\n| 38 | GLM-5.3-Flash | Z.ai direct API | 1M | UNVERIFIED (a) | 128K | Not stated | 8:1 |\n| Moonshot — platform.kimi.ai/docs (3 rows) | |||||||\n| 39 | kimi-k3Ceiling equals the whole window | Moonshot direct API | 1,048,576 | UNVERIFIED (a) | 1,048,576Default 131,072, settable to the ceiling | Yes — the API rejects a request whose input plus max_completion_tokens exceeds the window | 1:18:1 at the default |\n| 40 | kimi-k2.7-code | Moonshot direct API | 262,144 | UNVERIFIED (a) | UNVERIFIED (a)Only K3 carries a documented default and ceiling | Not stated for this model | — |\n| 41 | kimi-k2.6 | Moonshot direct API | 262,144 | UNVERIFIED (a) | UNVERIFIED (a) | Not stated for this model | — |\n| MiniMax — platform.minimax.io/docs (2 rows) | |||||||\n| 42 | MiniMax-M3 | MiniMax direct API | 1,000,000 | UNVERIFIED (a) | 524,288Recommended 131,072 | Not stated | 1.9:17.6:1 at the recommended value |\n| 43 | MiniMax-M2.7 | MiniMax direct API | 204,800 | UNVERIFIED (a) | 204,800Recommended 65,536; blanket rule for non-M3 models | Not stated | 1:13.1:1 at the recommended value |\n| Tencent Hunyuan — tencentcloud.com Hy API Guide (2 rows) | |||||||\n| 44 | hy4-previewWidest asymmetry of the six Chinese labs | Tencent Cloud | 1M | 960k | 64k | Not stated — though 960k + 64k = 1,024k, which is consistent with inclusion. That addition is ours, not Tencent’s. | 16:1 |\n| 45 | hy3 | Tencent Cloud | 256k | 192k | 128k | Not stated | 2:1 |\n| Meta — ai.developer.meta.com/docs/models (3 rows, no max-output column exists) | |||||||\n| 46 | muse-spark-1.1 | Meta Model API | 1,048,576 | UNVERIFIED (a) | UNVERIFIED (a)The models table has a context column and no output column | Not stated | — |\n| 47 | muse-spark-1.2 | Meta Model API | 1,048,576 | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| 48 | muse-spark-1.2-contributorSame checkpoint, discounted data-sharing tier | Meta Model API | 1,048,576 | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| Mistral — docs.mistral.ai/models (4 rows, and the asymmetry inside them) | |||||||\n| 49 | Mistral Medium 3.5 | Mistral direct API | 256k | UNVERIFIED (a) | UNVERIFIED (a)Max output field absent from the card | Not stated | — |\n| 50 | Mistral Small 4 | Mistral direct API | 256k | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| 51 | Mistral Large 3 | Mistral direct API | 256k | UNVERIFIED (a) | UNVERIFIED (a) | Not stated | — |\n| 52 | Z.ai GLM 5.2, hosted by MistralThe only Mistral card with a max output field | Mistral direct API | 1M | UNVERIFIED (a) | 128k | Not stated | 8:1 |\n| Amazon — docs.aws.amazon.com Bedrock model cards (2 rows) | |||||||\n| 53 | Amazon Nova ProWidest asymmetry in the census | AWS Bedrock | 300K | UNVERIFIED (a) | 5K | Not stated | 60:1 |\n| 54 | Amazon Nova PremierLifecycle: Legacy · EOL September 14, 2026 | AWS Bedrock | 1M | UNVERIFIED (a) | 25K | Not stated | 40:1 |\n\nTwo reference points sit outside the table because they are Azure’s figures for a model router rather than a model. Microsoft documents the router’s max output values as **32,768** for the GPT-4.1 series, **100,000** for `o4-mini`\n\n, **128,000** for the GPT-5 reasoning models and **16,384** for `gpt-5-chat`\n\n. That last figure is the lowest current max output we found at either OpenAI or Google, and it belongs to the chat-optimised variant — the one closest to what a consumer product would route to.\n\nFor the money side of the same 54 models, our [frontier model API price index](/blog/frontier-model-api-price-index) is the companion asset, published the same day and maintained on the same cadence. It carries the promotional rates and their end dates in their own column; this page carries no prices at all.\n\n## 05 — Ceiling vs budgetA max output figure is a ceiling, not an *allocation*.\n\nThe most useful sentence anyone has written about these numbers was not written by a model lab. It is in Microsoft’s Azure AI Foundry documentation, describing the max output column of its own model table, and it is the thing readers most often get wrong.\n\n“The **Max Output Tokens** column sets an upper limit, not a guaranteed output size. An API parameter such as `max_output_tokens`\n\ndoesn’t reserve tokens when the request has less context budget available.”\n\nlearn.microsoft.com/en-us/azure/ai-foundry/openai/concepts/models, fetched August 30, 2026. It is *Microsoft*, not OpenAI, that states the caveat on OpenAI’s own numbers.\n\nRead the census again with that in mind and several rows stop looking like contradictions. Qwen publishes a 1M context, a 991K max input and a 131K max output for `qwen3.8-max`\n\n. Those three do not sum — 991K of input leaves nowhere near 131K of room inside a one-million-token window. They are not meant to sum. Each is an independent ceiling that binds only when the other two are well below their own. Fill the input to 991K and the output you actually get will be a fraction of 131K, with no error and no warning that the documented ceiling was never available.\n\nOpenAI’s numbers behave differently, and the difference is visible precisely because the census records the relation. 922,000 plus 128,000 is 1,050,000 exactly, so OpenAI’s two figures do partition the window: the output budget is genuinely reserved against the context total. Google’s do not interact at all, because the output limit sits outside the input limit. Three vendors, three different relationships between the same two numbers, and only one of them documented in a way a reader would notice.\n\nThe practical consequence is that a max output figure tells you what the model will never exceed and nothing about what it will produce on any given call. That gap between the documented ceiling and the achievable one is where output truncation comes from, and it is the subject of our companion post on [why long agent outputs fail silently](/blog/agent-output-truncation-silent-failures). The numbers on this page are the input to that analysis, not a substitute for it.\n\n## 06 — By surfaceOne model, one plan, *three ceilings*.\n\nThe strongest single fact in this census does not require leaving one vendor. Anthropic publishes a support article on how large Claude’s context window is, and the answer is different in each of its own products. Claude Opus 4.6 gets a 1M token context in Claude Code, 500K in Claude chat, and 200K in Claude Cowork — same model, same paid plan, three ceilings, all documented by Anthropic on one page.\n\n| Model | Claude API | Claude chat, paid | Claude Code, Pro to Enterprise | Claude Cowork, Pro to Enterprise |\n|---|---|---|---|---|\n| Opus 5 | 1M | 1M | 1MPro must enable usage credits | 1M |\n| Sonnet 5 | 1M | 1M | 1M | 1MAuto-compacts at 500K |\n| Fable 5 | 1M | Not named in the article; 200K by its residual rule | 1M | 1M |\n| Opus 4.8 | Not in the model overview table | 500K | 1M | 1M |\n| Opus 4.7 | Not in the model overview table | 500K | 1M | 1M |\n| Opus 4.6 | Not in the model overview table | 500K | 1M | 200K |\n| Sonnet 4.6 | Not in the model overview table | 500K | 1MUsage credits required except on usage-based Enterprise | 200K |\n| Haiku 4.5 | 200K | 200K | Not named | 200K |\n\nThree things in that table are invisible to a check-the-vendor’s-page approach. Opus 4.6 spans five-fold across three of one vendor’s own products. A context window can be a paywall inside a paid plan: Pro subscribers must switch on usage credits — that is, opt into metered API-rate billing — to reach 1M on Opus in Claude Code, so the plan price does not buy the ceiling. And “1M” can mean “compacts at 500K”, which Anthropic documents for Sonnet 5 in Cowork. The published ceiling and the behavioural ceiling are different objects, and the vendor says so.\n\n**Newer is not larger.** xAI’s own model pages put Grok 4.6 at a 500,000-token context window and Grok 4.3 at 1,000,000. The newer flagship, released August 12, 2026, halved the window of the model it succeeded — and also lost Batch API support and the eu-west-1 region that Grok 4.3 carries. A reader who assumes the later version number implies the larger window is simply wrong, and no amount of reading the launch post would tell them.\n\n**The consumer split is real and it is asymmetric.** OpenAI’s API window is 1,050,000 tokens; ChatGPT Pro gets 400K in reasoning mode and 128K in instant mode, Plus and Go get 256K and 54K, and Free instant gets 27K. That last figure is about 2.6% of the API window — a factor of roughly 39. Google runs the other way entirely: the Gemini app on AI Pro or AI Ultra is documented at 1 million tokens, essentially parity with the developer API, with AI Plus at 128k and no plan at 32k. Google’s paying consumer gets the developer window. OpenAI’s does not.\n\n| Surface | Context window | Max output | Against its own API |\n|---|---|---|---|\n| OpenAI | |||\n| OpenAI API, GPT-5.6 family | 1,050,000 including output | 128,000 | Baseline |\n| ChatGPT Pro | 400K reasoning · 128K instant | UNVERIFIED (a) | About 38% of the API window on reasoning |\n| ChatGPT Plus and Go | 256K reasoning · 54K instant | UNVERIFIED (a) | About 24% of the API window on reasoning |\n| ChatGPT Free | 27K instant · reasoning “varies” | UNVERIFIED (a) | About 2.6% of the API window on instant |\n| Gemini Developer API | 1,048,576 input, output on top | 65,536 | Baseline |\n| Gemini app, AI Pro and AI Ultra | 1 million | UNVERIFIED (a) | Near parity with the API |\n| Gemini app, AI Plus | 128k | UNVERIFIED (a) | About 12% of the API input limit |\n| Gemini app, no AI plan | 32k | UNVERIFIED (a) | About 3% of the API input limit |\n\nOne detail makes the ChatGPT rows harder to use than they look. OpenAI’s consumer page labels its two modes **“GPT Instant”** and **“GPT Reasoning”**, not model IDs, and publishes no mapping from those labels to `gpt-5.6-sol`\n\nor `chat-latest`\n\n. A ChatGPT subscriber therefore cannot look up their own limits in the API documentation, because the two surfaces do not share a vocabulary.\n\n**Reseller catalogues lag, and keep selling the dropped.** xAI’s direct API is on Grok 4.6. Microsoft Foundry’s newest Grok is Grok 4.2, four model generations behind, and it still meters Grok-3, Grok-3 Mini, Grok-4 and Grok4 Fast. Google Vertex AI still sells Grok 4.1 Fast, which xAI’s own model list no longer carries. AWS Bedrock’s own “model launch date” for Grok 4.3 is June 15, 2026 against xAI’s April 17 release — a listing date, not a release date. So a question as simple as “what is this model’s context window” has no answer until you say where you bought it. The pricing consequences of that same lag are catalogued in our [ledger of AI coding plan limit changes](/blog/ai-coding-plan-limit-change-ledger).\n\n## 07 — AbsencesWhere the number *does not exist* at all.\n\nAn absence is only a finding if you say exactly what you checked. The table below narrows each one to the specific pages fetched on August 30, 2026, and names the method. None of these is a claim that a figure exists nowhere in the world; each is a claim that it is not on the pages a developer or a subscriber would actually consult.\n\n| Missing figure | Exactly what was checked | Method | Label |\n|---|---|---|---|\n| Max output, all xAI models | The model list, the per-model pages for Grok 4.6 and 4.3, and the API reference. Also the two AWS Bedrock Grok model cards and the Vertex AI Grok listing. | Direct fetch of each page plus a string search for max output and max_tokens | UNVERIFIED (a) |\n| Max output, all Meta Muse models | The Models page and the pricing and rate-limits page. The models table has a context-window column; there is no max-output column on it. | Direct fetch, column-level read | UNVERIFIED (a) |\n| Max output, Mistral’s own three models | The Medium 3.5, Small 4 and Large 3 model cards, against the Z.ai GLM 5.2 card on the identical template. The `Max output` field renders on the third-party card and is absent from all three Mistral-authored ones. | Two independent fetch methods, field-level comparison | UNVERIFIED (a) |\n| Max output, ChatGPT consumer app, all four plans | openai.com/chatgpt/pricing. The page publishes context windows and an input maximum expressed in pages of text; the string “output” does not appear in the plan comparison at all. | Direct fetch plus a whole-page string search | UNVERIFIED (a) |\n| Max output, Gemini consumer app, all three plans | Google’s Gemini help article on context windows. It has a “Context windows” section and no output-limit section. | Direct fetch, section-level read | UNVERIFIED (a) |\n| Max output, Moonshot’s K2.x line | The per-model pricing pages for kimi-k2.7-code, k2.6 and k2.5. Only K3 carries a documented default and ceiling, in the chat API reference rather than on the pricing page. | Direct fetch of the markdown twins of each doc page | UNVERIFIED (a) |\n| Context window, Claude free tier | Anthropic’s context-window support article, which is titled and scoped to paid plans throughout and never states a free figure. | Direct fetch, full-article read | UNVERIFIED (a) |\n| Context and max output, Vertex AI’s Grok listing | Google’s partner-models page for xAI Grok. The URL returned roughly 7KB with no model-spec content; the specification page was not located at that path. | Direct fetch, then a second attempt at an alternate path | UNVERIFIED (b) |\n| Qwen Cloud spec block, qwen3.8-flash and qwen3.6-max-preview | Both model pages were located and their context blocks rendered, but the adjacent detail block returned a partial render on two attempts. The context and output figures in the census come from the blocks that did render. | Two fetch attempts per page, partial payload both times | UNVERIFIED (c) |\n\nOne row in that table is worth reading twice, because it makes the point better than any argument could. **Mistral publishes a max output field on the third-party model it resells and omits that field entirely from its own model cards.** The template is identical. The field renders on the Z.ai GLM 5.2 card at 128k and does not render on Medium 3.5, Small 4 or Large 3. This is not a fetch artifact — it was confirmed on two independent methods. Whatever the reason, the practical result is that a Mistral customer can learn the write ceiling of the model Mistral did not build and not of the three it did.\n\nThe AWS case has the same shape at a different layer. Bedrock model cards publish a `Max output tokens`\n\nline for Anthropic and Amazon models — that is where Nova Pro’s 5K and Nova Premier’s 25K in the census come from — and omit it for xAI models rendered from the same docs template. The gap tracks the model vendor, not the reseller. Which means the absence is not a platform policy; it is whatever each model vendor hands over.\n\n## 08 — RatiosWhat the read-to-write *ratio* actually tells you.\n\nDivide the context window by the max output and you get a single number that says how lopsided a model is between reading and writing. Across the whole census it runs from 1:1 to 60:1 — a sixty-fold spread in what the same nominal “large context model” category will actually let you produce.\n\nThe bar chart below reads output as a percentage of the model’s own context figure, which is the same ratio inverted and easier to compare visually. One caution attaches to every bar: the Google row is computed against an input limit rather than a total window, so its 6.3% is not the same measurement as Tencent’s 6.3%. That is the include-output column doing its job — a ratio is only comparable across vendors once you know which quantity is in the denominator.\n\n#### Max output as a share of the model's own context figure\n\nVendor spec tables · Aug 30, 2026Three readings come out of that spread. First, within the six Chinese labs — all of which advertise a nominal one-million-token window — the write ceiling varies sixteen-fold, from Kimi K3’s 1,048,576 down to Tencent Hy4’s 64K. Same headline read spec, sixteen times the difference in output. Second, the widest asymmetry anywhere in the census is not Chinese at all: Amazon Nova Pro pairs a 300K window with a 5,000-token output ceiling, 60:1. A model that can read a 300-page document and is capped at roughly four pages of reply is a summariser by construction, whatever else it is marketed as.\n\nThird, and least obvious: a low ratio is not automatically better. A 1:1 ratio, as at Kimi K3, means the write ceiling is the whole window, which is generous and also means output consumes the space your prompt needed. Moonshot documents exactly that — the API rejects any request where input plus `max_completion_tokens`\n\nexceeds the window. A ratio tells you the shape of the trade, not which side of it you want. Both of the older context-window guides in our archive — [the 1M-to-10M comparison](/blog/ai-context-window-comparison-2026-1m-to-10m-tokens) and [the arms-race guide](/blog/context-window-arms-race-10m-token-era-guide) — are about the read side only, which is exactly the omission this census exists to close.\n\nLooking forward, the direction of travel is legible in the census itself. The three labs that publish max output most consistently also hold it constant across their entire lineup, which is what you do when a number has become a platform commitment rather than a per-model spec. The labs where it varies sixteen-fold are the ones still treating it as a serving parameter. If that pattern holds, the interesting question over the next few quarters is not whether context windows grow past 1M — they will — but whether the write ceiling converges the way the read window has, or whether it stays the quiet differentiator it is today.\n\n## 09 — Using itHow to use this census *correctly*.\n\nA reference table is only as good as the four or five habits it makes easier. These are the ones this data supports, and the ones it does not.\n\n##### Never compare two context numbers without the third column\n\nOpenAI’s 1,050,000 and Google’s 1,048,576 are not the same quantity. Read the include-output cell before you read the context cell, every time. If it says “Not stated”, treat the two vendors’ figures as incomparable rather than equal — which is most of the census.\n\n##### Budget the response, not just the prompt\n\nWhere a vendor publishes max output, the number is usually the stable one across that vendor’s line, so it is the one worth encoding as a constant in a routing layer. If a workload needs more than 128,000 tokens back in one call, only four vendors in this census publish a ceiling that high: Moonshot, MiniMax, DeepSeek, and Qwen.\n\n##### A model ID is not enough to state a limit\n\nClaude Opus 4.6 has three different context windows across three Anthropic products on the same plan. Grok 4.6 has none published for output on any of its four surfaces. Any internal document that records a limit should record where it was measured and on what date, or it will be wrong within a quarter.\n\n##### Do not assume the documented maximum is available\n\nMicrosoft states it plainly for its own table: the max output column is an upper limit, not a guaranteed output size, and the parameter does not reserve tokens when the request has less context budget left. Instrument the finish reason on long generations rather than trusting the spec sheet.\n\nThe limitation to hold onto is that everything above is a record of what vendors publish, not of what endpoints return. We did not probe a single API for this page. That is a deliberate boundary — a published-figures census can be re-verified by anyone against the same URLs, and a measured census cannot — but it means the numbers describe the contract rather than the behaviour. Where the two diverge is precisely where truncation bugs live.\n\nIf a limit in this table sits between your team and a workload that has to ship — a document pipeline that keeps stopping short, a migration whose model choice hinges on a write ceiling nobody published, an agent that has to route around a 16,384-token cap it did not expect — that is the kind of problem our [AI transformation engagements](/services/ai-transformation) open with. The census is free and the model selection is the easy part; designing around the ceiling is the work.\n\n## 10 — ConclusionTwo numbers, kept *together*.\n\n### Fifty-four models, both halves of the limit, and an explicit column for what the headline number actually contains.\n\nThe design decision that makes this table worth citing is the third column from the right. Without a stated answer to “does this context figure include the output budget”, a census of context windows is a list of numbers that look comparable and are not. OpenAI’s million contains its output; Google’s does not; most other vendors never say. That is not a footnote to the data — it is the difference between the data being usable and being decorative.\n\nThe finding that surprised us is that the neglected number is the *well-behaved* one. Max output is uniform across the published API cards at all three Western frontier labs and varies not at all by tier, while the context window — the number the entire market reports — moves between SKUs, between product surfaces inside one vendor, and even backwards between generations at xAI. If you have to pick one figure to trust without re-checking it every month, pick the published output ceiling — not the headline context window.\n\nThe gaps stay in. Nine of them, each narrowed to the pages actually checked and labelled with which of three failures it represents. Most are label (a) — the vendor does not publish it — which is a finding about the vendor and not about our research, and deleting those rows would have made this table cleaner and materially less true. We will refresh it monthly, append models as they ship, and re-date the page rather than replace it.", "url": "https://wpnews.pro/news/how-much-every-ai-model-can-read-and-write-at-once", "canonical_source": "https://www.digitalapplied.com/blog/model-context-window-output-limit-census", "published_at": "2026-08-30 00:00:00+00:00", "updated_at": "2026-08-30 15:22:24.423828+00:00", "lang": "en", "topics": ["large-language-models", "ai-research", "ai-products"], "entities": ["OpenAI", "Google", "Anthropic", "Kimi K3", "Tencent Hy4", "Amazon Nova Pro", "xAI", "Meta"], "alternates": {"html": "https://wpnews.pro/news/how-much-every-ai-model-can-read-and-write-at-once", "markdown": "https://wpnews.pro/news/how-much-every-ai-model-can-read-and-write-at-once.md", "text": "https://wpnews.pro/news/how-much-every-ai-model-can-read-and-write-at-once.txt", "jsonld": "https://wpnews.pro/news/how-much-every-ai-model-can-read-and-write-at-once.jsonld"}}