Automates complex research through planning, multiple rounds of web searches, and structured report generation. Gathers and synthesizes information without manual effort.
Deep research (Qwen-Deep-Research) plans research steps, runs multiple rounds of web searches, integrates what it finds, and produces a structured research report.
Supported regions: China North 2 (Beijing) only. Use an API key created in that region and
Create an API key and export it as an environment variable. If you use the DashScope SDK, install the SDK first.
The model uses a two-step workflow: a follow-up question step, where the model clarifies your research scope, and a deep research step, where the model searches, analyzes, and generates a report. The follow-up question lets the model understand exactly what to investigate before starting a lengthy research run.
Track progress with two response fields:
The model accepts images and incorporates them into the research. Set
Billing counts input tokens (user messages and system prompts) and output tokens (clarifying questions, research plans, goals, search queries, and the final report).
Stream the response
The model supports only streaming output (
Why is
https://cn-beijing.maas.qwencloudapi.com. See Regions and endpoints.
Getting started
Create an API key and export it as an environment variable. If you use the DashScope SDK, install the SDK first.
The model uses a two-step workflow: a follow-up question step, where the model clarifies your research scope, and a deep research step, where the model searches, analyzes, and generates a report. The follow-up question lets the model understand exactly what to investigate before starting a lengthy research run.
The model currently supports only the Python edition of the DashScope SDK and direct DashScope HTTP calls. It does not support the Java edition of the DashScope SDK or OpenAI-compatible calls.
Supported models
| Model | Context window | Max input | Max output |
|---|---|---|---|
qwen-deep-research | 1,000,000 | 997,952 | 32,768 |
qwen-deep-research is the mainline model and is continuously updated.
Core capabilities
Track progress with two response fields: phase is the current task, and status is the progress within that task.
Clarifying questions and report generation (phase: "answer")
Analyzes the query, asks clarifying questions to define the scope, and generates the final research report.
typing: Generating text contentfinished: Text content generation completed
phase: "ResearchPlanning")
Creates a research outline from the query.
typing: Generating the research planfinished: Research plan completed
phase: "WebResearch")
Runs multiple rounds of web searches and content analysis. WebResultFinished marks the end of each round; finished marks the end of the phase.
streamingQueries: Generating research goals and search queriesstreamingWebResult: Running searches and analyzing web contentWebResultFinished: One search round completedfinished: Web search phase completed
phase: "KeepAlive")
Keeps the connection open between long-running tasks. Ignore this phase and continue reading the stream.
Image input
The model accepts images and incorporates them into the research. Set content to an array that mixes image and text objects.
- Supported formats: JPEG, PNG, BMP, WEBP. Up to 10 MB per image.
- Up to 5 images per request. Public URLs and Base64 encoding are supported.
- The response format is identical to text-only requests. The model generates a report based on the image content.
Billing
| Model | Input cost (per 1M tokens) | Output cost (per 1M tokens) | Free quota |
|---|---|---|---|
qwen-deep-research | $7.742 | $23.367 | None |
Going live
Stream the response
The model supports only streaming output (stream=True). A single research task can run for several minutes across dozens of search-and-read cycles, which exceeds the timeout of a synchronous request. Keep the connection open and track progress with phase and status.
Handle errors per chunk
Check the status code of each chunk. For non-200 status codes, read code and message and handle them appropriately.
Monitor token usage
When status is finished, read token usage from response.usage.
Skip the KeepAlive phase
KeepAlive only keeps the connection open between long-running tasks. Ignore it and continue reading the stream.
FAQ
Why is content empty for some chunks?
Early chunks carry metadata only. Content arrives in later chunks as the model generates it.
How do I know a phase is complete?
A phase completes when status becomes finished.
Does the model support OpenAI-compatible calls?
No. Use the DashScope SDK or direct DashScope HTTP calls.
How do I skip the clarifying questions and start research immediately?
Set enable_feedback to false in parameters.
How do I pass images?
Set content to an array of image and text objects. The model supports image input.