Natively, Volcengine Ark wants you to create an inference endpoint and call an ep-… ID. Through DaoXE, Doubao is behind the same OpenAI-compatible key as GPT, Claude and DeepSeek — you call a normal catalog ID from GET /v1/models, no Volcengine console. See the cheapest APIs guide for cost routing.
Call Doubao through DaoXE#
Use /v1/chat/completions with an exact Doubao ID from GET /v1/models. There's no endpoint provisioning step here: the catalog ID replaces the native ep-… identifier. Reasoning is governed by the non-standard thinking field (enabled/disabled/auto), the chain of thought lands in reasoning_content, and reasoning_effort scales how long the model thinks. Vision-capable variants take images via OpenAI-style content parts.
# Doubao (Volcengine Ark) natively wants endpoint IDs like "ep-2024...".
# Through DaoXE you use the catalog model ID from GET /v1/models instead —
# no endpoint provisioning, no separate Volcengine console.
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/chat/completions \
-H "Authorization: Bearer ${DAOXE_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_EXACT_MODEL_ID",
"max_tokens": 64,
"messages": [{"role": "user", "content": "Reply with OK."}]
}'How Doubao/Seed exposes reasoning#
Ark's chain of thought arrives as choices.message.reasoning_content — on thinking-summary models that's a summary of the thinking, with the raw trace riding alongside as an encrypted_content blob. In multi-turn tool loops you pass the encrypted blob (highest priority) or the summary back; on versions from doubao-seed-1.8 the kept reasoning_content feeds back into reasoning at the model's discretion, and tokens for content the model never sees aren't billed. Between regular turns the CoT is not stitched into context — only tool-call rounds preserve it. The thinking field (enabled/disabled/auto) and the seven-level reasoning_effort ladder both control it, with per-model defaults and remapping rules — which of these non-standard fields a given relay path forwards is exactly the kind of thing to verify — one test call before you commit a client.
Doubao-specific notes#
- No ep- IDs here. Don't paste a Volcengine
ep-…string; use the catalog model ID fromGET /v1/modelsinstead. - The thinking field has three states.
enabledforces the chain of thought,disabledsuppresses it,autolets the model decide — it's a non-standard field, so send it via your SDK's extra-body. On current doubao-seed reasoning IDs the vendor documentsenabledas the default state. - What you get back is a summary, not the raw trace. On thinking-summary models the vendor returns a
reasoning_contentsummary plus anencrypted_contentblob of the raw thinking. Multi-turn history rules are version-split: pre-251228versions should stripreasoning_content;doubao-seed-1.8and later keep it and the model decides whether it feeds back into reasoning. In tool loops, passencrypted_content(highest priority) or the summary back — dropping both degrades the next answer. - Effort levels and the output budget.
reasoning_effortrunsnone→max, but each model maps out-of-range values differently (a Seed-2.1-tier default ofhighmapsmax→high; a Seed-2.0-tier default ofmediummapslow/medium→high). Andmax_tokenscaps the answer only — usemax_completion_tokenswhen thinking must share the budget. Exact IDs always come fromGET /v1/models.
What it costs#
One balance, one top-up rate
Top-up runs at a flat 1 RMB = $1 of credit on every payment method, and each model then bills at its own USD rate — live per-model rates are on the live pricing page. That rate is the same on Alipay, WeChat Pay, USDT, bank card (Visa · Mastercard), Apple Pay and Google Pay — one balance, shared by every model in the catalog, with no plan to choose and no monthly minimum. Rates are account-scoped and do change, so confirm with one small top-up rather than trusting a number in a guide.
Verify you actually get the model#
Prove the endpoint works before blaming the client — if this fails, no setting will fix it:
export DAOXE_API_KEY="your_api_key"
# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
https://daoxe.com/v1/models \
-H "Authorization: Bearer ${DAOXE_API_KEY}"Confirm connectivity, then diff a fixed prompt against the official Volcengine/Ark API at temperature 0 to confirm the model class:
Verify us — don't trust us
Point the open benchmark at DaoXE and at the official API and compare at temperature 0. Then learn to detect model swapping so a cheaper endpoint can't quietly swap you to a smaller model.
Frequently asked questions#
Do I need a Volcengine account or an ep- endpoint?
No — through DaoXE, Doubao is behind your single key with a normal catalog ID; there's no endpoint-provisioning step.
How do I turn thinking on or off?
Send the non-standard thinking field: enabled forces the chain of thought, disabled suppresses it, auto lets the model decide. Current doubao-seed reasoning IDs document enabled as the default.
Why is the reasoning a summary instead of the raw trace?
On thinking-summary models Ark returns a reasoning_content summary plus the raw thinking as encrypted_content. Pass the encrypted blob (or the summary) back in tool loops — dropping both degrades the next answer.
How much does Doubao cost here?
Per model, account-scoped — see live pricing. Top-up is a flat 1 RMB = $1 of credit on every payment method.
Try DaoXE — and benchmark it yourself
One key for GPT, Claude, Gemini, DeepSeek and more. Point the open benchmark at us and compare — don't take our word for it.