Direct
Direct upstream connection — best when you need native behavior and the full context window.
| Input | Output | Cache read | Cache write |
|---|---|---|---|
| 0.45/M | 2.24/M | 0.09/M | <0.01/M |

doubao-seed-2-1-turbo-260628The Seed2.1 series is a low-cost, low-latency version designed for large-scale production scenarios, with a full feature set and performance comparable to Doubao-Seed-2.1-pro. It fully supports Coding, Agent, GUI tasks, and image and video understanding, and offers a 256K context window and a maximum output of 256K, making it suitable for reliably handling a large volume of online calls.
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 | Output | Cache read | Cache write |
|---|---|---|---|
| 0.45/M | 2.24/M | 0.09/M | <0.01/M |
Doubao-Seed-2.1-turbo is the production-at-scale tier in ByteDance's Doubao Seed2.1 series. It was released alongside the flagship Doubao-Seed-2.1-pro at the Volcano Engine FORCE conference on June 23, 2026, with version number 260628. Volcano Ark's official positioning for it is "a low-cost, low-latency version for scaled production scenarios, fully featured, with performance comparable to doubao-seed-2-1-pro," designed to reliably handle large volumes of online calls for Coding, Agent, and multimodal understanding tasks.
According to benchmarks published by Seed official, the gap between Turbo and Pro is concentrated in long-chain Agent and video action perception; most other benchmarks differ by only 1–3 points, and some even outperform: math reasoning BeyondAIME 88.0 (Pro is 87.0), office-related Workspace Bench 54.7 (Pro is 53.0). It retains almost all capabilities, while the official unit price is only half that of Pro, making it the most cost-effective general-purpose tier in the Seed2.1 series.
Two things to know in advance: the context window is 256K (the Pro 260915 version is 1024K), so be careful with ultra-long document scenarios; although the maximum response is 256K, the default output is only 4K, so long-output tasks must explicitly set max_tokens. Deep thinking is enabled by default, and the chain of thought is counted in the output; when thinking is enabled, leave enough headroom for max_tokens.
SeaWhale AI provides Doubao-Seed-2.1-turbo through an OpenAI-compatible interface, supporting image and video input, deep thinking, tool calling, and structured output.
Get API key · Model ID:
doubao-seed-2-1-turbo-260628
Turbo retains the full Coding and Agent capabilities of Seed2.1: full-cycle delivery from requirements analysis, feature implementation, issue fixing, environment setup, and validation, as well as GUI task handling and tool calling. In official benchmarks, Terminal Bench 2.1 scores 67.6, NL2Repo-Bench 43.7, and Workspace Bench 54.7, making it suitable as the agent execution layer in high-concurrency scenarios.
Turbo's multimodal scores are very close to Pro: MathVision 90.1, MMMU-Pro 80.1, CharXiv-RQ 82.5, ERQA 71.3, and MMLongBench-128K 76.9. Visual knowledge WorldVQA 48.6 is higher than GPT-5.5 (34.6) and Claude Opus 4.7 (35.9).
For video, official benchmarks are VideoMME 89.0, OVOBench (streaming video) 79.2, VideoSimpleQA 71.4, and Minerva 65.9; long-video and streaming-video understanding are both in the top tier, suitable for large-scale video content moderation, retrieval, and summarization.
Deep thinking is enabled by default, and the level of thinking can be adjusted via reasoning_effort. BeyondAIME 88.0 shows that it is not weaker than Pro in mathematical and logical reasoning. It also supports function calling, structured output (the json_schema mode is recommended), and explicit caching such as implicit caching, prefix caching, and Session caching.
| Scenario | Description |
|---|---|
| High-concurrency online services | Customer service, assistants, Q&A, and other high-volume calls, with cost and throughput as priorities |
| Batch processing | Document extraction, structured output, batch code modification |
| Agent execution layer | Pair with Pro for planning; Turbo executes large numbers of subtasks |
| Video content processing | Long-video summarization, moderation, retrieval |
| Multimodal understanding | Q&A and extraction for charts, screenshots, and document images |
| Math and reasoning tasks | BeyondAIME 88.0; reasoning tasks do not need Pro |
| Capability | Doubao-Seed-2.1-turbo | Doubao-Seed-2.1-pro | Doubao-Seed-2.1-lite |
|---|---|---|---|
| Model ID | doubao-seed-2-1-turbo-260628 |
doubao-seed-2-1-pro-260915 |
doubao-seed-2-1-lite-260915 |
| Release date | June 23, 2026 | September 16, 2026 (series debut June 23) | September 2026 |
| Context window | 256K token | 1024K token | 1024K token |
| Max response / chain of thought | 256K / 256K | 256K / 256K | 256K / 256K |
| Input modalities | Text, image, video | Text, image, video | Text, image, video, audio |
| Terminal Bench 2.1 | 67.6 | 71.0 (June debut version) | — |
| Agent Startup Bench | 54.0 | 68.8 (June debut version) | — |
| VideoMME | 89.0 | 89.2 (June debut version) | — |
| Positioning | Low cost, low latency, performance comparable to Pro | Series flagship, production-grade Agent and Coding | Lightweight high-frequency, office and multimodal |
Specifications come from the Volcano Ark model list and model release announcements; benchmark scores come from the official Seed Seed2.1 page. Pro's scores correspond to the June debut
260628version; official independent benchmarks for Lite have not been published. Actual billing is subject to the real-time price card at the top of the page.
When was Doubao-Seed-2.1-turbo released?
Released on June 23, 2026 with the Seed2.1 series at the Volcano Engine FORCE conference, version 260628; the API went live on Volcano Ark at the same time.
How much does it differ from Doubao-Seed-2.1-pro? In official benchmarks, most gaps are 1–3 points: Terminal Bench 2.1 67.6 vs. 71.0, MMMU-Pro 80.1 vs. 81.6, VideoMME 89.0 vs. 89.2; BeyondAIME (88.0 vs. 87.0) and Workspace Bench (54.7 vs. 53.0) are slightly higher instead. The clear gaps are in long-chain Agent (Agent Startup Bench 54.0 vs. 68.8) and video action perception (TOMATO 56.8 vs. 79.5).
What are the context and output limits?
Context and maximum input are both 256K tokens, maximum response is 256K tokens, and maximum chain of thought is 256K tokens. The default response length is only 4K; explicitly set max_tokens when long output is needed.
How do I configure deep thinking?
Deep thinking is enabled by default; adjust the level of thinking via reasoning_effort. Keep a higher setting for complex coding and reasoning tasks; for latency-sensitive tasks such as dialogue, classification, and extraction, lower it to reduce output tokens and waiting time.
What tools and features are supported?
Supports image and video input, function calling, structured output (the json_schema mode is recommended), GUI task handling, and explicit caching such as implicit caching, prefix caching, and Session caching. Audio input is not supported; if you need to directly understand speech, choose Doubao-Seed-2.1-lite.
Where does Doubao-Seed-2.1-turbo fall behind? Yes. First, long-chain Agent is clearly weaker than Pro: Agent Startup Bench 54.0 is 14.8 points lower than Pro, and xDailyBench 56.4 is also lower than Pro's 61.0. Second, code debugging and long-horizon repository development are weaker: SWE-Atlas Debugging 30.6 and NL2Repo-Bench 43.7, lower than GPT-5.5 (44.7) and Claude Opus 4.7 (58.2). Third, video action perception TOMATO 56.8 is far lower than Pro's 79.5. Fourth, the context is only 256K, so ultra-long documents need to be split or switched to Pro. On knowledge, SuperGPQA 67.4 is also lower than Gemini 3.1 Pro's 76.6.
Should I choose Turbo, Pro, or Lite? Choose Turbo for high-volume online calls, when cost and latency are priorities, and when 256K context is sufficient; choose Pro when you need 1024K ultra-long context or the most complex long-chain Agent tasks; choose Lite for high-frequency lightweight office work or when audio input is needed. All three can be compared directly under the same SeaWhale AI account using the same code.
doubao-seed-2-1-turbo-260628https://api.haijingai.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.
curl https://api.haijingai.com/v2/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_KEY>" \
-d '{
"model": "doubao-seed-2-1-turbo-260628",
"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.haijingai.com/v2",
api_key="<API_KEY>",
)
stream = client.chat.completions.create(
model="doubao-seed-2-1-turbo-260628",
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.haijingai.com/v2',
apiKey: '<API_KEY>',
})
const stream = await client.chat.completions.create({
model: 'doubao-seed-2-1-turbo-260628',
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 ?? '')
}