Short answer
“DeepSeek thinking” can mean a reasoning capability or DeepSeek’s “DeepThink” experience. It does not, by itself, identify one API model. DeepSeek’s API documentation lists deepseek-flash and deepseek-v4-pro; both support thinking mode, which is enabled by default. The listed model versions are DeepSeek-V4.1-Flash-1017 and DeepSeek-V4-Pro-0813, respectively. DeepSeek introduced “DeepThink” in its R1 release announcement as an experience at chat.deepseek.com; for API work, use the documented model ID instead. [1][2][3]
For a first comparison, Flash has lower listed per-token rates and supports vision; Pro costs more and does not support vision. Both are listed with a 1M-token context length and a maximum output of 384K. Treat those as API specifications, not a guarantee that any particular request will fit within the limits. [1]
What does “DeepSeek thinking” mean?
DeepSeek’s API documentation calls the capability thinking mode. In thinking mode, the model returns reasoning content before its final answer. “DeepThink” also appeared in DeepSeek’s R1 launch announcement, but that name alone does not specify which current API model or setting to use. For production API calls, confirm the model ID and configure thinking through the API parameter for your chosen protocol. [2][3]
Choosing between DeepSeek Flash and Pro
| If you need… | Starting point | What to weigh |
|---|---|---|
| Lower listed API rates for a reasoning workload | deepseek-flash |
Thinking mode is supported, and the model table lists vision support. Evaluate quality on representative tasks before choosing. |
| To evaluate the Pro model | deepseek-v4-pro |
Its listed rates are higher, and the model table does not list vision support. Test whether it meets your workload’s requirements. |
| Image input | deepseek-flash |
The current model table lists vision for Flash, but not Pro. |
This is a cost-and-capability starting point, not a claim that one model will perform better on every task. Run a small evaluation with representative prompts and your own acceptance criteria. DeepSeek lists prices per 1 million tokens and separates cached input, uncached input, and output rates. [1]
Published API rates
The rates below are USD per 1 million tokens in DeepSeek’s pricing table. Off-peak rates are half the peak rates. The listed peak periods are 01:00–04:00 and 06:00–10:00 UTC, Monday through Friday, excluding Chinese public holidays. All other times—including weekends and Chinese public holidays—are off-peak. Prices can change, so check the pricing page before deployment. [1]
| Model | Input, cache hit (peak / off-peak) | Input, cache miss (peak / off-peak) | Output (peak / off-peak) |
|---|---|---|---|
deepseek-flash |
$0.006 / $0.003 | $0.30 / $0.15 | $1.20 / $0.60 |
deepseek-v4-pro |
$0.044 / $0.022 | $1.32 / $0.66 | $3.96 / $1.98 |
Illustrative calculation: for 100,000 uncached input tokens and 10,000 API-reported output tokens, Flash would cost about $0.042 at peak or $0.021 off-peak. Pro would cost about $0.1716 at peak or $0.0858 off-peak. These estimates use the listed rates and API-reported total output-token usage—not just visible final-answer text—and exclude cached input, Search or Fetch requests, and other charges. DeepSeek’s pricing page describes billing by total input and output tokens; it does not separately list a reasoning-token price. [1]
Enable or disable thinking in the API
For Chat Completions, DeepSeek documents https://api.deepseek.com as the OpenAI-compatible base URL. Its thinking-mode guide shows deepseek-flash in the OpenAI SDK example, with reasoning_effort and the thinking toggle inside extra_body. Thinking is enabled by default, with high as the default effort; the documented effort values are low, high, and max. [2][4]
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com",
)
response = client.chat.completions.create(
model="deepseek-flash",
messages=[
{"role": "user", "content": "Which is larger: 9.11 or 9.8? Explain briefly."}
],
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}},
)
message = response.choices[0].message
print(message.content)
print(message.reasoning_content)
In thinking mode, DeepSeek documents reasoning_content alongside content. To disable thinking, set extra_body={"thinking": {"type": "disabled"}}. Use the documented setting for the protocol you are calling; the Responses and Anthropic-compatible APIs use different parameter shapes. [2]
Multi-turn requests and tool calls
DeepSeek’s documented history rule depends on whether the request includes a tools parameter:
- Without
tools: prior-turnreasoning_contentdoes not need to be sent back. If you include it, DeepSeek says it is ignored and is not added to context. - With
tools: pass back the prior turns’reasoning_content; DeepSeek says it will be added to context.
When building an agent’s conversation history, retain the returned assistant message and its reasoning field for tool workflows rather than stripping it. This is the documented DeepSeek API behavior, not a guarantee for other providers’ compatible endpoints. [2]
What to verify before choosing
- Model ID and version: DeepSeek says to call Flash as
deepseek-flash; older Flash names remain accepted but route to the listed V4.1 Flash version. [1][4] - Effort setting:
highis the documented default, but an effort label is not a guarantee of a particular answer quality or token count. [2] - Input type: the current model table lists vision for Flash and not Pro. [1]
- Cost and limits: distinguish cache-hit from cache-miss input rates, count output tokens, and recheck the current pricing page before deployment. [1]
Bottom line: treat “thinking” as an API capability to configure on a specific model, not as a sufficient model name. Start by comparing Flash’s lower listed rates and vision support with Pro’s higher rates and lack of listed vision support, then test the options against your actual workload.
Sources
Models & Pricing | DeepSeek API Docs
