The model line-up at a glance
- deepseek-chat — the DeepSeek-V3 general-purpose chat model. 64K context, fastest and cheapest, supports JSON mode and tool calling.
- deepseek-reasoner — the DeepSeek-R1 reasoning model. 64K context, emits a separate reasoning_content chain-of-thought, higher output pricing, best for multi-step logic.
- DeepSeek-Coder — the code-specialized line. Its capabilities are largely folded into V3 on the hosted API; the standalone weights remain available on Hugging Face for self-hosting.
- Older dated snapshots are retired on roughly 30 days' notice, so pin a model family rather than a snapshot ID in production.
Endpoints and how to list models
Everything lives under https://api.deepseek.com. The chat endpoint is /v1/chat/completions and the model catalogue is /models (also reachable as /v1/models). Both require an Authorization: Bearer <key> header. Calling the models endpoint is the cheapest way to confirm your key works and to see which IDs are currently served — it costs nothing and returns instantly, which makes it the ideal health probe for a monitoring script.
Context windows and output limits
Hosted DeepSeek models accept a 64K-token context window. Output is capped well below that — plan for around 8K tokens of completion on deepseek-chat and note that on deepseek-reasoner the internal chain-of-thought consumes part of that budget before the visible answer starts. If a reasoner reply gets truncated mid-sentence, the usual cause is a max_tokens value that was sized for the answer alone and not for the reasoning that precedes it.
Pricing tiers by model
deepseek-chat bills roughly $0.14 per million input tokens on a cache hit, $0.55 per million on a miss, and $0.28 per million output tokens. deepseek-reasoner uses the same input structure but a higher output rate, because the hidden reasoning tokens are billed as output. That single fact explains most surprise invoices: a reasoner request that returns 200 visible tokens may have billed 2,000. Estimate reasoner cost at several times the equivalent chat call, and reserve it for tasks where the accuracy gain pays for itself.
Supported capabilities
- OpenAI-compatible chat completions, including streaming via server-sent events.
- JSON mode through response_format — reliable on deepseek-chat, and best avoided on the reasoner, where the chain-of-thought competes with strict formatting.
- Tool / function calling on deepseek-chat with the standard OpenAI tools schema.
- Prefix caching on both models, applied automatically to the leading matched tokens of a prompt.
- Open weights for V3 and R1 under permissive licenses, so the same model families can be self-hosted through vLLM, Ollama or Hugging Face Transformers.
Choosing between deepseek-chat and deepseek-reasoner
Default to deepseek-chat. It handles classification, extraction, summarization, refactoring, and the overwhelming majority of agent steps at a fraction of the cost and latency. Escalate to deepseek-reasoner when a task involves multi-step arithmetic, constraint satisfaction, subtle debugging, or planning where a wrong intermediate step invalidates the answer. A useful pattern is a two-tier router: run deepseek-chat first, and retry with deepseek-reasoner only when a validator rejects the output.
Monitoring real-time model availability
Model availability and API availability are not the same thing. The edge can answer while a specific model is capacity-constrained and returns 429 or 503 for a stretch. Probe both: a cheap call to /models proves the platform is up, and a one-token completion against each model ID you depend on proves that model is actually serving. Run both on a short interval, alert on consecutive failures rather than single blips, and record latency percentiles so you can tell degradation from a hard outage. The live dashboard on this site performs the reachability half of that check from your own browser, which also catches regional routing problems that a server-side monitor in another country would miss.
Handling deprecations and version pinning
DeepSeek retires dated snapshots with about 30 days of notice. Reference the stable aliases deepseek-chat and deepseek-reasoner in application code, and keep the exact snapshot IDs only in evaluation runs where reproducibility matters. Log the model field returned in each API response so that when behaviour shifts you can prove whether the served model changed. Re-run your evaluation suite whenever the alias points somewhere new; prompt tweaks that were tuned against an older snapshot occasionally need adjusting.
Self-hosting the same models
Because V3 and R1 weights are open, the hosted API is not the only route. Distilled R1 variants run on a single consumer GPU, while full V3 needs serious multi-GPU hardware. Self-hosting removes rate limits and provider outages from the equation, and adds capacity planning, GPU cost and ops burden instead. Most teams use the hosted API as the primary path and keep a small self-hosted or third-party OpenAI-compatible fallback for continuity during incidents.