Cost Governance / Sep 3, 2026

Qwen Kimi GLM Add-On Billing Ledger for API Teams

Compare Qwen, Kimi, and GLM add-on billing with source dates, tool-call caps, cache fields, media rows, and AIWave gateway separation.

Keyword report: 2026-09-02Tier 1/2 developer focusSources checked Sep 3, 2026

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 columnQwen signalKimi signalGLM signal
input_tokensPer-million text inputChat input plus extracted document inputPer-million text input
cached_inputContext caching varies by modelK3 cache rows from source reportCached-input column in Z.AI table
output_tokensOutput and thinking tokens share output pricingChat output billed separatelyPer-million output row
batch_modeHalf-rate async token pricing where eligibleNot the same billing modeKeep separate unless provider docs say so
tool_callsSearch and image-search fees listedSearch/docs behavior needs source checkTool and agent rows listed
media_callsImage, video, speech families separateVision route needs policyVision, image, video, audio rows separate
gateway_mathAIWave qwen route row separateAIWave Kimi route row separateAIWave 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.

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.

Source Links

Related AIWave Links