Kimi's long context is great for large-file and repo-scale prompts, and via DaoXE it shares the same key as GPT, Claude and DeepSeek — no separate Moonshot signup. Call /v1/chat/completions with a Kimi ID. See the cheapest APIs guide for cost routing.
Call Kimi (Moonshot) through DaoXE#
Use /v1/chat/completions with an exact Kimi model ID. Reasoning is controlled differently across the current family: K2.6 keeps the thinking field (ON by default, disable it for plain output), the K2.7-code builds lock thinking ON with no opt-out, and K3 replaces the field entirely with a top-level reasoning_effort (low/high/max, default max).
# Kimi's reasoning contract differs by generation: K2.6 keeps the thinking
# field (ON by default - send disabled for plain output), K2.7-code locks it
# on, and K3 drops the field for a top-level reasoning_effort instead.
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."}],
"thinking": {"type": "disabled"}
}'How Kimi exposes reasoning#
Kimi's reasoning contract split three ways as the family evolved. K2.6 keeps the K2.x thinking object (enabled by default, disabled to opt out) — a K2.x-only field the OpenAI SDK has no native slot for, so it rides in extra-body. K2.7-code locks it: thinking is always on, {"type": "disabled"} errors, and only {"type": "enabled", "keep": "all"} is accepted. K3 drops the field for a top-level reasoning_effort (low/high/max, default max) and always reasons with Preserved Thinking enabled — the trace still lands in reasoning_content, which must be passed back as-is in multi-turn tool use. Two cost traps: changing effort mid-conversation invalidates prefix-cache hits, and K3 is the only tier whose docs promise tool_choice: required. Whether a given relay path forwards these per-family fields is exactly the kind of thing to verify — one test call before you commit a client.
Kimi (Moonshot)-specific notes#
- Three behaviors, one family. K2.6:
thinkingdefaults ON — send{"type": "disabled"}for plain output. K2.7-code: thinking is always on and passingdisablederrors. K3 has nothinkingfield at all — it takes a top-levelreasoning_effortinstead. Check which ID you pinned before shipping a client. - Sampling is locked on reasoning IDs. K2.6 fixes
temperatureat 1.0 (thinking) / 0.6 (non-thinking), K2.7-code and K3 at 1.0;top_p0.95,n1 and the penalty settings are fixed too — the vendor documents that other values return an error. Don't passtemperatureexplicitly on these IDs. - K3's effort switch costs cache. Switching
reasoning_effortmid-conversation invalidates prefix-cache hits — decide the level before the conversation starts and keep it. K3 also spans a 1M-token context window versus 256K for the K2.x tiers. - The reasoning_content round-trip. With thinking on, echo the previous assistant message back as-is — including
reasoning_content— in multi-turn tool use, or the request fails. 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 long-context prompt against the official Moonshot API at temperature 0 to check recall:
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 is Kimi 'thinking' when I didn't ask?
The current K2.6 tier defaults the thinking field to ON — send {"type": "disabled"} for plain output. On K2.7-code thinking is locked on, and K3 reasons always with a reasoning_effort knob instead.
Does Kimi have the reasoning_content round-trip?
Yes when thinking is on — pass the complete assistant message back as-is, including reasoning_content, in multi-turn tool use.
Can I tune temperature on Kimi?
Not on the reasoning tiers: K2.6 fixes temperature at 1.0 (thinking) or 0.6 (non-thinking), K2.7-code and K3 at 1.0, and the vendor says other values return an error. top_p and the penalties are fixed too.
How much does Kimi 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.