DeepSeek API access, OpenAI-compatible — and the reasoning_content trap

DeepSeek is cheap and strong at reasoning. Through DaoXE it's a plain OpenAI-compatible call — but the thinking variant has a real multi-turn gotcha worth knowing before you ship.

Updated 2026-09-15

DeepSeek is one of the best value-for-money families, and it's often painful to sign up for from abroad — through DaoXE it's behind the same key as GPT and Claude. Call /v1/chat/completions with a deepseek-* ID. See the cheapest APIs guide for how it fits a cheap/frontier split.

Call DeepSeek through DaoXE#

Use /v1/chat/completions with an exact deepseek-* ID. There are non-thinking and thinking variants; the thinking variant returns a separate reasoning_content field.

bash
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": "Say hello in one sentence."}]
  }'
python
# DeepSeek "thinking" variants return a separate reasoning_content field.
# In multi-turn tool use you MUST echo the previous assistant message back
# (reasoning_content included) or the API answers 400.
from openai import OpenAI

client = OpenAI(base_url="https://daoxe.com/v1", api_key="YOUR_DAOXE_KEY")
r = client.chat.completions.create(
    model="YOUR_EXACT_MODEL_ID",   # a deepseek-* id from GET /v1/models
    messages=[{"role": "user", "content": "2+2? Think briefly, then answer."}],
)
msg = r.choices[0].message
print(getattr(msg, "reasoning_content", None))  # chain-of-thought, if exposed
print(msg.content)                               # final answer

How DeepSeek exposes reasoning#

DeepSeek R-series IDs put the chain of thought in a dedicated reasoning_content field on the message, separate from content. The trap is multi-turn tool use: the API requires the previous assistant message to be echoed back including its reasoning_content, or the request 400s. When you build history, build it from the raw message objects, not from a trimmed summary of the text.

DeepSeek-specific notes#

  • The reasoning_content round-trip. With a thinking variant in multi-turn tool use, you MUST echo the previous assistant message (including reasoning_content) back, or the API answers 400.
  • Non-thinking needs no round-trip. If you don't need visible reasoning, use the non-thinking variant and avoid the trap entirely.
  • Frameworks can drop the field. Some clients silently discard reasoning_content — check yours before enabling thinking.
  • Exact IDs only. Pick the right variant by its ID from GET /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:

bash
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 hard reasoning prompt against the official DeepSeek API at temperature 0:

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#

Why do I get a 400 on the second turn?

Thinking variants require echoing the prior assistant message with its reasoning_content back into the next request; omit it and the API returns 400.

How do I avoid the reasoning_content trap?

Either round-trip reasoning_content faithfully, or use the non-thinking variant if you don't need visible reasoning.

Can I use DeepSeek from abroad without a Chinese account?

Yes — through DaoXE it's behind your single key, avoiding the usual overseas signup friction.

How much does DeepSeek 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.