Direct
Direct upstream connection — best when you need native behavior and the full context window.
| Input context | Input | Output |
|---|---|---|
| ≤ 256K | 0.29/M | 1.18/M |
| > 256K | 0.88/M | 3.53/M |

qwen3.7-plusQwen3.7-Plus is a cost-effective model in Alibaba's Qwen3.7 series. It supports text and image input as well as text output. Building on the series' text capabilities, it delivers a comprehensive upgrade to visual language abilities while retaining full-stack, agent-level intelligence for coding, tool use, and productivity workflows. Its standout feature is the multimodal interactive hybrid agent capability: it can perceive real-world scenes, read screens and interact with GUI, generate code from visual references, and perform end-to-end navigation in mobile applications.
The same model is available through multiple service channels — choose based on latency, reliability and cost.
Prices in $ / 1M tokensprovider field to the request body, for example "provider": { "channel": "direct" }. Valid values are direct / stable / economical; omit it to use the default channel.Direct upstream connection — best when you need native behavior and the full context window.
| Input context | Input | Output |
|---|---|---|
| ≤ 256K | 0.29/M | 1.18/M |
| > 256K | 0.88/M | 3.53/M |
Qwen3.7-Plus is a cost-effective model in Alibaba's Qwen3.7 series, featuring a dense architecture. It supports text and image input and text output. Building on the series' text capabilities, it delivers a comprehensive upgrade to vision-language capabilities while retaining full-stack agent-level intelligence for coding, tool use, and productivity workflows.
Its most distinctive feature is multimodal interactive hybrid agent capability: it can perceive real-world scenes, read screens and interact with GUIs, extract task elements from visual information, and drive subsequent execution. In the Arena AI comprehensive benchmark, Qwen3.7-Plus-Preview scored 1156, close to Claude Opus 4.7's 1189.
SeaWhale AI provides Qwen3.7-Plus through an OpenAI-compatible interface, supporting multimodal input, tool calling, and streaming output.
Get API Key · Model ID:
qwen3.7-plus
This is Qwen3.7-Plus's most distinctive capability: it can read screen content, understand interface structure, identify operable elements, and drive subsequent actions such as clicks and inputs. This frees vision-based automation from relying on fragile selectors.
Beyond screens, it can also understand real-world image scenes — device status, environmental layout, chart data — and convert visual information into executable task elements.
While upgrading multimodal capabilities, Qwen3.7-Plus retains complete coding, tool use, and productivity workflow capabilities, making it a well-balanced general-purpose agent foundation.
The Qwen3.7 series is the first to achieve a unified reasoning chain for text, images, and code, breaking through the limitation of previous models that only supported text thinking chains.
| Scenario | Description |
|---|---|
| GUI automation | Read screens, assess states, drive operations |
| Visual testing | Automated testing based on interface understanding |
| Multimodal customer service | Problem diagnosis after users send screenshots |
| On-site quality inspection | Image assessment and subsequent action triggering |
| Text-image document processing | Chart, table, and mixed-layout document parsing |
| Cost-effective agents | Scenarios that need multimodal capabilities but have limited budgets |
| Capability | Qwen3.7-Plus | Qwen3.7-Max | Qwen3.6-Plus |
|---|---|---|---|
| Model ID | qwen3.7-plus |
qwen3.7-max |
qwen3.6-plus |
| Architecture | Dense | Trillion-parameter MoE | Hybrid architecture |
| Input modalities | Text, image | Text | Text, image |
| Context window | 1M tokens | 1M tokens | 1M tokens |
| Max output | 128K tokens | 128K tokens | 65.5K tokens |
| Arena AI | 1156 | 1284 | — |
| Focus | Screen understanding and GUI interaction | Agentic coding and autonomous execution | Agentic coding and frontend |
Specific pricing is subject to the real-time price card at the top of the page.
1. Create a SeaWhale AI API key Generate a key in the console and top up your balance.
2. Treat vision as decision input Qwen3.7-Plus's value lies in "what to do after seeing." Clearly state the target action in the prompt, rather than just asking for an image description.
3. Call the API
curl -X POST https://api.seawhaleai.com/v1/chat/completions \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.7-plus",
"messages": [{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://example.com/screen.png"}},
{"type": "text", "text": "What state is the current page in? Which elements still need to be clicked to complete the order?"}
]
}],
"stream": true
}'
How do I choose between Plus and Max? Choose Plus if you need image input, screen understanding, or GUI interaction; choose Max for text-only agentic coding and long-term autonomous execution. Plus also offers better value for money.
What does "hybrid agent" mean? It means the model can handle both visual perception and action execution — it not only understands images, but can also drive subsequent operations based on that understanding, forming a complete closed loop.
What level is an Arena AI score of 1156? It's close to Claude Opus 4.7's 1189, placing it in the top tier among multimodal models.
What are the context and output limits? 1M token context, with a maximum output of 128K tokens.
What is the all-domain thinking mode for? It allows image information to participate directly in the reasoning process, rather than converting it to text descriptions first. This yields higher accuracy on mixed text-image problems.
Is it suitable for GUI automation? Yes. Vision-understanding-based automation is more robust than solutions that rely on DOM selectors, and it is less likely to break after UI redesigns.
qwen3.7-plushttps://api.seawhaleai.com/v2/"provider": { "channel": "direct" }SeaWhale AI is compatible with the OpenAI API protocol, so you can call it with the OpenAI SDK or plain HTTP requests. Streaming is enabled by default.
About the provider parameter (optional, a SeaWhale AI extension): most models are served over several channels that differ slightly in price and reliability. Add a provider field to the request body to pick one; omit it and the system selects the default channel — normal calls are unaffected.
provideris not part of the official OpenAI protocol — it is a SeaWhale AI extension that only takes effect on this platform. The OpenAI SDK allows custom fields like this to pass through; see the examples below.
| Value | Channel | Best for |
|---|---|---|
direct | Direct | The official upstream link, for native behavior and the full context window |
stable | Preferred | Balanced availability and speed — a good default for production traffic |
economical | Economy | Cost first, well suited to batch processing and price-sensitive workloads |
Available channels and their prices are listed under "Pricing" above (channels vary by model). Additional notes:
"provider": { "channel": "direct" }.extra_body; in Node.js put it directly on the request object and it passes through. In TypeScript projects, add a // @ts-expect-error line to skip the type check.curl https://api.seawhaleai.com/v2/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"model": "qwen3.7-plus",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
],
"provider": { "channel": "direct" },
"stream": true
}'
# provider is optional — remove this line to use the default channelfrom openai import OpenAI
client = OpenAI(
base_url="https://api.seawhaleai.com/v2",
api_key="<API_KEY>",
)
stream = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"},
],
stream=True,
# Optional: pick a service channel; omit to use the default
extra_body={"provider": {"channel": "direct"}},
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)import OpenAI from 'openai'
const client = new OpenAI({
baseURL: 'https://api.seawhaleai.com/v2',
apiKey: '<API_KEY>',
})
const stream = await client.chat.completions.create({
model: 'qwen3.7-plus',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Hello!' },
],
stream: true,
// Optional: pick a service channel; omit to use the default
// @ts-expect-error provider is a SeaWhale AI extension, not in the OpenAI SDK types
provider: { channel: 'direct' },
})
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? '')
}