DeepSeek V4 foi lançado com a API ativa desde o primeiro dia. Os IDs dos modelos são deepseek-v4-pro e deepseek-v4-flash, o endpoint é compatível com OpenAI, e a URL base é https://api.deepseek.com. Isso significa que qualquer cliente que você já usa com GPT-5.5 ou outras APIs no formato OpenAI funciona com o V4 com uma simples troca da URL base.

Este guia aborda autenticação, todos os parâmetros importantes, exemplos em Python e Node, matemática no modo de raciocínio, chamada de ferramentas, streaming, e um fluxo de trabalho baseado no Apidog que mantém o custo visível enquanto você itera.
Para uma visão geral do produto, veja o que é DeepSeek V4. Para o caminho sem custo, veja como usar o DeepSeek V4 gratuitamente.
TL;DR (Resumo)
- DeepSeek V4 está disponível no endpoint compatível com OpenAI em
https://api.deepseek.com/v1/chat/completionse no endpoint compatível com Anthropic emhttps://api.deepseek.com/anthropic. - IDs dos modelos:
deepseek-v4-pro(1.6T total, 49B ativos) edeepseek-v4-flash(284B total, 13B ativos). - Ambas as variantes suportam um contexto de 1 milhão de tokens e três modos de raciocínio:
non-thinking,thinking,thinking_max. - Use
temperature=1.0, top_p=1.0conforme recomendado pela DeepSeek; não importe os padrões do GPT-5.5 ou Claude. - Os IDs legados
deepseek-chatedeepseek-reasonerserão descontinuados em 24 de julho de 2026; migre antes dessa data. - Baixe o Apidog para reproduzir requisições, comparar modos de raciocínio e manter a chave fora do seu histórico de shell.

Pré-requisitos
Antes da primeira requisição, prepare quatro coisas.
- Uma conta de desenvolvedor DeepSeek em platform.deepseek.com com pelo menos um recarga de $2. Sem saldo, as chamadas retornam
402 Insufficient Balance. - Uma chave de API com escopo para o projeto que você irá faturar. Chaves com escopo de projeto são mais seguras do que chaves de conta para qualquer ambiente de produção.
- Um SDK que pode acessar uma URL base compatível com OpenAI. Python
openai>=1.30.0e Nodeopenai@4.xfuncionam sem modificação. - Um cliente de API que pode reproduzir requisições sem encher o terminal de mensagens. curl funciona para uma chamada; depois disso, use Apidog.
Exporte a chave uma vez:
export DEEPSEEK_API_KEY="sk-..."
Endpoint e autenticação
Duas URLs base cobrem dois formatos de requisição.
POST https://api.deepseek.com/v1/chat/completions # Formato OpenAI
POST https://api.deepseek.com/anthropic/v1/messages # Formato Anthropic
Escolha o formato compatível com OpenAI, a menos que você já tenha uma base de código no formato Anthropic. O restante deste guia usa o formato OpenAI.
A autenticação é um token Bearer no cabeçalho padrão Authorization. A requisição mínima viável:
curl https://api.deepseek.com/v1/chat/completions \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [
{"role": "user", "content": "Explique o roteamento MoE em duas frases."}
]
}'
Respostas bem-sucedidas retornam um corpo JSON com um array choices, um bloco usage detalhado em tokens de entrada e saída (e reasoning_tokens se o modo de raciocínio estiver ativado), e um id que você pode usar para rastreamento. Falhas retornam o envelope padrão OpenAI com error.code e error.message.
Parâmetros da requisição
Cada campo se correlaciona com custo ou comportamento. Aqui está o mapeamento para deepseek-v4-pro e deepseek-v4-flash.
| Parâmetro | Tipo | Valores | Notas |
|---|---|---|---|
model |
string | deepseek-v4-pro, deepseek-v4-flash |
Obrigatório. |
messages |
array | pares role/content | Obrigatório. Mesmo esquema do OpenAI. |
thinking_mode |
string | non-thinking, thinking, thinking_max |
O padrão é non-thinking. |
temperature |
float | 0 a 2 | DeepSeek recomenda 1.0. |
top_p |
float | 0 a 1 | DeepSeek recomenda 1.0. |
max_tokens |
int | 1 a 131.072 | Limita o comprimento da saída. |
stream |
bool | true ou false | Habilita streaming SSE. |
tools |
array | Especificação de ferramenta OpenAI | Para chamada de função. |
tool_choice |
string ou objeto | auto, required, none, ou ferramenta específica |
Controla o uso da ferramenta. |
response_format |
objeto | {"type": "json_object"} |
Saída em modo JSON. |
seed |
int | qualquer int | Para reprodutibilidade. |
presence_penalty |
float | -2 a 2 | Penaliza tópicos repetidos. |
frequency_penalty |
float | -2 a 2 | Penaliza tokens repetidos. |
thinking_mode é o maior fator de custo. non-thinking ignora completamente o rastreamento de raciocínio e retorna tokens aproximadamente na velocidade do V3.2. thinking habilita um bloco de raciocínio que custa tokens extras, mas melhora a precisão em código e matemática. thinking_max produz as pontuações da tabela principal da DeepSeek; ele também consome a maior quantidade de tokens e é o único modo que requer um orçamento de contexto de 384K+.
Cliente Python
O SDK oficial openai funciona com uma substituição da URL base. Todo wrapper existente compatível com OpenAI, incluindo LangChain, LlamaIndex e DSPy, também funciona.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "Responda apenas em código."},
{"role": "user", "content": "Escreva uma função Rust que faça 'debounce' de eventos."},
],
extra_body={"thinking_mode": "thinking"},
temperature=1.0,
top_p=1.0,
max_tokens=2048,
)
choice = response.choices[0]
print("Conteúdo:", choice.message.content)
print("Tokens de raciocínio:", response.usage.reasoning_tokens)
print("Total de tokens:", response.usage.total_tokens)
O truque do extra_body é como você passa parâmetros específicos do DeepSeek através do SDK OpenAI sem modificar a biblioteca.
Cliente Node
Mesma estrutura no Node:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.DEEPSEEK_API_KEY,
baseURL: "https://api.deepseek.com/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [
{ role: "user", content: "Explique o otimizador Muon em linguagem simples." },
],
thinking_mode: "thinking",
temperature: 1.0,
top_p: 1.0,
});
console.log(response.choices[0].message.content);
console.log("Uso:", response.usage);
O SDK Node aceita campos desconhecidos silenciosamente, então thinking_mode passa no nível superior sem extra_body.
Respostas em Streaming
Defina stream: true e itere os blocos SSE. O formato corresponde exatamente ao OpenAI.
stream = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "Transmita um ensaio de 300 palavras sobre MoE."}],
stream=True,
extra_body={"thinking_mode": "non-thinking"},
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)
Os rastros de raciocínio são transmitidos separadamente quando o modo de raciocínio está ativado; o campo delta.reasoning_content os carrega e você pode exibi-los na interface ou descartá-los.
Chamada de Ferramentas
O V4 suporta o esquema padrão de chamada de ferramentas do OpenAI. Funções definidas no array tools tornam-se chamáveis, e o modelo decide quando invocá-las.
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Retorna o clima atual de uma cidade.",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"},
"unit": {"type": "string", "enum": ["c", "f"]},
},
"required": ["city"],
},
},
}]
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "Clima em Lagos em Celsius?"}],
tools=tools,
tool_choice="auto",
extra_body={"thinking_mode": "thinking"},
)
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)
A partir daí, chame a função, anexe o resultado como uma mensagem role: "tool", e chame a API novamente para continuar o ciclo. O padrão é idêntico aos ciclos de uso de ferramentas do OpenAI e Anthropic.
Modo JSON
Para saída estruturada, peça JSON explicitamente e defina o formato de resposta.
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "system", "content": "Responda com um único objeto JSON."},
{"role": "user", "content": "Resuma esta nota de lançamento como {título, data, marcadores}: ..."},
],
response_format={"type": "json_object"},
extra_body={"thinking_mode": "non-thinking"},
)
O modo JSON força a saída de JSON válido, mas não impõe um esquema específico. Para validação de esquema, combine-o com Pydantic ou Zod no lado do cliente.
Construa a coleção no Apidog
Reproduzir requisições do terminal consome créditos e esconde a diferença entre as execuções. O fluxo de trabalho que sobrevive ao uso real:
- Baixe o Apidog e crie um projeto.
- Adicione um ambiente com
{{DEEPSEEK_API_KEY}}armazenado como uma variável secreta. - Salve uma requisição POST para
{{BASE_URL}}/chat/completionscom o cabeçalhoAuthorization: Bearer {{DEEPSEEK_API_KEY}}. - Parametrize
modelethinking_modepara que você possa fazer testes A/B entre variantes sem duplicar requisições. - Use o visualizador de respostas para inspecionar
usage.reasoning_tokensem cada execução. Esse é o sinal mais claro se você está pagando por um modo de raciocínio que não precisa.
Equipes que já estão usando a coleção de API GPT-5.5 correspondente no Apidog podem duplicá-la, trocar a URL base para https://api.deepseek.com/v1, trocar o ID do modelo e executar prompts de comparação entre ambos os provedores em minutos.
Tratamento de Erros
O formato segue exatamente o OpenAI. Os que você encontrará primeiro:
| Código | Significado | Solução |
|---|---|---|
| 400 | Requisição inválida | Verifique o esquema JSON, especialmente messages e tools. |
| 401 | Chave inválida | Regenere em platform.deepseek.com. |
| 402 | Saldo insuficiente | Recarregue a conta. |
| 403 | Modelo não permitido | Verifique o escopo da chave e a ortografia do ID do modelo. |
| 422 | Parâmetro fora do intervalo | max_tokens ou thinking_mode provavelmente estão incompatíveis. |
| 429 | Limite de taxa | Aguarde, depois tente novamente com jitter exponencial. |
| 500 | Erro do servidor | Tente novamente uma vez; se o erro persistir, verifique a página de status. |
| 503 | Sobrecarga | Volte para V4-Flash ou tente novamente em 30 segundos. |
Empacote as chamadas em um auxiliar de retentativa que lida com erros 429 e 5xx com recuo exponencial. Não tente novamente erros 4xx automaticamente; eles são bugs de lógica, não falhas transitórias.
Padrões de Controle de Custo
Quatro padrões mantêm os gastos previsíveis.
- Use V4-Flash como padrão. Mude para V4-Pro apenas para prompts onde você mediu um aumento de qualidade.
- Controle
thinking_maxcom uma flag. É o modo mais caro por uma larga margem; use-o apenas quando a correção for mais importante que a latência. - Limite
max_tokens. A maioria das respostas se encaixa em 2.000 tokens de saída. O contexto de 1M é para entrada, não para saída. - Registre
usageem cada chamada. Envie as contagens de entrada, saída e raciocínio para sua pilha de observabilidade; um alerta sobre um pico repentino de tokens de raciocínio detecta prompts que se desviaram.
Migrando de modelos DeepSeek mais antigos
Os IDs mais antigos deepseek-chat e deepseek-reasoner serão descontinuados em 24 de julho de 2026. A migração requer uma linha de diferença por local de chamada; os formatos de requisição e resposta permanecem inalterados.
- model="deepseek-chat"
+ model="deepseek-v4-pro"
Antes de ativar em produção, execute comparações A/B lado a lado no Apidog. O salto na qualidade da resposta geralmente recompensa a mudança; o prazo de descontinuação a impõe de qualquer maneira.
FAQ (Perguntas Frequentes)
- A API DeepSeek V4 está pronta para produção?Sim. A API foi lançada em 23 de abril de 2026, juntamente com os pesos. O DeepSeek V3 e V3.2 funcionaram na mesma infraestrutura em escala por mais de um ano, então a superfície da API é madura.
- O V4 suporta o formato de mensagem Anthropic?Sim. Aponte para
https://api.deepseek.com/anthropic/v1/messagese envie o payload no formato Anthropic. Ambos os formatos acessam o mesmo modelo subjacente. - Qual é a janela de contexto?1 milhão de tokens tanto no V4-Pro quanto no V4-Flash. Observe que o modo Think Max recomenda uma janela de trabalho mínima de 384K.
- Como conto os tokens de entrada antes de enviar?Use o tokenizador padrão do OpenAI para aproximações; a DeepSeek publica contagens exatas no bloco
usageem cada resposta. Para orçamentação em produção, confie na contagem do lado da resposta. - Posso fazer fine-tuning via API?Não no lançamento. O fine-tuning atualmente é feito através dos checkpoints Base auto-hospedados no Hugging Face.
- A API é gratuita para experimentar?Não há um nível gratuito a nível de conta, mas novos registros ocasionalmente recebem um crédito de teste.
