A DeepSeek Responses API permite usar parte do formato Responses com a infraestrutura hospedada pela própria DeepSeek. Ela facilita a migração de clientes que já usam responses.create(), mas não oferece paridade integral com a API da OpenAI: o suporte varia por modelo, campo, ferramenta e tipo de entrada.
Status verificado em 5 de agosto de 2026: a documentação e uma chamada autenticada deste site confirmaram suporte do
deepseek-v4-flash. Uma chamada idêntica comdeepseek-v4-proretornou HTTP 400 e orientou usar o Flash. Não presumimos que uma previsão de suporte futuro já entrou em produção.
Este é um guia independente em português brasileiro. Não somos a DeepSeek nem a OpenAI e não representamos parceria, suporte ou endosso dessas empresas. Para autenticação, modelos e cobrança em todas as interfaces, consulte o guia geral da DeepSeek API.
Teste autenticado da Responses API
Entre 16:21 e 16:24 BRT de 05/08/2026, executamos oito chamadas POST autenticadas em https://api.deepseek.com/responses, além de uma consulta GET ao catálogo de modelos. Usamos fetch nativo, sem SDK, com uma chave temporária. Os prompts eram sintéticos, em português do Brasil, e não continham dados pessoais, documentos, credenciais ou segredos.
| Teste | Resultado observado | Uso devolvido | Latência desta sessão |
|---|---|---|---|
| Resposta comum, limite 160 | HTTP 200; incomplete por max_output_tokens; sem texto final | 41 entrada + 160 saída, todos os 160 de reasoning | 330 ms |
| Resposta comum, limite 800 | HTTP 200; completed; modelo devolvido deepseek-v4-flash | 41 entrada + 308 saída = 349 | 335 ms |
| Streaming | 124 eventos; sequência crescente; terminal response.completed; sem data: [DONE] | 27 entrada + 112 saída = 139 | 324 ms até headers; 2.008 ms total |
Function com tool_choice=required | HTTP 400: Thinking não suporta essa escolha forçada | Sem usage | 317 ms |
| Function em modo automático | HTTP 200; função calcular_frete_demo; argumentos válidos; nenhuma ação externa executada | 355 entrada + 102 saída = 457 | 319 ms |
web_search | HTTP 200; quatro itens web_search_call; resposta apontou para a documentação oficial | 9.693 entrada, 5.888 em cache, + 892 saída = 10.585 | 1.363 ms |
store:true | HTTP 200; a resposta devolveu store:false | 21 entrada + 133 saída = 154 | 304 ms |
| V4 Pro | HTTP 400; Responses recusou deepseek-v4-pro naquele momento | Sem usage | 307 ms |
Conclusão: o V4 Flash completou resposta comum, streaming, function call automática, busca web e a chamada com store:true. O teste também confirmou limites úteis: um orçamento curto pode ser consumido integralmente por reasoning; tool_choice=required falhou com Thinking; store:true não ativou persistência; e o V4 Pro não estava disponível nessa interface.
Metodologia e limites do teste
- Ambiente: requisições HTTPS com
fetchnativo; nenhum SDK foi usado. - A versão exata do runtime não foi registrada, o que impede reprodução byte a byte do ambiente.
- Modelo principal:
deepseek-v4-flash; o catálogo autenticado listou Flash e Pro. - Prompts sintéticos em pt-BR; nenhuma senha, documento, dado pessoal ou segredo foi enviado.
- A função demonstrativa recebeu CEP e peso fictícios e não executou frete, cobrança ou serviço externo.
- O raciocínio bruto não é publicado. Registramos apenas status, tipos de evento, uso, texto final permitido e hashes SHA-256.
- A latência inclui rede e infraestrutura desta sessão. Uma chamada por condição não é benchmark de velocidade, qualidade ou disponibilidade.
- Os HTTP 400 foram testes controlados de compatibilidade. Não provocamos 401, 402, 429, 500 ou 503.
| Artefato preservado | SHA-256 |
|---|---|
| Request do streaming | 9edff0ef7ff3f699185247bd6cee9abdf8face938680fef280927b2dfa7fe2c5 |
| Stream completo recebido | 0b33825383642251027c8ea2092f539f87c92bf84378ad9a94772449b4f8fc61 |
| Request de web search | 36fc783d67630d705cb4d08c342b3ecbe52bb1c4085e495d9f98f36df5a3d1ee |
| Response de web search | 7438e6b1fb63d500bb783cc79377305b3512bb50eb3a1ac48f7394108e7d44be |
| Request com V4 Pro | 2b9077e3478266b4342069e47a4a4ee2d13728ea97d06de9ebf22edafe53a1d3 |
| Erro devolvido para V4 Pro | ae0a4906c211c30a2cd54ac052990f03b2396a05e0595f1e15af420b24167f48 |
Limite da verificação pública: os corpos completos permanecem no arquivo editorial interno e não são publicados porque o stream inclui reasoning bruto. Os hashes permitem detectar alterações nos arquivos preservados, mas não reconstroem o conteúdo nem reproduzem a sessão. A metodologia e os exemplos podem ser repetidos em outra conta, com resultados potencialmente diferentes.
Resumo rápido: suporte atual
| Item | Status em 05/08/2026 |
|---|---|
| Base URL | https://api.deepseek.com |
| Operação no SDK | client.responses.create() |
| Modelo compatível | deepseek-v4-flash |
| V4 Pro | Não suportado; confirmado por HTTP 400 no teste |
| Estado no servidor | Stateless; store:true devolveu store:false |
| Entrada | Texto; imagens e arquivos não são suportados |
| Ferramentas | function e web_search; suporte específico a apply_patch |
| Streaming | Eventos SSE tipados e evento terminal; sem data: [DONE] |
| Uso | Entrada, cache, saída e reasoning no objeto usage |
A tabela oficial de modelos e preços identifica a versão hospedada do Flash como DeepSeek-V4-Flash-0731; o ID enviado nas chamadas continua sendo deepseek-v4-flash.
Responses API ou Chat Completions?
| Critério | Responses API | Chat Completions |
|---|---|---|
| Operação | responses.create() | chat.completions.create() |
| Modelos documentados | V4 Flash | V4 Flash e V4 Pro |
| Entrada principal | input e instructions | messages |
| Estado hospedado | Não | A aplicação também reenvia o histórico necessário |
| Final do streaming | response.completed, incomplete ou failed | data: [DONE] |
Use Responses quando o cliente espera esse formato e cada recurso necessário aparece como suportado. Continue em Chat Completions quando precisar do V4 Pro ou quando sua integração atual com messages já estiver validada. A página OpenAI SDK com DeepSeek permanece responsável pela migração geral.
Primeira chamada em Python
import os
from openai import OpenAI
api_key = os.environ.get("DEEPSEEK_API_KEY")
if not api_key:
raise RuntimeError("Defina DEEPSEEK_API_KEY no servidor.")
client = OpenAI(
api_key=api_key,
base_url="https://api.deepseek.com",
)
response = client.responses.create(
model="deepseek-v4-flash",
instructions="Responda em português do Brasil.",
input="Explique cache de contexto em duas frases.",
max_output_tokens=800,
)
if response.status != "completed":
raise RuntimeError(f"Resposta não concluída: {response.status}")
print(response.output_text)
print(response.usage)
O primeiro teste desta revisão usou max_output_tokens=160 e terminou como incomplete, porque todo o orçamento de saída foi consumido pelo reasoning. A repetição com 800 concluiu. Isso não define um número universal: trate os três estados terminais e ajuste limites com base na tarefa.
Streaming: eventos, ordem e término
Com stream:true, a API devolve eventos SSE com type e sequence_number. No teste, os 124 números de sequência cresceram sem regressão. O fluxo passou por eventos de criação, reasoning, texto final e terminou em response.completed; não apareceu o sentinela data: [DONE].
response.createderesponse.in_progressiniciaram o fluxo.response.reasoning_text.deltaapareceu no stream, mas não é publicado nem deve ser exibido como resposta final.response.output_text.deltatransportou o texto destinado ao usuário.response.completed,response.incompleteouresponse.faileddeve encerrar o processamento.
Function calls e busca web
Uma function call é uma solicitação estruturada, não autorização. Ao forçar tool_choice="required" com Thinking, a API retornou HTTP 400. Sem a escolha forçada, o V4 Flash chamou calcular_frete_demo com {"cep":"01001-000","peso_kg":2.5}. Validamos o JSON localmente e encerramos o teste sem executar função externa.
Na busca web, uma pergunta sobre o título da documentação oficial gerou quatro itens web_search_call e consumiu 10.585 tokens no fluxo. O resultado encontrou “Using the Responses API” e o domínio oficial. A observação confirma a ferramenta nesse caso, não precisão universal da busca. Cada chamada e resumo adicional pode elevar o consumo.
Estado, armazenamento e privacidade
A implementação é documentada como stateless. previous_response_id e conversation não são suportados. No teste, enviar store:true produziu HTTP 200, mas o objeto devolvido manteve store:false. Uma resposta bem-sucedida não prova que um campo ignorado produziu efeito.
Se o produto precisa de continuidade, o backend deve armazenar e reenviar somente o contexto autorizado e necessário. Não envie senhas, chaves, prontuários, dados bancários ou segredos comerciais. Defina autenticação, autorização, retenção e exclusão no seu próprio sistema.
Tokens e custo observado
As seis respostas com HTTP 200 reportaram 11.885 tokens no total. Aplicamos as tarifas regulares do V4 Flash verificadas em 05/08/2026 — US$ 0,0028 por 1M tokens de entrada com cache, US$ 0,14 sem cache e US$ 0,28 de saída — ao usage de cada chamada. O total calculado foi US$ 0,0010950464.
O valor exclui as duas respostas 400, que não devolveram usage, além de impostos, câmbio, infraestrutura e conferência de fatura. A DeepSeek anuncia uma política futura de preço de pico em 2×, mas a fonte não informava data efetiva. Veja a metodologia de preços e o estudo de tokens em português brasileiro.
Checklist antes de usar em produção
- Use
deepseek-v4-flashe confirme a matriz oficial no dia do deploy. - Mantenha a chave no backend ou em um secret manager.
- Envie somente texto autorizado e necessário; imagens e arquivos não são suportados.
- Defina allowlist de parâmetros, ferramentas e funções.
- Trate argumentos do modelo como entrada não confiável.
- Processe
completed,incompleteefailed. - Registre versão do cliente, data, modelo solicitado e devolvido,
usage, custo e erros. - Não exponha reasoning bruto, credenciais, headers ou conteúdo sensível em logs e prints.
Para diagnóstico, consulte os códigos de erro da DeepSeek API. Para clientes e agentes, consulte a matriz de IDEs, CLIs e ferramentas de terceiros.
Perguntas frequentes
A DeepSeek Responses API é igual à API da OpenAI?
Não. A DeepSeek oferece compatibilidade com parte do formato Responses, mas publica uma matriz própria de campos suportados, parciais, ignorados e não suportados.
O V4 Pro funciona na Responses API?
Não na verificação de 05/08/2026. A documentação listava apenas o Flash e a chamada autenticada com Pro retornou HTTP 400. Reconfirme a fonte oficial porque esse status pode mudar.
Posso enviar imagens ou PDFs?
Não como entrada multimodal documentada nessa interface. Extraia e valide o texto no seu próprio pipeline apenas quando isso for autorizado.
A API guarda a conversa?
A interface é stateless. previous_response_id e conversation não funcionam, e store:true devolveu store:false no teste.
Fontes oficiais
Transparência editorial: documentação e testes reconferidos em 5 de agosto de 2026. Esta página é uma fotografia datada; compatibilidade, modelos, preços e limites podem mudar.