# Doubao Seed API: model IDs, deep thinking, image input and Claude Code Source: https://ofox.io/docs/develop/models/doubao ByteDance's Doubao Seed text models, including Seed 2.1 Pro, Seed 2.1 Turbo, Seed Evolving and Seed Character. They are called through the OpenAI-compatible API, and all except Seed Character also support the Anthropic-native API, so they work in Claude Code. For Doubao's image generation models, see [Seedream (Doubao)](https://ofox.io/docs/develop/models/seedream); for video models, see [Seedance](https://ofox.io/docs/develop/models/seedance). ## Common tasks - [Turn off deep thinking](#thinking) — Thinking is on by default; how to turn it off when responses are slow. - [Use in Claude Code](#anthropic) — Call Doubao through the Anthropic API. - [Image input & structured output](#features) — image_url and json_schema. - [Troubleshooting errors](#errors) — Unsupported thinking type, invalid parameter combination, max_tokens too large. ## Models For the full model list and live prices, see the [model page](https://ofox.io/models?provider=volcengine). The model ID prefix is `volcengine/` and can be omitted; the `bytedance/` or `doubao/` prefixes, or Volcano Engine Ark model names with dates, return 404. **Common model IDs (copy them exactly)** - Seed 2.1 Pro: `volcengine/doubao-seed-2.1-pro` — 256K context; supports image input - Seed 2.1 Turbo: `volcengine/doubao-seed-2.1-turbo` — 256K context; supports image input - Seed Evolving: `volcengine/doubao-seed-evolving` — 256K context; supports image input - Seed Character: `volcengine/doubao-seed-character` — No thinking by default; no Anthropic API support These models are served by Volcano Engine (`volcengine`) and all support the Chat Completions and Responses APIs. ## Examples **Python** ```python filename="doubao_basic.py" import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.io/v1", api_key=os.environ["OFOX_API_KEY"]) resp = client.chat.completions.create( model="volcengine/doubao-seed-2.1-pro", messages=[{"role": "user", "content": "Explain idempotency in one sentence."}], extra_body={"thinking": {"type": "disabled"}}, ) print(resp.choices[0].message.content) ``` **cURL** ```bash filename="Terminal" curl https://api.ofox.io/v1/chat/completions \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "volcengine/doubao-seed-2.1-pro", "messages": [{"role": "user", "content": "Explain idempotency in one sentence."}], "thinking": {"type": "disabled"} }' ``` ## Deep thinking **Key point**:Seed 2.1 Pro, Seed 2.1 Turbo and Seed Evolving have deep thinking on by default, so even simple questions can take tens of seconds. If you don't need thinking, set the thinking type to disabled. | Model | Default | How to control | |---|---|---| | Seed 2.1 Pro, Seed 2.1 Turbo, Seed Evolving | On | `"thinking": {"type": "disabled"}` turns it off; `reasoning_effort: "low"` reduces thinking | | Seed Character | Off | `reasoning_effort` not supported | - `thinking.type` accepts `enabled` and `disabled`; `auto` returns 400. - In our tests with "Explain idempotency in one sentence", Seed 2.1 Pro thought for about 1,500 tokens by default and took about 40 seconds; Seed Evolving used about 1,700 tokens and took about 54 seconds. With thinking off, responses came back in about 2 seconds. - Thinking tokens count toward `max_tokens`. If the limit is too low, `content` may be empty, with `finish_reason` set to `length`. - Thinking tokens are billed at the output rate; the count is in `usage.completion_tokens_details.reasoning_tokens`. Reading thinking content: in streaming responses it is in `delta.reasoning_content`; in non-streaming responses it is in `message.reasoning_details`, where you concatenate the `text` of each item in order. ## Use in Claude Code Seed 2.1 Pro, Seed 2.1 Turbo and Seed Evolving support the Anthropic-native API at `https://api.ofox.io/anthropic`: **Claude Code settings** - ANTHROPIC_BASE_URL: `https://api.ofox.io/anthropic` - ANTHROPIC_AUTH_TOKEN: Paste your OfoxAI API key - ANTHROPIC_MODEL: `volcengine/doubao-seed-2.1-pro` - On the Anthropic API, no thinking content is returned unless you pass the `thinking` parameter. To get thinking, pass `"thinking": {"type": "enabled", "budget_tokens": 2000}` or `{"type": "adaptive"}`; thinking content is returned as `thinking` blocks. - Seed Character does not support the Anthropic API; calls return `protocol_not_supported`. For full Claude Code setup steps, see [Claude Code setup](https://ofox.io/docs/integrations/claude-code). ## Image input and structured output - **Image input**: all of the models above support image input, using the standard `image_url` content block; see [Vision](https://ofox.io/docs/develop/guides/vision) for the syntax. Image URLs must be quickly downloadable from the public internet, or the request returns `Timeout while downloading url`; you can also send base64 data instead. - **Structured output**: `response_format` supports `json_schema` and `json_object`; see [Structured output](https://ofox.io/docs/develop/guides/structured-output) for the syntax. - **Tool calling**: uses the standard `tools` parameter and returns `tool_calls`. ## Common errors | HTTP · type | Error message | Cause | Fix | |---|---|---|---| | 400 `BadRequest` | Contains `Unsupported thinking type for the current model: auto` | `thinking.type` was set to `auto` | Use `enabled` or `disabled` | | 400 `BadRequest` | Contains `Invalid combination of reasoning_effort and thinking type: low + disabled` | `reasoning_effort` was sent to Seed Character | Remove `reasoning_effort` | | 400 `BadRequest` | Contains `integer above maximum value, expected a value <= 262144` | `max_tokens` exceeds the limit | Lower `max_tokens` | | 400 `BadRequest` | Contains `Timeout while downloading url` | Downloading the image URL timed out | Use a URL that loads quickly, or switch to base64 | | 400 `protocol_not_supported` | `Model 'volcengine/doubao-seed-character' does not support the 'anthropic' protocol on this platform.` | Seed Character does not support the Anthropic API | Use the OpenAI-compatible API | | 404 `model_not_found` | `Model 'bytedance/doubao-seed-2.1-pro' not found` | Wrong prefix | The prefix is `volcengine/`; copy the model ID from this page | | Request timeout | — | Deep thinking is on by default and takes time | Turn thinking off, use streaming, or set the client timeout to 600 seconds or more | For other general errors, see [Error Handling](https://ofox.io/docs/develop/guides/error-handling). ## Official docs - [Volcano Engine Ark · Docs](https://www.volcengine.com/docs/82379) ## FAQ **How do I write a Doubao model ID?** The standard format is volcengine/doubao-seed-2.1-pro; you can also omit the prefix and write doubao-seed-2.1-pro. The bytedance/ or doubao/ prefixes return 404. **Why is Doubao so slow to respond?** Seed 2.1 Pro, Seed 2.1 Turbo and Seed Evolving have deep thinking on by default, so even simple questions may use over a thousand thinking tokens and take tens of seconds. If you do not need thinking, pass "thinking": {"type": "disabled"}; with the OpenAI SDK, put it in extra_body. **Can I use Doubao in Claude Code?** Yes. Set ANTHROPIC_BASE_URL to https://api.ofox.io/anthropic and use volcengine/doubao-seed-2.1-pro as the model. Seed Character does not support the Anthropic API. **Can Doubao understand images?** Yes. Seed 2.1 Pro, Seed 2.1 Turbo, Seed Evolving and Seed Character all support image input.