← All articles

Qwen Legacy Tier Sunset 2026-07-13: Migrating qwen-turbo, qwen-vl-max, qwen-coder-plus, and QwQ/QVQ Before the Deadline

On 2026-07-13 Bailian retires 10 Qwen legacy commercial tiers — qwen-turbo, qwen-vl-max, qwen-coder-plus, qwq-plus, qvq-max, and more. Full replacement matrix, code diffs, pricing delta, and rollback path before the deadline.

· TheRouter

Qwen Legacy Tier Sunset 2026-07-13: Migrating qwen-turbo, qwen-vl-max, qwen-coder-plus, and QwQ/QVQ Before the Deadline

On 2026-07-13 Alibaba Cloud Bailian (Model Studio) retires 10 Qwen legacy commercial tiers: qwen-turbo, qwen-turbo-realtime, qwen-vl-max, qwen-vl-plus, qwq-plus, qvq-max, qvq-plus, qwen-math-turbo, qwen-coder-turbo, and qwen-coder-plus. These are the last "classic" Qwen tier names — after this sunset the Bailian catalog is fully consolidated into the Qwen3.7/3.6/3.5 generation. If you call any of these model IDs through Bailian's OpenAI-compatible endpoint, you have 32 days to migrate. Aliyun's official replacements all land on the Qwen3.7/3.6 series. This guide gives you the exact model-ID mapping, code diffs, pricing delta, and a rollback path you can execute before the deadline.

We route OpenAI-compatible requests through configured providers and support provider/model routing and fallback where the live product path supports it. We do not claim universal model support, zero downtime, or guaranteed cheapest pricing. Every replacement claim below is verified against Aliyun's own pricing and deprecation docs at retrieval time.

30-second answer: what's sunsetting and when

  • Sunset date: 2026-07-13 00:00:00 Beijing time (Source: Aliyun Model Deprecation page, retrieved 2026-06-11).
  • What it affects: 10 legacy Qwen commercial-tier model IDs on Bailian. These are non-snapshot "mainline" tiers — the last generation before the Qwen3.7/3.6 naming convention.
  • Official replacements: qwen3.7-plus, qwen3.7-max, qwen3.6-flash, qwen3.6-plus (depending on the tier being replaced).
  • Scope: These are Bailian-hosted model IDs only. If you are using Qwen through DashScope SDK or an older qwen-max/qwen-plus codebase, check whether your model ID matches the deprecated list below.

Affected model IDs and replacement matrix

From the Aliyun Model Deprecation page, 2026-07-13 wave. Retrieved 2026-06-11.

CategoryDeprecated model IDAliyun-recommended replacementCapability delta
Qwen Turboqwen-turboQwen3.7/3.6 series latest modelsTurbo was the cheapest text tier. Replacement lands on qwen3.5-flash for cost or qwen3.6-flash for quality.
Qwen Turboqwen-turbo-realtimeQwen3.7/3.6 series latest modelsRealtime mode deprecation. No exact drop-in realtime successor announced — use standard qwen3.6-flash.
Qwen VLqwen-vl-maxQwen3.7/3.6 series latest modelsVision-language Max tier → qwen3.7-max (which gained vision modality on 2026-06-08, see newly released models).
Qwen VLqwen-vl-plusQwen3.7/3.6 series latest modelsVision-language Plus tier → qwen3.7-plus (vision upgraded 2026-06-01).
QwQqwq-plusQwen3.7/3.6 series latest modelsReasoning-only tier → qwen3.7-plus with explicit thinking mode enabled, or qwen3.7-max for heavier reasoning.
QVQqvq-maxQwen3.7/3.6 series latest modelsMultimodal reasoning tier → qwen3.7-max (vision + thinking).
QVQqvq-plusQwen3.7/3.6 series latest modelsMultimodal reasoning tier → qwen3.7-plus (vision + thinking).
Qwen Mathqwen-math-turboQwen3.7/3.6 series latest modelsMath-specialized tier → general-purpose qwen3.6-flash or qwen3.7-plus. Math specialization no longer a separate tier.
Qwen Coderqwen-coder-turboQwen3.7/3.6 series latest modelsCoding-specialized cheap tier → qwen3.6-flash.
Qwen Coderqwen-coder-plusQwen3.7/3.6 series latest modelsCoding-specialized premium tier → qwen3.7-plus.

Key change: The Qwen lineup is no longer segmented by task (turbo/vl/coder/math). The replacement tiers are general-purpose models that cover all modalities. If you were relying on a task-specific tier for cost or capability reasons, the mapping above is the closest match.

Code diff: before/after migration

The change is a single string substitution: swap the deprecated model parameter. No other code changes needed — the replacement models use the same OpenAI-compatible API surface.

Python — qwen-turbo → qwen3.6-flash

# Before
from openai import OpenAI

client = OpenAI(
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key="<DASHSCOPE_KEY>",
)

resp = client.chat.completions.create(
    model="qwen-turbo",
    messages=[{"role": "user", "content": "Summarize this report."}],
)
# After
from openai import OpenAI

client = OpenAI(
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key="<DASHSCOPE_KEY>",
)

resp = client.chat.completions.create(
    model="qwen3.6-flash",   # or qwen3.5-flash for the cheapest option
    messages=[{"role": "user", "content": "Summarize this report."}],
)

Python — qwq-plus → qwen3.7-plus with thinking mode

# Before
resp = client.chat.completions.create(
    model="qwq-plus",
    messages=[{"role": "user", "content": "Solve this proof."}],
)
# After — qwen3.7-plus in thinking mode
resp = client.chat.completions.create(
    model="qwen3.7-plus",
    messages=[{"role": "user", "content": "Solve this proof."}],
    extra_body={"enable_thinking": True},
)

Python — qwen-vl-max → qwen3.7-max with vision

# Before
resp = client.chat.completions.create(
    model="qwen-vl-max",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": "https://example.com/chart.png"}},
            {"type": "text", "text": "Describe this chart."},
        ],
    }],
)
# After — qwen3.7-max gained vision on 2026-06-08
resp = client.chat.completions.create(
    model="qwen3.7-max",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": "https://example.com/chart.png"}},
            {"type": "text", "text": "Describe this chart."},
        ],
    }],
)

Python — qwen-coder-plus → qwen3.7-plus

# Before
resp = client.chat.completions.create(
    model="qwen-coder-plus",
    messages=[{"role": "user", "content": "Write a Python binary search."}],
)
# After
resp = client.chat.completions.create(
    model="qwen3.7-plus",
    messages=[{"role": "user", "content": "Write a Python binary search."}],
)

TypeScript — multi-tier fallback via TheRouter

If you route through TheRouter, you can set up a fallback chain that picks the right replacement tier automatically:

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://api.therouter.ai/v1',
  apiKey: process.env.THEROUTER_API_KEY,
});

// Fallback chain: qwen3.7-plus → qwen3.6-flash
const completion = await client.chat.completions.create({
  model: 'qwen/qwen3.7-plus',
  extra_body: {
    models: ['qwen/qwen3.7-plus', 'qwen/qwen3.6-flash'],
  },
  messages: [{ role: 'user', content: 'Hello' }],
});

The models array is TheRouter's fallback hint, documented at TheRouter Model Fallbacks. Fallback only fires when the primary route is unavailable; it is not a parallel-call mechanism.

Pricing delta: old tiers vs replacements

All prices below are per 1 million tokens, Beijing region, retrieved 2026-06-11 from Aliyun Model Pricing. Prices change — re-check before relying on them for a finance decision.

ModelInput (per 1M tokens)Output (per 1M tokens)Notes
Deprecated: qwen-turbo¥0.30¥0.60 (non-thinking) / ¥3.00 (thinking)Cheapest text tier. Batch 50% off.
Replacement: qwen3.5-flash¥0.20 (≤128K)¥2.00 (non-thinking) / ¥2.00 (thinking)Cheapest replacement. Input cheaper, output more expensive.
Replacement: qwen3.6-flash¥1.20 (≤256K)¥7.20Significant quality upgrade, significant price increase vs qwen-turbo.
Deprecated: qwq-plus¥1.60¥4.00 (thinking only)Reasoning-only tier. Batch 50% off.
Replacement: qwen3.7-plus¥2.00 (≤256K)¥8.00 (non-thinking) / ¥8.00 (thinking)General-purpose with thinking. ~2.5× more expensive but broader capability.
Deprecated: qwen-coder-plusPricing not individually listed (similar to qwen-plus tier)—Was a specialized coder tier.
Replacement: qwen3.7-plus¥2.00 (≤256K)¥8.00General-purpose replacement.
Replacement: qwen3.7-max¥12.00 (≤1M)¥36.00For heavy-duty reasoning / vision tasks.

Cost migration pattern: The legacy tiers were cheap and specialized. The Qwen3.7/3.6 replacements are more expensive per token but substantially more capable. If cost was your primary reason for using qwen-turbo, qwen3.5-flash at ¥0.20/¥2.00 is the closest match on price. If quality matters more, qwen3.6-flash or qwen3.7-plus are the recommended paths.

Thinking-mode billing note: qwq-plus was thinking-only and billed thinking tokens at output rate. qwen3.7-plus with enable_thinking: true charges thinking tokens at ¥8.00/M, the same as output tokens. Your cost per reasoning task may increase.

Gotchas: auth, model-ID mapping, rate limits

  • No auth change. Your existing DashScope API key works with the replacement models. This is not a provider migration — it is a tier rename within Bailian.
  • Model ID string change. The deprecated IDs (qwen-turbo, qwq-plus, etc.) will return 404 after 2026-07-13. Update every call site. A grep -r "qwen-turbo\|qwq-plus\|qvq-max\|qwen-coder-plus\|qwen-vl-max" . will find them.
  • Thinking mode is explicit. qwq-plus and qvq-max were always in thinking mode. The replacements (qwen3.7-plus, qwen3.7-max) default to non-thinking. You must pass enable_thinking: True to get reasoning output.
  • Vision is built in. qwen-vl-max / qwen-vl-plus were separate vision endpoints. qwen3.7-max and qwen3.7-plus now accept image inputs natively (vision added 2026-06-08 and 2026-06-01 respectively). Same message format, different model ID.
  • Rate limits differ. Legacy tier rate limits were documented per tier in Bailian's rate-limit table. The Qwen3.7/3.6 replacements have different default QPM/TPM. Check your model-telemetry page and request an increase if needed.
  • qwen-turbo-realtime has no direct replacement. The realtime streaming tier is being retired entirely. Use qwen3.6-flash in standard streaming mode — the response latency may differ.
  • Singapore/Frankfurt pricing differs. International deployment pricing for replacement models is higher than Beijing-region pricing. See the Aliyun Model Pricing page for region-specific rates.

Rollback path before 2026-07-13

Until the deadline you can run both old and new model IDs in parallel.

  1. Audit your codebase. Find all references to the deprecated model IDs.
  2. Test the replacement. Call the replacement model ID with your existing prompts and evaluate output quality.
  3. Deploy with a config switch. Use an environment variable or config file for the model ID instead of hardcoding it:
    import os
    model = os.getenv("QWEN_MODEL_ID", "qwen3.6-flash")
    
  4. Rollback instantly. If the replacement doesn't work for your use case, flip the env var back to the old model ID. The old IDs are still live until 2026-07-13.
  5. After the deadline: The old model IDs stop returning results. Rollback to them is no longer possible. Plan to complete migration by 2026-07-12.

Follow-on sunset: 2026-09-08 wave

After the 2026-07-13 wave, Bailian retires another set on 2026-09-08: qwen3.6-max-preview, qwen3-max-preview, qwen3-max, qwen3-vl-flash, qwen3-coder-plus (Source: Aliyun Notice 118344). Those are replaced by qwen3.7-max, qwen3.6-flash, and qwen3.7-plus. If you are migrating now, targeting qwen3.7-plus / qwen3.7-max / qwen3.6-flash also insulates you from the September wave.

FAQ

What happens if I don't migrate before 2026-07-13?

The deprecated model IDs will stop returning results. Your API calls will get an error response. There is no grace period after the official sunset date.

Can I stay on qwen-turbo if I only use text and don't need the new features?

No. The model ID is being retired regardless of which features you use. You must switch to a replacement model ID.

Is qwen3.7-plus a drop-in replacement for qwq-plus?

It is the closest match, but with two differences: (1) you must explicitly enable thinking mode; (2) the pricing is higher per token. For pure reasoning workloads where cost matters, evaluate qwen3.6-flash with thinking enabled as a cheaper alternative.

Will my prompts work the same way on the replacement models?

The message format (OpenAI-compatible) is unchanged. However, the underlying model is different — Qwen3.7/3.6 models have different training data and capability profiles. We recommend running your existing eval set against the replacement before committing.

What about qwen-max and qwen-plus — are those retiring too?

Not in this wave. qwen-max and qwen-plus (and their snapshots like qwen-plus-2025-12-01) remain live. The 2026-07-13 wave specifically targets the legacy tiers listed in the table above.

Does TheRouter route to the replacement models?

We route OpenAI-compatible requests through configured providers. Check the live /models/ page to confirm qwen3.7-plus, qwen3.7-max, and qwen3.6-flash are available on the request path. We do not guarantee permanent availability of any specific model ID.

How does this sunset relate to the 2026-07-08 third-party snapshot retirement?

Different waves. The 2026-07-08 wave retires third-party model snapshots hosted on Bailian (DeepSeek, GLM, MiniMax, Moonshot). The 2026-07-13 wave retires Qwen's own legacy commercial tiers. They affect different model IDs and different migration paths.

Where do I learn more?

Sources

Help & contact