{"_self":{"principle":"Self-explaining payload — no external context required. This _self block describes what you are reading and where to look next.","widget":"article_topology","feature":"topology","name":"Article topology","what":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","contains":"claims, sources, anecdotes, question_graph slice","slug":"workers-ai-coding-models","urls":{"read":"https://miscsubjects.com/api/articles/workers-ai-coding-models/topology"},"how_to_use":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","write":null,"imessage":null,"router_tag":null,"proof_chain":[{"step":1,"claim":"Articles are voxel graphs of tiered claims, not prose blobs.","verify":"https://miscsubjects.com/api/articles/constitution"},{"step":2,"claim":"Claims link to hash-chained sources via source_ids.","verify":"https://miscsubjects.com/api/articles/workers-ai-coding-models/sources"},{"step":3,"claim":"Ask reads topology; ingest/claim append to ledger.","verify":"https://miscsubjects.com/api/protocol"},{"step":4,"claim":"Models queue growth: populate → collaborate → repair → reflex.","verify":"https://miscsubjects.com/api/protocol/grow"},{"step":5,"claim":"Graph proves its own shape (reflex) and $/claim (yield).","verify":"https://miscsubjects.com/graph.html?layer=reflex"},{"step":6,"claim":"Full feature index + _explain on every API response.","verify":"https://miscsubjects.com/api/articles/system-map"}],"related_features":[{"id":"ask","name":"Ask protocol","what":"Answer only from topology; creates question_node with gaps and ingest_hint.","urls":{"read":"https://miscsubjects.com/api/articles/workers-ai-coding-models/prompts","write":"https://miscsubjects.com/api/protocol/ask"}},{"id":"graph_topology","name":"Cross-article graph","what":"Merged claims/sources across condition+stack slugs for one question.","urls":{"read":"https://miscsubjects.com/api/articles/workers-ai-coding-models/graph-topology?question=..."}},{"id":"question_graph","name":"Question graph","what":"Ask nodes (questions + gaps) and evidence_ingest nodes (pasted model output).","urls":{"read":"https://miscsubjects.com/api/articles/workers-ai-coding-models/question-graph","write":"https://miscsubjects.com/api/protocol/ask"}},{"id":"voxels","name":"Voxel graph","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance.","urls":{"read":"https://miscsubjects.com/api/articles/workers-ai-coding-models/voxels","write":"https://miscsubjects.com/api/protocol/claim"}}],"system_map":"https://miscsubjects.com/api/articles/system-map","system_map_markdown":"https://miscsubjects.com/api/articles/system-map?format=markdown","not_medical_advice":true},"_explain":{"feature":"topology","name":"Article topology","what":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","why":"Every feature is auditable collective intelligence","how":"Claims, sources, anecdotes, user reports, related embeds, question graph slice — for ask/ROUTER.","model":null,"verifies":null,"urls":{"read":"https://miscsubjects.com/api/articles/workers-ai-coding-models/topology"},"imessage":null,"router":null,"related":[{"id":"ask","what":"Answer only from topology; creates question_node with gaps and ingest_hint."},{"id":"graph_topology","what":"Merged claims/sources across condition+stack slugs for one question."},{"id":"question_graph","what":"Ask nodes (questions + gaps) and evidence_ingest nodes (pasted model output)."},{"id":"voxels","what":"Claims as atoms, sources as edges (supported_by, posted_by). Per-claim provenance."}],"not_medical_advice":true},"slug":"workers-ai-coding-models","title":"Two id families, a 23x price gap: choosing a coding model on Cloudflare","register":"essay","tags":["tooling","cloudflare","workers-ai","ai-gateway","coding-agents","model-pricing"],"updated_at":"2026-07-26T05:37:32.830Z","body_excerpt":"Two model ids look almost the same and are not the same product.\n\n`@cf/moonshotai/kimi-k2.7-code` runs on Cloudflare's GPUs: published per-token price, listed in the account's model catalogue over the API, billed as Workers AI against the same Neuron allowance as an image classifier.\n\n`moonshotai/kimi-k3` runs on Moonshot's GPUs and Cloudflare resells it: no per-token price published anywhere in the documentation, absent from the account catalogue, billed through Unified Billing against prepaid credits.\n\nThe prefix is the whole difference. Get it wrong and the request either costs twenty times what was budgeted or returns a 402.\n\n## Evidence status\n\n**Observed** marks first-party measurements or runtime receipts from the named environment.\n**Derived** marks arithmetic calculated from cited inputs. **Specified** marks vendor or standards\ndocumentation. **Implemented** and **deployed** name code and live-state evidence, respectively.\n**Reproduced** means the stated procedure was rerun. **Externally attested** marks operator reports;\nthose reports show that an experience occurred, not that it is universal.\n\n## The prefix decides the bill, the discovery path and the request shape\n\n| | Workers AI model | Catalogue (partner) model |\n| --- | --- | --- |\n| Id shape | `@cf/vendor/model` | `vendor/model` |\n| Examples | `@cf/moonshotai/kimi-k2.7-code`, `@cf/zai-org/glm-5.2`, `@cf/zai-org/glm-4.7-flash` | `moonshotai/kimi-k3`, `xai/grok-4.5`, `minimax/m3` |\n| Who runs the GPU | Cloudflare | The model vendor |\n| Billing | Workers AI, Neurons, $0.011 per 1,000 Neurons, 10,000 Neurons free per day | Unified Billing, prepaid credits, 5% fee on credit purchase, provider rates passed through |\n| Per-token price published? | Yes, on the pricing page and in the models API | No — the model page links to the dashboard |\n| Listed by `GET /ai/models/search`? | Yes | No |\n| Needs an authenticated gateway? | No | Yes — an unauthenticated gateway answers 402 |\n| Free daily allowance applies? | Yes | No |\n| Anthropic Messages endpoint | Refused by name | Sometimes accepted, shape not guaranteed |\n\nCloudflare states the split in one sentence: \"Workers AI models (models prefixed with `@cf/`) routed through AI Gateway are not charged via Unified Billing.\" The credit mechanics, the 5% purchase fee and the authentication requirement are covered in [Cloudflare Unified Billing](/a/cloudflare-unified-billing).\n\n## Every coding-relevant model Cloudflare hosts, priced from the account catalogue\n\nThe list below is the account's own catalogue, not the documentation. Fetch it:\n\n```bash\nACCOUNT_ID=<ACCOUNT_ID>            # wrangler whoami\nCF_API_TOKEN=<TOKEN>               # Workers AI: Read\n\ncurl -s -H \"Authorization: Bearer $CF_API_TOKEN\" \\\n  \"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/ai/models/search?per_page=500\" \\\n  | jq -r '.result[] | select(.task.name==\"Text Generation\") |\n      [.name,\n       (.properties[]|select(.property_id==\"context_window\").value),\n       ((.properties[]|select(.property_id==\"function_calling\").value) // \"no\")]\n      | @tsv'\n```\n\nRead on 2026-07-26: 61 models in the catalogue, 26 of them Text Generation, and **13 in the whole catalogue advertise function calling**. Prices below are the `price` property returned by that same call, in US dollars per million tokens.\n\n| Model id | Context | Tools | Vision | Input | Cached input | Output | What it is for |\n| --- | --- | --- | --- | --- | --- | --- | --- |\n| `@cf/moonshotai/kimi-k2.7-code` | 262,144 | yes | yes | $0.95 | $0.19 | $4.00 | Main agent thread. The only hosted model with a large window and image input together. |\n| `@cf/moonshotai/kimi-k2.6` | 262,144 | yes | yes | $0.95 | $0.16 | $4.00 | Previous Kimi. Same price, cheaper cache, no reason to pick it for new work. |\n| `@cf/zai-org/glm-5.2` | 262,144 | yes | no | $1.40 | $0.26 | $4.40 | Second opinion from a different family. Most expensive hosted option. |\n| `@cf/zai-org/glm-4.7-flash` | 131,072 | yes | no | $0.0605 ","ranking":"safety-first (interaction_risk/limitations), then quote-gated effective_weight","claims":[{"id":"c12","text":"Kimi K2.7 Code has independently reported failures at real prompt sizes: corrupted output on an 8K structured prompt on one serving stack, and a mid-stream InternalServiceError on long agentic runs through a hosted path.","tier":"anecdotal","section":"What breaks","interaction_risk":false,"status":"active","source_ids":["s15","s16"],"why_material":"Both failures are invisible to short smoke tests, so a reader who validates with one will ship the bug.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.3,"quote_gated":false},{"id":"c17","text":"A model can be announced as available and simultaneously listed as blocked in the client that is supposed to serve it.","tier":"anecdotal","section":"What breaks","interaction_risk":false,"status":"active","source_ids":["s18"],"why_material":"It is the reason the catalogue call, not the changelog, is the authority on availability.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.3,"quote_gated":false},{"id":"c18","text":"The same operator reported GLM behind a coding CLI as unusable in December 2025 and as working without a router in June 2026, with a third operator reporting degradation in between.","tier":"anecdotal","section":"Quality, honestly: one benchmark, one retraction, one zero","interaction_risk":false,"status":"active","source_ids":["s20","s21","s22"],"why_material":"It shows the negative reports are dated rather than wrong, which is the only honest way to weigh them.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.3,"quote_gated":false},{"id":"c1","text":"A Workers AI model id begins @cf/ and is billed in Neurons under Workers AI pricing; a catalogue id has no @cf/ prefix and is billed through Unified Billing against prepaid credits.","tier":"system","section":"The prefix decides the bill, the discovery path and the request shape","interaction_risk":false,"status":"active","source_ids":["s1","s2"],"why_material":"Choosing the wrong prefix changes the bill, the discovery method and whether the request is accepted at all.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c2","text":"Unified Billing applies a 5% fee to credit purchases and does not apply to @cf/ models.","tier":"system","section":"The prefix decides the bill, the discovery path and the request shape","interaction_risk":false,"status":"active","source_ids":["s2","s3"],"why_material":"Without it a reader budgets a catalogue model at the provider's raw rate and is short by the fee.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c3","text":"On 2026-07-26 the account model catalogue held 61 models, 26 of them Text Generation, and 13 advertised function calling.","tier":"system","section":"Every coding-relevant model Cloudflare hosts, priced from the account catalogue","interaction_risk":false,"status":"active","source_ids":["s1","s23","s8","s9"],"why_material":"An agent cannot use a model that cannot call tools, and two models with 'coder' in the name are in the group that cannot.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c4","text":"The models search endpoint returns only @cf/ models; moonshotai/kimi-k3, xai/grok-4.5 and minimax/m3 return zero results from it and their documentation pages publish no per-token price.","tier":"system","section":"The catalogue models publish no price — the only way to learn it is to run one and read the log","interaction_risk":false,"status":"active","source_ids":["s23","s3","s4","s5","s6","s9"],"why_material":"A reader who trusts the discovery endpoint will conclude these models do not exist, and a reader who reads their doc pages will find no rate to budget against.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c5","text":"Measured through the account gateway on 2026-07-26, one identical short turn cost $0.002283 on moonshotai/kimi-k3, $0.0010764 on xai/grok-4.5 and $0.00011934 on minimax/m3.","tier":"system","section":"The catalogue models publish no price — the only way to learn it is to run one and read the log","interaction_risk":false,"status":"active","source_ids":["s24","s4"],"why_material":"It is the only price information available for these three models outside the dashboard.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c6","text":"The models API reports GLM-4.7 Flash input at $0.0605 per million tokens while the pricing page's token column reports $0.060.","tier":"system","section":"Three Cloudflare surfaces disagree about what GLM-4.7 Flash costs","interaction_risk":false,"status":"active","source_ids":["s1","s23","s9"],"why_material":"A cost model built on one surface will not tie out against a bill computed from the other.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c7","text":"The Neuron count returned in a Workers AI usage block matches the pricing page's neuron rates exactly, so Neurons are the canonical unit and the dollar columns are rounded projections.","tier":"system","section":"Three Cloudflare surfaces disagree about what GLM-4.7 Flash costs","interaction_risk":false,"status":"active","source_ids":["s1","s26"],"why_material":"It resolves which of the three disagreeing figures a reader should reconcile against.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c8","text":"POST /ai/v1/messages rejects every @cf/ model with the error 'AiError: Anthropic Messages API is not supported for model'.","tier":"system","section":"The Anthropic endpoint refuses every @cf/ model by name","interaction_risk":false,"status":"active","source_ids":["s10","s25"],"why_material":"A client that speaks only the Anthropic Messages API cannot reach any Cloudflare-hosted model without a translator.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c9","text":"minimax/m3 is documented as supporting Anthropic Messages but answers /ai/v1/messages with an OpenAI chat.completion body.","tier":"system","section":"The Anthropic endpoint refuses every @cf/ model by name","interaction_risk":false,"status":"active","source_ids":["s10","s25","s5"],"why_material":"A client that trusts the endpoint name and parses content as an array of blocks throws on the real response.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c10","text":"Kimi K2.7 Code is the only Cloudflare-hosted coding model with vision:true in the catalogue, and whether images work depends on the shape the client builds.","tier":"system","section":"What breaks","interaction_risk":false,"status":"active","source_ids":["s17","s23"],"why_material":"A reader pasting screenshots into an agent has exactly one hosted model to choose and one class of bug to expect.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c11","text":"Sending a JSON Schema as response_format to a reasoning model returns empty content when the output budget is small, and valid JSON when the budget is large.","tier":"system","section":"What breaks","interaction_risk":false,"status":"active","source_ids":["s14","s25","s7"],"why_material":"It converts a reported total failure into a bounded, fixable one and names the fix.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c13","text":"In the only published benchmark whose author republished after retracting unreproducible numbers, Kimi-K2.7-Code scores a 58.95 five-task mean against Qwen3.6-35B at 56.25 and Qwen3-Coder-30B at 34.15.","tier":"independent","section":"Quality, honestly: one benchmark, one retraction, one zero","interaction_risk":false,"status":"active","source_ids":["s13"],"why_material":"It is the strongest available quality evidence for the model this page recommends for the main thread.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c14","text":"In that same benchmark Kimi-K2.7-Code scores 0.0 on keycloak-rds-iam, a real failure recorded as hitting the 60-turn cap with 2 of 4 artifacts, on a task Qwen3.6-35B leads at 48.75.","tier":"independent","section":"Quality, honestly: one benchmark, one retraction, one zero","interaction_risk":false,"status":"active","source_ids":["s13"],"why_material":"Without it the recommendation reads as unqualified, and the one blown task is what erases the margin.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c15","text":"Workers AI implements the OpenAI Chat Completions surface and not the Responses API, so Responses-API clients need a proxy.","tier":"system","section":"What breaks","interaction_risk":false,"status":"active","source_ids":["s11","s19"],"why_material":"It tells a Codex user in one line whether the integration will work before they try it.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c16","text":"Six model aliases resolved to @cf/moonshotai/kimi-k2.7-code, @cf/zai-org/glm-5.2, @cf/zai-org/glm-4.7-flash, moonshotai/kimi-k3, xai/grok-4.5 and minimax/m3, confirmed by the resolved id in each response and each gateway log row.","tier":"system","section":"First-party measurement: the same coding prompt through six models","interaction_risk":false,"status":"active","source_ids":["s12","s24"],"why_material":"A measurement of six models is worthless if an alias silently resolved to a different model, which has happened on this account before.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c19","text":"All six models returned the identical two-line list comprehension for the same prompt, with a 19x spread between the cheapest and dearest turn.","tier":"system","section":"First-party measurement: the same coding prompt through six models","interaction_risk":false,"status":"active","source_ids":["s24"],"why_material":"It sets the floor for what model choice buys on simple work: nothing, at up to nineteen times the price.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c20","text":"GLM-4.7 Flash spent 587 output tokens and 7,571 ms on a two-line answer, 4.5 times the output of any other model measured.","tier":"system","section":"First-party measurement: the same coding prompt through six models","interaction_risk":false,"status":"active","source_ids":["s24"],"why_material":"The cheapest input rate does not imply the cheapest turn, because the reasoning trace is billed as output.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c21","text":"A reasoning model at max_tokens 24 returns finish_reason length with null content and still bills 24 output tokens.","tier":"system","section":"What breaks","interaction_risk":false,"status":"active","source_ids":["s25"],"why_material":"It is the single most common empty-answer bug when pointing a client at these models.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false},{"id":"c22","text":"The three Workers AI turns reconcile to their logged cost exactly against the published per-million rates, while a previously recorded 149,187-input-token turn billed $0.02852109 does not and is published as unreconciled.","tier":"system","section":"First-party measurement: the same coding prompt through six models","interaction_risk":false,"status":"active","source_ids":["s26"],"why_material":"A reader building a chargeback report needs to know the dollar column holds at small token counts and has not been shown to hold at large ones.","retracted_at":null,"retraction_reason":null,"challenged_by":[],"effective_weight":0.1,"quote_gated":false}],"sources":[{"id":"s1","type":"publisher_documentation","url":"https://developers.cloudflare.com/workers-ai/platform/pricing/","title":"Workers AI pricing","quote":"Workers AI is included in both the Free and Paid Workers plans and is priced at **$0.011 per 1,000 Neurons**.","summary":"The canonical per-model rate card: every @cf/ model with a Price in Tokens column and a Price in Neurons column, plus the 10,000-Neuron daily free allocation. Positive: it is the only place the two units appear side by side. Negative: its dollar column rounds GLM-4.7 Flash to $0.060 while its own neuron figure works out to $0.0605.","claim_ids":["c1","c3","c6","c7"]},{"id":"s2","type":"publisher_documentation","url":"https://developers.cloudflare.com/ai-gateway/features/unified-billing/","title":"Unified Billing","quote":"Workers AI models (models prefixed with `@cf/`) routed through AI Gateway are not charged via Unified Billing. These models are billed through Workers AI pricing instead. Unified Billing only applies to third-party provider models (such as OpenAI, Anthropic, and Google AI Studio).","summary":"States the billing split that the whole id-prefix distinction rests on, plus the 5% fee on credit purchases and the requirement that the gateway be authenticated. What a reader gets: the reason a catalogue id and a Workers AI id cannot be swapped freely.","claim_ids":["c1","c2"]},{"id":"s3","type":"publisher_documentation","url":"https://developers.cloudflare.com/ai/models/","title":"Cloudflare AI model catalog","quote":"kimi-k3Moonshot AIText GenerationKimi K3 is Moonshot's flagship 2.8 trillion-parameter model... Third-party","summary":"The combined listing of Cloudflare-hosted and third-party models, tagged 'Cloudflare-hosted' or 'Third-party'. Useful for seeing both families in one place; useless for prices, which are absent for every third-party entry.","claim_ids":["c2","c4"]},{"id":"s4","type":"publisher_documentation","url":"https://developers.cloudflare.com/ai/models/moonshotai/kimi-k3/","title":"Kimi K3 (Moonshot AI) model page","quote":"Context Window | 1,048,576 tokens ... Request formats | Chat Completions ... Pricing | View pricing in the Cloudflare dashboard","summary":"The largest context window Cloudflare will route, and a Pricing row that is a dashboard link rather than a number. Negative: no per-token rate is published for this model anywhere in the documentation.","claim_ids":["c4","c5"]},{"id":"s5","type":"publisher_documentation","url":"https://developers.cloudflare.com/ai/models/minimax/m3/","title":"MiniMax M3 model page","quote":"Context Window | 1,000,000 tokens ... Request formats | Chat Completions, Anthropic Messages ... Pricing | View pricing in the Cloudflare dashboard","summary":"Lists Anthropic Messages as a supported request format for this model. Measured behaviour contradicts the envelope that implies: the endpoint answers with an OpenAI chat.completion body. Negative, and the contradiction is the point.","claim_ids":["c4","c9"]},{"id":"s6","type":"publisher_documentation","url":"https://developers.cloudflare.com/ai/models/xai/grok-4.5/","title":"Grok 4.5 (xAI) model page","quote":"Context Window | 500,000 tokens ... Pricing | View pricing in the Cloudflare dashboard","summary":"Third of the three catalogue coding models, same missing price. Confirms the omission is systematic rather than an oversight on one page.","claim_ids":["c4"]},{"id":"s7","type":"publisher_documentation","url":"https://developers.cloudflare.com/workers-ai/features/json-mode/","title":"JSON Mode","quote":"Workers AI supports JSON Mode, enabling applications to request a structured output response when interacting with AI models. JSON Mode is compatible with OpenAI's implementation; to enable add the `response_format` property to the request object","summary":"The feature that breaks reasoning models. Documents the response_format contract without noting that a model which emits a think preamble has nowhere to put it. Positive on syntax, silent on the failure mode.","claim_ids":["c11"]},{"id":"s8","type":"publisher_documentation","url":"https://developers.cloudflare.com/workers-ai/features/function-calling/","title":"Function calling","quote":"In essence, function calling allows you to perform actions with LLMs by executing code or making additional API calls.","summary":"Explains the capability an agent cannot work without. Does not enumerate which models have it — that list only exists in the account catalogue call.","claim_ids":["c3"]},{"id":"s9","type":"specification","url":"https://developers.cloudflare.com/api/resources/ai/subresources/models/methods/list/","title":"Cloudflare API reference: AI models list","quote":"GET /accounts/{account_id}/ai/models/search","summary":"The API method that returns the account's model catalogue with context_window, function_calling, vision and price properties. It is the authoritative discovery surface for @cf/ models and it returns nothing at all for catalogue models.","claim_ids":["c3","c4","c6"]},{"id":"s10","type":"specification","url":"https://developers.cloudflare.com/ai-gateway/usage/rest-api/","title":"AI Gateway REST API","quote":"curl -X POST \"https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/v1/chat/completions\"","summary":"The endpoint contract for both /ai/v1/chat/completions and /ai/v1/messages, which is where the Anthropic-shape refusal comes from. Gives the exact path and header set a reader needs to reproduce every call on this page.","claim_ids":["c8","c9"]},{"id":"s11","type":"publisher_documentation","url":"https://developers.cloudflare.com/workers-ai/configuration/open-ai-compatibility/","title":"OpenAI compatible API endpoints","quote":"/ai/v1/chat/completions","summary":"Defines the compatibility surface as Chat Completions and Embeddings. Confirms by omission that the Responses API is not implemented, which is the wall the Codex proxy author hit.","claim_ids":["c15"]},{"id":"s12","type":"repository","url":"https://github.com/massoumicyrus/claude-code-cloudflare-gateway","title":"claude-code-cloudflare-gateway","quote":"['claude-kimi-k2.7-code', '@cf/moonshotai/kimi-k2.7-code', 'Kimi K2.7 Code (Workers AI, 262k)']","summary":"MIT-licensed translator between the Anthropic Messages API and the Cloudflare AI REST surface. Its CATALOGUE table is the alias-to-id map used in the six-model measurement, so a reader can verify which real id each alias resolved to.","claim_ids":["c16"]},{"id":"s13","type":"github","url":"https://github.com/aarora79/agentic-coding-harness-benchmarks/pull/10","title":"README: publish self-hosted results (Kimi-K2.7-Code + 3 Qwen models)","quote":"**Hardware:** Kimi-K2.7-Code (1.06T-param MoE) ran on **8x H200** (`p5en.48xlarge`); the three Qwen models (3B-active MoE) on a single **`g6e.12xlarge`** (4x L40S). All via vLLM.","summary":"Retracted a previously published 5x6 results matrix because the per-model numbers were not reproducible from artifacts in the repo, and republished only end-to-end runs. Kimi-K2.7-Code scores a 58.95 five-task mean against Qwen3.6-35B at 56.25 and Qwen3-Coder-30B at 34.15, but scores 0.0 on keycloak-rds-iam where Qwen3.6-35B leads. Positive on Kimi, and unusually honest about hardware cost asymmetry.","claim_ids":["c13","c14"]},{"id":"s14","type":"github","url":"https://github.com/OpenHackersClub/flare-dispatch/pull/213","title":"fix(review-agent): stop sending guided-JSON by default — it breaks GLM on the Workers AI binding","quote":"glm-4.7-flash answers correctly in the Cloudflare playground but failed **every** pr-review with `StructuredOutputInvalid: empty`.","summary":"Root-caused a total GLM failure on the Workers AI binding to constrained decoding: sending the schema as response_format forbids the <think> preamble a reasoning model emits first, so the engine's think-strip leaves nothing. Confirmed glm-5.2, the catalog's most expensive GLM, failed identically — proving it was the decode path, not the model. Explicitly retracts the earlier \"GLM is out\" verdict. Negative finding, positive outcome.","claim_ids":["c11"]},{"id":"s15","type":"github","url":"https://github.com/tenstorrent/tt-inference-server/issues/4441","title":"[Kimi-K2.7-Code] Corrupted Outputs","quote":"People chatting on the console were seeing corrupted outputs. We did not observe something like this during the weekend nor with release workflow with limited samples.","summary":"Serving-side report from Tenstorrent: Kimi-K2.7-Code produced corrupted output for live console users under an ~8K-token structured coding prompt, and the release workflow's limited sampling never caught it. Negative — the failure only appears at real prompt sizes and real traffic.","claim_ids":["c12"]},{"id":"s16","type":"github","url":"https://github.com/anomalyco/opencode/issues/38813","title":"Internal Service Error in kimi-k2.7-code","quote":"When I use the kimi-k2.7-code provided by a third party, I get the following error in consistency complex tasks:{\"type\":\"error\",\"sequence_number\":1584,\"code\":\"InternalServiceError\",\"message\":\"The service encountered an unexpected internal error.\",\"param\":\"\"}","summary":"opencode 1.18.5 on Windows 11, Kimi-K2.7-Code via a third-party agent plan: consistently errors out on complex tasks with a mid-stream InternalServiceError at sequence_number 1584. Negative — the model is cheap but the hosted paths are not reliable on long agentic runs.","claim_ids":["c12"]},{"id":"s17","type":"github","url":"https://github.com/ollama/ollama-vscode/issues/9","title":"Having some trouble with vision support for Kimi K2.7 Code","quote":"The original VSCode built-in Ollama seem to work vision of with Kimi K2.7 Code. However, when use with models provided by this extension, Kimi complains corrupted images.","summary":"Same model, two client paths: vision works through the VS Code built-in Ollama integration and fails with corrupted-image complaints through the extension's own provider. Negative, and the same class of client-side payload-shape bug that breaks image reading when a coding CLI is pointed at a non-native backend.","claim_ids":["c10"]},{"id":"s18","type":"github","url":"https://github.com/github/copilot-cli/issues/4029","title":"Kimi K2.7 Code is not available in Pro subscription","quote":"The GitHub policy says that Kimi Code 2.7 (model `kimi-k2.7-code`) is available for Pro subscription. - In fact, it is listed in the `Blocked / Disabled` list.","summary":"Copilot Pro subscriber cites the 2026-07-01 changelog announcing Kimi K2.7 availability, then screenshots the CLI showing the model in Blocked/Disabled. Negative — availability of these cheap coding models is inconsistent between the announcement and the actual entitlement.","claim_ids":["c17"]},{"id":"s19","type":"hn","url":"https://news.ycombinator.com/item?id=47739925","title":"Show HN: Codex Workers AI Proxy – Use Cloudflare Workers AI models in Codex CLI","quote":"Workers AI has an OpenAI-compatible API so I expected it to just work with Codex. Nope. The Responses API surface doesn't map","summary":"Had a large unused Cloudflare Startups credit and wanted to spend it on Workers AI models — names Kimi K2.5, Gemma 4, GLM-4.7-Flash and GPT-OSS-120B as the interesting ones. Tried OpenCode's Cloudflare provider first and found the integration incomplete, then hit the Responses-API mismatch and had to write a proxy. Mixed: real cost motive, real breakage.","claim_ids":["c15"]},{"id":"s20","type":"hn","url":"https://news.ycombinator.com/item?id=46366013","title":"Comment on \"GLM-4.7: Advancing the Coding Capability\" — GLM in Claude Code","quote":"I had been using GLM in Claude code with Claude code router, because while you can just change the API endpoint, the web search function doesn't work, and neither does image recognition.","summary":"Ran GLM behind a coding CLI, found its output roughly twice as long and around 30% less readable than the first-party model's. Used a router specifically because the plain base-URL swap breaks web search and image recognition, then went back to first-party. Negative — and the first half of a pair with the same author.","claim_ids":["c18"]},{"id":"s21","type":"hn","url":"https://news.ycombinator.com/item?id=48568587","title":"Comment — z.ai GLM behind Claude Code via a bashrc alias","quote":"But it just works with Claude Code? They have a guide on their website.","summary":"Same operator, six months later, opposite verdict: shares the working alias with GLM-5.2 on the main slot and GLM-4.7 on the background slot. Positive. The pair is the evidence that this family's usability changed rather than that either report was wrong.","claim_ids":["c18"]},{"id":"s22","type":"hn","url":"https://news.ycombinator.com/item?id=46082971","title":"Comment — Claude Code running GLM 4.6 can't do simple tasks","quote":"For some reason I can't even get Claude Code (Running GLM 4.6) to do the simplest of tasks today without feeling like I want to tear my hair out, whereas it used to be pretty good before.","summary":"Daily-driver report of a swapped-backend setup degrading over time — the same configuration that used to work stopped handling simple tasks. Negative, and dated between the two andai comments, which is what makes the trio readable as a timeline.","claim_ids":["c18"]},{"id":"s23","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/workers-ai-coding-models","title":"Account model catalogue read on 2026-07-26","quote":"61 models total; 26 Text Generation; 13 with function_calling=true. @cf/zai-org/glm-4.7-flash price: [{\"unit\":\"per M input tokens\",\"price\":0.0605},{\"unit\":\"per M output tokens\",\"price\":0.4}]","summary":"First-party: GET /accounts/<ACCOUNT_ID>/ai/models/search?per_page=500 with a Workers AI Read token. Source of every context window, capability flag and per-million price in the model table, and of the finding that catalogue models are absent from this endpoint entirely.","claim_ids":["c10","c3","c4","c6"]},{"id":"s24","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/workers-ai-coding-models","title":"Six models, one coding prompt, measured latency, tokens and cost","quote":"claude-kimi-k2.7-code 2745ms 49/185 $0.00078655 | claude-glm-5.2 2454ms 53/135 $0.0006682 | claude-glm-flash 7571ms 46/587 $0.00023756 | claude-kimi-k3 6663ms 126/127 $0.002283 | claude-grok-4.5 2271ms 248/37 $0.0010764 | claude-minimax-m3 1809ms 217/68 $0.00011934","summary":"First-party, 04:35:23-04:35:44 UTC 2026-07-26: one POST /v1/messages per model, max_tokens 1024, no tools, single user message. All six returned the identical list comprehension. Latency measured client-side; token counts from the response usage block; cost read from the matching AI Gateway log rows. Establishes the 19x price spread on byte-identical output.","claim_ids":["c16","c19","c20","c5"]},{"id":"s25","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/workers-ai-coding-models","title":"Reasoning budget, guided JSON and the Anthropic-endpoint refusal","quote":"{\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"message\":\"AiError: Anthropic Messages API is not supported for model \\\"@cf/moonshotai/kimi-k2.7-code\\\"\"}}","summary":"First-party on 2026-07-26. GLM-4.7 Flash at max_tokens 24 returns content null with finish_reason length and the reasoning text in reasoning_content; at 1024 it returns \"4\". The same model with a two-field json_schema returns content null at max_tokens 256 and valid JSON at 2048 after 760 output tokens. /ai/v1/messages refuses @cf/ ids with the quoted error and answers minimax/m3 with an OpenAI chat.completion body.","claim_ids":["c11","c21","c8","c9"]},{"id":"s26","type":"runtime_receipt","url":"https://miscsubjects.com/api/articles/workers-ai-coding-models","title":"Neuron reconciliation and the row that does not reconcile","quote":"{\"prompt_tokens\":18,\"completion_tokens\":24,\"total_tokens\":42,\"neurons\":0.9726}","summary":"First-party: a direct Workers AI call returns a neurons figure that matches the pricing page's neuron rates exactly, while the dollar columns round. The three Workers AI rows in the six-model run multiply out to the logged cost to the last digit; a previously recorded 149,187-input-token Kimi turn billed $0.02852109 does not, implying the cached rate on a turn reporting 64 cached tokens. Published as unreconciled.","claim_ids":["c22","c7"]}],"anecdotal_sources":[],"scientific_sources":[],"user_reports":[],"related_articles":[],"question_graph":{"slug":"workers-ai-coding-models","questions":[],"evidence":[],"edges":[],"counts":{"questions":0,"evidence":0,"edges":0}},"honesty":{"active_claims":22,"retracted_claims":0,"cut_claims":0,"challenges":0,"scrub_events":0,"note":"Retracted/cut claims stay on ledger but are excluded from ask unless ?include_inactive=1"},"counts":{"claims":22,"claims_total":22,"sources":26,"anecdotal":0,"scientific":0,"user_reports":0,"questions":0,"evidence_ingests":0}}