This guide uses source checks from Sep 25, 2026. Provider and gateway prices can change; preserve the checked date with every forecast.
Why This Topic Matters Now
The Sep 24 report highlighted Qwen API intent and noted that QwenCloud separates text, image, video, audio, omni, embedding, reranking, and tool billing. The production challenge is therefore capability selection, not a single Qwen model ranking. A team may start with text extraction, add image understanding, then discover that an embedding or speech step has a different unit, endpoint, retry policy, and data boundary.
This guide gives Tier 1 and Tier 2 product teams a route-selection matrix for Qwen multimodal workloads. It treats the provider docs as capability evidence and AIWave as a separate gateway evidence layer. The practical deliverable is a request ledger that can answer which modality ran, which unit was billed, which schema was expected, and which fallback is safe when a route cannot accept the input.
Source Facts Checked Today
AIWave /api/pricing was checked from production on Sep 25, 2026 and returned HTTP 200, success=true, 73 live route rows, pricing_version a42d372ccf0b5dd13ecf71203521f9d2, auto_groups=['default'], group_ratio default=1 and vip=0.9. The public /api/v1/pricing endpoint returned HTTP 200 with 56 dated USD rows, pricing_version 83f77abde81ee3a096a672ed959ccc096f5d37a45c177ae8e03229456b5415a5, checked=2026-09-10, and updated_at=2026-09-18. Use the live response for route availability and the dated JSON for a forecast; they are not one interchangeable rate table.
QwenCloud's pricing page checked on Sep 25, 2026 says text models are billed per million tokens, image generation by image, video by generated second, text-to-speech by 10,000 input characters, speech-to-text by audio second, and embeddings/reranking by input tokens. It also notes that multimodal speech-to-speech conversations can accumulate historical input across turns.
QwenCloud's model-selection page checked on Sep 25, 2026 groups offerings into text generation, image/video understanding and generation, audio and speech, omni, embeddings and reranking, and decision models. That grouping is useful for a capability matrix, but it does not prove that a particular AIWave route exposes every provider feature; test the actual endpoint and model ID.
The dated AIWave public pricing JSON checked in this run lists qwen3.5-omni-flash at $0.490976448 input and $2.9681760225 output per 1M tokens, effective 2026-08-27, and qwen3.5-plus at $0.4463422255 input and $2.6780533528 output. The live route response separately includes Qwen vision, audio, embedding, image, and omni rows; treat those route multipliers as availability metadata, not as a provider-direct invoice.
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.
| Workload | Capability boundary | Billing and QA evidence |
|---|---|---|
| Text extraction | Text input and typed output | Input/output tokens and schema |
| Vision review | Image input and visual understanding | Image count, token fields, redaction |
| Omni conversation | Multiple modalities across turns | Historical context and modality ledger |
| Speech | Audio or character unit | Seconds/characters and transcript QA |
| Embedding | Vector output rather than prose | Input tokens and dimension check |
| Reranking | Candidate list plus scores | Candidate count and relevance set |
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 openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY_HERE",
base_url="https://aiwave.live/v1",
)
route = {
"model": "qwen3.5-omni-flash",
"modality": "text-plus-image-understanding",
"billing_unit": "tokens",
"checked_at": "2026-09-25",
}
response = client.chat.completions.create(
model=route["model"],
messages=[{"role": "user", "content": "Describe the redacted image in one JSON object."}],
temperature=0.0,
max_tokens=220,
)
print({"route": route, "finish": response.choices[0].finish_reason,
"usage": response.usage})
Turn the Query Into a Contract
For Qwen multimodal capability and billing selection, define the request shape, model ID, data class, output ceiling, timeout, retry ceiling, owner, and source date before the first trial. A short contract gives engineering, security, and finance the same object to review when a provider changes a route or billing field.
Separate Live Routes From Dated Rates
The live AIWave pricing response answers which route rows and endpoint types are available at check time. The public pricing JSON is a dated USD snapshot for forecasting. Store both URLs, versions, checked dates, model IDs, and account-group context instead of presenting a volatile source as a permanent quote.
Use a Small Acceptance Set
A useful canary covers a normal request, a malformed request, a repeated prefix, a long output, a disconnect, and a deliberate stop condition. Record request ID, model ID, status, token usage, finish reason, retry count, and reviewer outcome. This turns a search result into evidence that can survive a route update.
Keep Data and Credentials Bounded
OpenAI-compatible clients reduce integration work, but they do not choose the right data boundary. Keep the credential server-side, use a visible placeholder in examples, redact fixtures, and attach a data-class decision to every route policy. Do not let a feature flag or model alias silently widen what crosses the API.
Make Recovery Observable
Retry only failures that are safe to retry and cap every fallback. Preserve the original request ID, mark the stop reason, and distinguish provider errors from client validation, policy rejection, and budget stops. Silent loops hide both reliability failures and billing variance.
Use AIWave's Evidence Layer
Use the Models docs, Chat Completions docs, live pricing API, and Trust. Recheck the live route table before rollout, the dated pricing JSON before a budget review, the status page before a launch window, and the trust page before procurement. Keep each checked date visible in the record.
Release Gate
Promotion is ready when the provider source is dated, the AIWave route is rechecked, the acceptance set passes, the billing fields are understood, and a named owner can stop or reverse the change. If a field is unknown, label the work as a trial rather than production.