This guide uses source checks from Sep 3, 2026. Provider and gateway prices can change; preserve the checked date with every forecast.
Why This Topic Matters Now
The Sep 2 report's strongest market read is that API buyers are no longer comparing Chinese model access only by text-token rows. QwenCloud documents Batch API, context caching, thinking-token billing, failed-call behavior, and built-in tool fees. Kimi documents input and output token billing, model-specific pricing links, Kimi K3 1M context, and document extraction behavior. Z.AI publishes GLM cached-input, media, tool, and agent rows. Those details matter more than a generic price comparison.
This guide gives Tier 1 and Tier 2 engineering teams a ledger for add-on billing across Qwen, Kimi, and GLM. It also keeps AIWave gateway rows separate from direct provider rows. The goal is to make every non-text cost visible before a coding agent, RAG workflow, analyst bot, or multimedia assistant creates a bill that finance cannot explain.
Source Facts Checked Today
QwenCloud pricing checked on Sep 3, 2026 describes pay-as-you-go billing where text models bill input and output separately. It says some text models use context-tiered request billing, Batch API uses half-rate input and output token pricing for eligible async workloads, context caching can discount cached input, thinking tokens count as output tokens, and Batch plus cache discounts cannot be combined on the same request. It also lists built-in tool fees such as Web Search at $10 per 1K calls and Image Search at $8 per 1K calls.
Kimi API pricing docs checked on Sep 3, 2026 describe token billing for chat completion input and output and say extracted document content passed into the model is billed as input. The same page links Kimi K3 as a flagship model with a 1M-token context window. The Sep 2 keyword report records additional Kimi source context: Kimi K3 at $0.30 cache-hit input, $3.00 cache-miss input, and $15.00 output per 1M tokens, with the warning to recheck the platform table before copying rows into evergreen content.
Z.AI pricing checked on Sep 3, 2026 lists USD prices, including GLM-5.3 and GLM-5.2 at $1.40 input, $0.26 cached input, and $4.40 output per 1M tokens, GLM-5.1 at the same $1.40, $0.26, and $4.40 text row, and GLM-5 at $1.00 input, $0.20 cached input, and $3.20 output. AIWave /api/pricing checked on Sep 3, 2026 returned 63 records and parsed gateway examples for Kimi K3, GLM-5.1, GLM-5, and qwen-72b-chat before account-group math.
Planning Matrix
A source-dated planning matrix keeps the page useful for engineers and procurement reviewers. It turns a search query into an auditable route decision instead of a loose model preference.
| Ledger column | Qwen signal | Kimi signal | GLM signal |
|---|---|---|---|
| input_tokens | Per-million text input | Chat input plus extracted document input | Per-million text input |
| cached_input | Context caching varies by model | K3 cache rows from source report | Cached-input column in Z.AI table |
| output_tokens | Output and thinking tokens share output pricing | Chat output billed separately | Per-million output row |
| batch_mode | Half-rate async token pricing where eligible | Not the same billing mode | Keep separate unless provider docs say so |
| tool_calls | Search and image-search fees listed | Search/docs behavior needs source check | Tool and agent rows listed |
| media_calls | Image, video, speech families separate | Vision route needs policy | Vision, image, video, audio rows separate |
| gateway_math | AIWave qwen route row separate | AIWave Kimi route row separate | AIWave GLM route row separate |
Implementation Pattern
The implementation pattern keeps credentials as placeholders, pins the AIWave base URL, records the model, and leaves room for route-specific controls. Production applications should move credentials into environment or secret storage.
from dataclasses import dataclass
@dataclass
class ApiLedgerRow:
provider: str
model: str
source_checked_at: str
input_tokens: int
cached_input_tokens: int
output_tokens: int
thinking_tokens: int
search_calls: int
image_search_calls: int
gateway_pricing_version: str | None = None
row = ApiLedgerRow(
provider="aiwave",
model="kimi-k3",
source_checked_at="2026-09-03",
input_tokens=180000,
cached_input_tokens=90000,
output_tokens=12000,
thinking_tokens=0,
search_calls=0,
image_search_calls=0,
gateway_pricing_version="a42d372ccf0b5dd13ecf71203521f9d2",
)
api_key_placeholder = "YOUR_API_KEY_HERE"
print({"api_key": api_key_placeholder, "ledger_row": row})
Do Not Average Add-Ons Into Text Tokens
The first rule is to keep feature families separate. A text-generation average hides too much: cached input, output, thinking tokens, search calls, document extraction, image generation, video seconds, speech characters, and tool calls all move differently. If a buyer later asks why the month-end bill changed, the ledger should point to the exact feature that moved, not a blended number nobody can audit.
Normalize Time and Currency
Source pages can use different currencies, units, and effective dates. Store the URL, checked date, currency, per-unit basis, and any promotion or limitation note. Do not convert a provider row into an AIWave row unless AIWave publishes or returns the corresponding gateway row. When currency conversion is needed internally, put the exchange rate and date in a separate field so it can be reviewed later.
Capture Failed-Request Policy
QwenCloud explicitly documents failed-request behavior for several generated-media workflows and states failed API calls do not consume quota in its pricing explanation. That policy should be recorded as a provider-source fact, not automatically assumed across every provider or gateway. For AIWave trials, record whether the specific request reached the model, whether usage fields were returned, and how the gateway ledger represented the failure.
Govern Batch and Cache Separately
Batch and cache are not interchangeable. QwenCloud says Batch API can use half-rate token pricing for async workloads and that Batch and cache discounts cannot be combined on the same request. Kimi and GLM have their own cache descriptions and pricing rows. A practical ledger should mark billing_mode as realtime, batch, cached, or unknown, then make the reviewer choose one documented assumption per request.
Add Tool-Call Caps
Search and image-search fees make add-on billing visible. For QwenCloud, Web Search and Image Search have per-call fee rows. Z.AI lists tool and agent pricing sections. Kimi docs link to model-specific pricing and describe input/output billing plus document behavior. Any agent that can call a tool should have max_search_calls, max_image_search_calls, retry ceiling, and stop reason in configuration.
Internal Links for Cost Governance
Cost-governance readers should move through Pricing, Models docs, Chat Completions, Trust, the Qwen failed-call ledger, and the Kimi coding-agent control guide. Those links connect the add-on ledger to route-specific pages.
Procurement Review
Procurement should ask for one row per provider and one row per gateway route. Each row should include source URL, checked date, model ID, billing mode, input tokens, cached input tokens, output tokens, thinking tokens, tool calls, media calls, failed-request policy, account group, and owner. Engineering should attach one redacted request and one ledger example before expanding a trial.
Final Checklist
A Qwen Kimi GLM add-on ledger is ready when text tokens, cached input, output, thinking tokens, Batch mode, search calls, media calls, failed-request policy, and gateway multipliers are separate. Recheck every provider page on publication or procurement day, keep AIWave rows separate from direct-provider rows, and never let an autonomous agent run without tool caps and retry limits.