Because large language models are trained on static datasets, they cannot answer real-time questions, such as stock prices or tomorrow’s weather, accurately. When you enable the web search feature, the model retrieves and responds using up-to-date information from the web.
Usage
The web search feature supports three invocation methods, each with distinct parameters for enabling it:
OpenAI compatible - Responses API
To enable the web search feature, add the web_search tool to the tools parameter.
The Responses API supports only Qwen3.5, qwen3-max, qwen3-max-2026-01-23.
For optimal responses, enable theweb_search,web_extractor, andcode_interpretertools together.
# Import dependencies and create client...
response = client.responses.create(
model="qwen3-max-2026-01-23",
input="Hangzhou weather",
tools=[
{"type": "web_search"},
{"type": "web_extractor"},
{"type": "code_interpreter"}
],
extra_body={"enable_thinking": True}
)OpenAI compatible - Chat Completions API
Pass the enable_search: true parameter to enable web search.
# Import dependencies and create client...
completion = client.chat.completions.create(
# Use a model that supports web search
model="qwen3-max",
messages=[{"role": "user", "content": "What will Hangzhou's weather be like tomorrow?"}],
# Since enable_search is not an OpenAI standard parameter, use extra_body with Python SDK (use top-level parameter with Node.js SDK)
extra_body={"enable_search": True}
)DashScope
Pass the enable_search: true parameter to enable web search.
# Import dependencies...
response = dashscope.Generation.call(
# If you haven't configured environment variables, replace the following line with your Model Studio API key: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Use a model that supports web search
model="qwen3-max",
messages=[{"role": "user", "content": "What will Hangzhou's weather be like tomorrow?"}],
# Enable web search via the enable_search parameter
enable_search=True,
result_format="message"
)Supported models
International
Qwen Plus: qwen3.5-plus, qwen3.5-plus-2026-02-15 and later snapshots
Both thinking and non-thinking modes support the
agentandagent_maxsearch strategies.Qwen Flash: qwen3.5-flash, qwen3.5-flash-2026-02-23 and later snapshots
Both thinking and non-thinking modes support the
agentandagent_maxsearch strategies.qwen3-max and qwen3-max-2026-01-23:
Non-thinking mode: Set the search strategy to
agent.Thinking mode: Set the search strategy to
agentoragent_max. The agent_max strategy supports web extractor in addition to the agent strategy.
qwen3-max-2025-09-23: Set the search strategy to
agent.
Global
Qwen Plus: qwen3.5-plus, qwen3.5-plus-2026-02-15 and later snapshots
Qwen Flash: qwen3.5-flash, qwen3.5-flash-2026-02-23 and later snapshots
The preceding models support the agent and agent_max search strategies in both thinking and non-thinking modes.
Chinese Mainland
Qwen Plus: qwen3.5-plus, qwen3.5-plus-2026-02-15 and later snapshots
Both thinking and non-thinking modes support the
agentandagent_maxsearch strategies.Qwen Flash: qwen3.5-flash, qwen3.5-flash-2026-02-23 and later snapshots
Both thinking and non-thinking modes support the
agentandagent_maxsearch strategies.qwen3-max and qwen3-max-2026-01-23:
Non-thinking mode: Set the search strategy to
agent.Thinking mode: Set the search strategy to
agentoragent_max. The agent_max strategy supports web extractor in addition to the agent strategy.
qwen3-max-2025-09-23: Set the search strategy to
agent.
Getting started
Quickly query stock information using the web search service.
OpenAI compatible
The OpenAI compatible protocol does not support returning search sources in responses.
Python
import os
from openai import OpenAI
client = OpenAI(
# If you haven't configured environment variables, replace the following line with your Model Studio API key: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-max",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "How is Alibaba's stock price?"},
],
extra_body={
"enable_search": True,
"search_options": {
# Web search strategy; only agent is supported
"search_strategy": "agent"
}
}
)
print(completion.choices[0].message.content)Response example
According to the latest market data, Alibaba's stock prices across different markets are as follows:
* **US stocks (BABA)**: Latest price approximately **$159.84**.
* **HK stocks (09988.HK)**: Latest price approximately **HK$158.00**.
Note that stock prices fluctuate in real time, and this information is for reference only. According to the latest market data, Alibaba's stock prices across different markets are as follows:
* **US stocks (BABA)**: Latest price approximately **$159.84**.
* **HK stocks (09988.HK)**: Latest price approximately **HK$158.00**.
Note that stock prices fluctuate in real time, and this information is for reference only.Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3-max",
messages: [
{ role: "user", content: "How is Alibaba's stock price?" }
],
enable_search: true,
search_options: {
// Web search strategy; only agent is supported
search_strategy: "agent"
}
});
console.log(completion.choices[0].message.content);
}
main();Response example
According to the latest market data, Alibaba's stock prices across different markets are as follows:
* **US stocks (BABA)**: Latest price approximately **$159.84**.
* **HK stocks (09988.HK)**: Latest price approximately **HK$158.00**.
Note that stock prices fluctuate in real time, and this information is for reference only. According to the latest market data, Alibaba's stock prices across different markets are as follows:
* **US stocks (BABA)**: Latest price approximately **$159.84**.
* **HK stocks (09988.HK)**: Latest price approximately **HK$158.00**.
Note that stock prices fluctuate in real time, and this information is for reference only.curl
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-max",
"messages": [
{
"role": "user",
"content": "How is Alibaba's stock price?"
}
],
"enable_search": true,
"search_options": {
"search_strategy": "agent"
}
}'DashScope
The DashScope protocol supports settingenable_sourcetotrueto include search sources in the response.
Python
import os
import dashscope
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1"
response = dashscope.Generation.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-max",
messages=[{"role": "user", "content": "Alibaba stock price"}],
enable_search=True,
search_options={
# Web search strategy; currently only agent is supported: enables multiple rounds of web search and LLM calls for iterative information retrieval and integration
"search_strategy": "agent",
"enable_source": True # Whether to return search sources
},
result_format="message",
)
print("="*20 + "Search results" + "="*20)
for web in response.output.search_info["search_results"]:
print(f"[{web['index']}]: [{web['title']}]({web['url']})")
print("="*20 + "Response content" + "="*20)
print(response.output.choices[0].message.content)Response example
====================Search results====================
[1]: [Alibaba (BABA) Stock Price, Quotes, Chart - East Money](https://wap.eastmoney.com/quote/stock/106.BABA.html)
[2]: [Alibaba (BABA) US Stock Quotes, Today's Price and Chart - Sina Finance](https://gu.sina.cn/quotes/us/BABA)
[3]: [Alibaba (BABA) Latest Stock Price, Real-time Chart, Analysis and Forecast](https://cn.investing.com/equities/alibaba)
[4]: [Alibaba-W (9988.HK) Stock Price, News, Quotes and Records - Yahoo Finance](https://hk.finance.yahoo.com/quote/9988.HK/)
[5]: [Alibaba (BABA) Stock Price, Quotes, Discussion - Xueqiu](https://xueqiu.com/S/BABA)
[6]: [Alibaba (BABA) Stock Price, Market Cap, Real-time Quotes, Chart, Financials - Moomoo](https://www.moomoo.com/hans/stock/BABA-US)
[7]: [Alibaba Group Holding Limited (BABA) Stock Price, News, Quote ...](https://finance.yahoo.com/quote/BABA/)
[8]: [Alibaba - Tencent Securities](https://gu.qq.com/usBABA.N)
[9]: [W(09988) Stock Price, Market Cap, Real-time Quotes, Chart, Financials - Alibaba - Moomoo](https://www.moomoo.com/hans/stock/09988-HK)
====================Response content====================
According to the latest market data, Alibaba's stock price information is as follows:
* **US stocks (BABA)**:
* Today's opening price: $160.98
* Yesterday's closing price: $160.80
* Today's high: $161.19
* Today's low: $156.20
* **HK stocks (09988.HK)**:
* Latest quote: approximately HK$158.00 - 158.10
* Today's opening price: HK$156.50
* Previous trading day's closing price: HK$162.00
* Today's range: HK$156.30 - 158.40Java
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.SearchOptions;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.utils.Constants;
import com.alibaba.dashscope.common.Role;
import java.util.Arrays;
public class Main {
static {Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";}
public static void main(String[] args) {
Generation gen = new Generation();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("Alibaba stock price")
.build();
SearchOptions searchOptions = SearchOptions.builder()
// Web search strategy; only agent is supported
.searchStrategy("agent")
// Return search sources
.enableSource(true)
.build();
GenerationParam param = GenerationParam.builder()
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-max")
.messages(Arrays.asList(userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.enableSearch(true)
.searchOptions(searchOptions)
.build();
try {
GenerationResult result = gen.call(param);
System.out.println("=".repeat(20)+"Search results"+"=".repeat(20));
System.out.println(result.getOutput().getSearchInfo().getSearchResults());
System.out.println("=".repeat(20)+"Response content"+"=".repeat(20));
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}Response example
====================Search results====================
[SearchInfo.SearchResult(siteName=null, icon=null, index=1, title=Alibaba(BABA) Stock Price, Quotes, Chart - East Money, url=https://wap.eastmoney.com/quote/stock/106.BABA.html), SearchInfo.SearchResult(siteName=null, icon=null, index=2, title=Alibaba(BABA)_US Stock Quotes, Today's Price and Chart_Sina Finance, url=https://gu.sina.cn/quotes/us/BABA), SearchInfo.SearchResult(siteName=null, icon=null, index=3, title=Alibaba(BABA) Latest Stock Price, Real-time Chart, Analysis and Forecast, url=https://cn.investing.com/equities/alibaba), SearchInfo.SearchResult(siteName=null, icon=null, index=4, title=Alibaba(BABA) Stock Price, Quotes, Discussion - Xueqiu, url=https://xueqiu.com/S/BABA), SearchInfo.SearchResult(siteName=null, icon=null, index=5, title=Alibaba-W (9988.HK) Stock Price, News, Quotes and Records - Yahoo Finance, url=https://hk.finance.yahoo.com/quote/9988.HK/), SearchInfo.SearchResult(siteName=null, icon=null, index=6, title=Alibaba(BABA) Stock Price, Market Cap, Real-time Quotes, Chart, Financials- Moomoo, url=https://www.moomoo.com/hans/stock/BABA-US), SearchInfo.SearchResult(siteName=null, icon=null, index=7, title=Alibaba Group Holding Limited (BABA) - Yahoo Finance, url=https://finance.yahoo.com/quote/BABA/), SearchInfo.SearchResult(siteName=null, icon=null, index=8, title=Alibaba - Tencent Securities, url=https://gu.qq.com/usBABA.N), SearchInfo.SearchResult(siteName=null, icon=null, index=9, title=W(09988) Stock Price, Market Cap, Real-time Quotes, Chart, Financials- Alibaba - Moomoo, url=https://www.moomoo.com/hans/stock/09988-HK)]
====================Response content====================
According to the latest market data, Alibaba's stock price is as follows:
* **US stocks (BABA)**: Latest price approximately **$159.84**.
* **HK stocks (09988.HK)**: Latest price approximately **HK$158.00**.
Note that stock prices fluctuate in real time with market trading, and this information is for reference only.curl
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-max",
"input":{
"messages":[
{
"role": "user",
"content": "Alibaba stock price"
}
]
},
"parameters": {
"enable_search": true,
"search_options": {
"search_strategy": "agent",
"enable_source": true
},
"result_format": "message"
}
}'Response example
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"content": "According to the latest market data, Alibaba's stock price differs between its US and HK listings:\n\n* **US stocks (BABA)**: Latest price approximately **$160.40**.\n * Today's opening price: $160.98\n * Today's range: $156.20 - 161.19\n\n* **HK stocks (09988.HK)**: Latest price approximately **HK$158.10**.\n * Today's opening price: HK$156.50\n * Today's range: HK$156.30 - 158.40\n\nNote that stock prices change in real time with market trading, and this information is for reference only.",
"role": "assistant"
}
}
],
"search_info": {
"search_results": [
{
"index": 1,
"title": "Alibaba(BABA) Stock Price, Quotes, Chart - East Money",
"url": "https://wap.eastmoney.com/quote/stock/106.BABA.html"
},
{
"index": 2,
"title": "Alibaba(BABA)_US Stock Quotes, Today's Price and Chart_Sina Finance",
"url": "https://gu.sina.cn/quotes/us/BABA"
},
{
"index": 3,
"title": "Alibaba-W (9988.HK) Stock Price, News, Quotes and Records - Yahoo Finance",
"url": "https://hk.finance.yahoo.com/quote/9988.HK/"
},
{
"index": 4,
"title": "Alibaba(BABA) Latest Stock Price, Real-time Chart, Analysis and Forecast",
"url": "https://cn.investing.com/equities/alibaba"
},
{
"index": 5,
"title": "Alibaba(BABA) Stock Price, Quotes, Discussion - Xueqiu",
"url": "https://xueqiu.com/S/BABA"
},
{
"index": 6,
"title": "Alibaba(BABA) Stock Price, Market Cap, Real-time Quotes, Chart, Financials- Moomoo",
"url": "https://www.moomoo.com/hans/stock/BABA-US"
},
{
"index": 7,
"title": "W(09988) Stock Price, Market Cap, Real-time Quotes, Chart, Financials- Alibaba - Moomoo",
"url": "https://www.moomoo.com/hans/stock/09988-HK"
},
{
"index": 8,
"title": "Alibaba Group Holding Limited (BABA) Stock Price, News, Quotes and Records",
"url": "https://hk.finance.yahoo.com/quote/BABA/"
},
{
"index": 9,
"title": "Alibaba - Tencent Securities",
"url": "https://gu.qq.com/usBABA.N"
}
]
}
},
"usage": {
"input_tokens": 2004,
"output_tokens": 203,
"plugins": {
"search": {
"count": 1,
"strategy": "agent"
}
},
"prompt_tokens_details": {
"cached_tokens": 0
},
"total_tokens": 2207
},
"request_id": "45c231d2-811e-4e04-a361-f2c1909f1dd9"
}Responses API
Add the web_search tool to the tools array and enable the web extractor feature with the tools parameter,
Supported only by qwen3.5-plus, qwen3.5-plus-2026-02-15, qwen3.5-flash, qwen3.5-flash-2026-02-23; and qwen3-max, qwen3-max-2026-01-23 in thinking mode.
For optimal responses, enable theweb_search,web_extractor, andcode_interpretertools together.
from openai import OpenAI
import os
client = OpenAI(
# If you haven't configured environment variables, replace the following line with your Model Studio API key: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
)
response = client.responses.create(
model="qwen3-max-2026-01-23",
input="Singapore weather",
tools=[
{"type": "web_search"},
{"type": "web_extractor"},
{"type": "code_interpreter"}
],
extra_body={"enable_thinking": True}
)
print("="*20 + "Response content" + "="*20)
print(response.output_text)
print("="*20 + "Tool invocation count" + "="*20)
usage = response.usage
if hasattr(usage, 'x_tools') and usage.x_tools:
print(f"Web search count: {usage.x_tools.get('web_search', {}).get('count', 0)}")
# Uncomment the following lines to view intermediate outputs
# for r in response.output:
# print(r.model_dump_json())import OpenAI from "openai";
const openai = new OpenAI({
// If you haven't configured environment variables, replace the following line with your Model Studio API key: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});
async function main() {
const response = await openai.responses.create({
model: "qwen3-max-2026-01-23",
input: "Singapore weather",
tools: [
{ type: "web_search" },
{ type: "web_extractor" },
{ type: "code_interpreter" }
],
enable_thinking: true
});
console.log("====================Response content====================");
console.log(response.output_text);
Set search scale strategy
console.log("====================Tool invocation count====================");
Set search scale strategy based on cost, effectiveness, and response speed requirements via search_strategy.
console.log(`Web search count: ${response.usage.x_tools.web_search?.count || 0}`);
// console.log(JSON.stringify(response.output[0], null, 2));
}
main();curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-max-2026-01-23",
"input": "Singapore weather",
"tools": [
{"type": "web_search"},
{"type": "web_extractor"},
{"type": "code_interpreter"}
],
"enable_thinking": true
}'Billing
Billing involves two aspects:
Model call fees: The web content from the web search is added to the prompt, which increases the number of input tokens for the model. You are charged based on the standard pricing of the model. For more information about pricing, see Model list.
Search strategy fees:
agent strategy:
The fee per 1,000 calls:
Chinese mainland and global deployment modes: USD 0.573411
International deployment mode: USD 10.00.
agent_max strategy (limited-time offer):
This includes the fees for web search and web extractor.
The fee per 1,000 calls to the web search tool is:
Chinese mainland deployment mode: USD 0.573411.
International deployment mode: USD 10.00.
The web extractor tool is free for a limited time.
Error messages
If you encounter errors, see Error messages for solutions.