DeepSeek Search API: preços e um exemplo Python de Search a Fetch
Veja um exemplo Python da DeepSeek Search API, as diferenças entre Search e Fetch, preços por chamada, limites da gratuidade e tratamento de requisições.
Ler em MarkdownDocumentação verificada em 20 de outubro de 2026. O exemplo abaixo foi verificado localmente com dados de teste predefinidos; ele não foi executado nos endpoints reais pagos.
A DeepSeek Search API dá a uma aplicação acesso a resultados de busca na web. A Fetch API, que a complementa, recupera uma página individual em Markdown. A DeepSeek disponibilizou as duas interfaces em 17 de outubro de 2026, com cobrança separada por chamada. Cada uma custa US$ 0,75 por 1.000 requisições sujeitas a cobrança, conforme a tabela publicada em USD. Elas usam uma chave API da DeepSeek e o endereço oficial api.deepseek.com. Fontes: anúncio de lançamento, preços.
Este guia mostra uma busca seguida da recuperação opcional de uma página. Os exemplos usam o próprio serviço da DeepSeek; eles não descrevem um endpoint Search ou Fetch oferecido pelo SeedRouter.
Qual é a diferença entre a DeepSeek Search API e a Fetch API?
Search encontra páginas candidatas. Fetch lê uma página que você selecionou.
| Operação | Endpoint oficial | Saída útil |
|---|---|---|
| Search | POST https://api.deepseek.com/v1/tools/search | Um array results com URLs das páginas e campos descritivos. |
| Fetch | POST https://api.deepseek.com/v1/tools/fetch | O título de uma página e seu conteúdo em Markdown. |
Ambas aceitam JSON e usam autenticação bearer. Uma requisição independente de busca contém query; uma requisição de recuperação contém url. São requisições distintas, não uma configuração que adiciona acesso à web automaticamente a toda conclusão de chat. O guia oficial de Search & Fetch documenta as duas interfaces.
Search também aceita need_content. Quando o valor é true, os resultados da busca podem incluir o conteúdo das páginas. Confira o conteúdo retornado antes de fazer outra requisição: se ele já contiver o que você precisa, talvez uma chamada Fetch separada não seja necessária.
Antes de executar o exemplo Python
Você precisa de Python 3, acesso HTTPS de saída e uma chave API da DeepSeek com as permissões de acesso necessárias na conta. Coloque a chave em uma variável de ambiente no terminal em que o script será executado:
export DEEPSEEK_API_KEY="your-deepseek-api-key"O exemplo usa a biblioteca padrão do Python, portanto não exige a instalação de pacotes. Ele faz uma requisição Search. Se houver um resultado, imprime o título e a URL do primeiro resultado e, em seguida, recupera essa página. A execução pode gerar cobranças; a chave nunca é impressa.
Exemplo Python: busque, selecione um resultado e recupere seu conteúdo
Salve o código abaixo como deepseek_search.py. Altere QUERY para a informação de que você precisa antes de executá-lo.
import json
import os
import urllib.error
import urllib.request
BASE_URL = "https://api.deepseek.com"
QUERY = "Python documentation pathlib"
def call(path, payload):
request = urllib.request.Request(
BASE_URL + path,
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": "Bearer " + os.environ["DEEPSEEK_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
try:
with urllib.request.urlopen(request, timeout=30) as response:
return json.load(response)
except urllib.error.HTTPError as error:
raise RuntimeError(f"DeepSeek returned HTTP {error.code}") from None
def main():
search = call(
"/v1/tools/search",
{"query": QUERY, "count": 5, "need_content": False},
)
results = search.get("results", [])
if not results:
print("No search results; no Fetch request was made.")
return
selected = results[0]
print(selected.get("title", "Untitled result"))
print(selected["url"])
page = call("/v1/tools/fetch", {"url": selected["url"]})
content = page.get("content", "")
if not content:
print("The selected page returned no content.")
return
print(page.get("title", ""))
print(content)
if __name__ == "__main__":
main()Execute com:
python3 deepseek_search.pyEste é um exemplo simples, por isso seleciona o primeiro resultado. Em uma aplicação real, selecione a página que corresponde à pergunta, examine seu domínio e o contexto de publicação e mantenha a URL junto do texto extraído. Mesmo um resultado bem posicionado na busca precisa ser relevante para a resposta que você está produzindo.
A estrutura das requisições segue as referências de Search e Fetch da DeepSeek. Verificações locais de sintaxe e com dados de teste predefinidos podem conferir a construção das requisições e os caminhos de execução do programa. Elas não comprovam o acesso real da conta, a velocidade das respostas ou a qualidade da recuperação.
Preços da DeepSeek Search API: o que é cobrado?
O preço publicado em USD é de US$ 0,75 por 1.000 requisições bem-sucedidas sujeitas a cobrança para Search, e o mesmo para Fetch. Uma busca sem resultados não é cobrada; Fetch é cobrado quando o conteúdo é recuperado com sucesso. A quantidade de resultados solicitada com count não altera o preço de uma busca. Consulte a tabela de preços atual para verificar as condições de cobrança.
Como exemplo, 1.000 buscas cobradas seguidas de 1.000 recuperações cobradas custariam US$ 1,50 em tarifas de recuperação. Isso é um cálculo a partir das tarifas informadas, não uma cobrança observada nem uma promessa sobre o que uma consulta específica retornará. Os tokens de modelo usados depois para resumir essas páginas têm um custo separado.
O período gratuito temporário tem um escopo mais restrito. A DeepSeek informa que as chamadas Search/Fetch de seus usuários de API feitas pelas ferramentas do lado do servidor no DeepSeek Harness, Claude Code e Codex estão temporariamente sem cobrança. A cobrança desse uso começa em 31 de outubro de 2026 às 16:00 UTC, ou 1 de novembro às 00:00 em Pequim. O anúncio não torna universalmente gratuitas as requisições Python independentes deste guia. Anúncio oficial.
Parâmetros e casos de falha a considerar
O tamanho documentado da consulta de busca é de 1–128 caracteres Unicode. count tem valor padrão 10 e aceita 1–50. O exemplo Python pede intencionalmente cinco resultados e deixa a recuperação do conteúdo da página para uma requisição Fetch posterior. Consulte a referência de Search antes de acrescentar outros campos à requisição.
Um array de resultados vazio representa uma busca bem-sucedida sem correspondências. O exemplo para nesse ponto. Um erro HTTP é tratado separadamente, e um timeout interrompe a execução em vez de criar outra requisição automaticamente. Em uma aplicação maior, deixe explícitos o limite de novas tentativas e o gasto adicional.
O Markdown recuperado é material de uma fonte externa. Preserve a URL da fonte, verifique se o conteúdo responde à pergunta e trate instruções inseridas em uma página recuperada como conteúdo da página, não como instruções para sua aplicação. Se você passar o conteúdo a um modelo de linguagem, mantenha essa distinção no prompt e preserve as citações na resposta gerada.
Perguntas frequentes
A API da DeepSeek consegue buscar na web?
Sim. As interfaces independentes Search e Fetch estão documentadas. Chamar um endpoint de chat normal e chamar esses endpoints de recuperação são operações diferentes; siga o contrato correspondente ao fluxo de trabalho que você está construindo.
Existe um plano gratuito da DeepSeek Search API?
O anúncio citado descreve o uso temporariamente gratuito de ferramentas do lado do servidor em integrações específicas com agentes de programação. Ele não estabelece um plano gratuito geral para toda requisição independente de Search ou Fetch. Confira a página atual de cobrança antes de executar um lote.
Preciso usar Fetch após cada busca?
Não. Uma busca pode fornecer informação suficiente, principalmente quando retorna conteúdo útil com need_content: true. Fetch é útil quando você precisa recuperar a página selecionada separadamente.
Comece com um único fluxo de recuperação
A DeepSeek Search API encontra fontes, e Fetch recupera uma página selecionada. Comece com uma consulta, examine o resultado e o conteúdo e depois decida se sua aplicação precisa de mais páginas ou de um resumo gerado por um modelo. Para a atualização separada do modelo anunciada no mesmo dia, veja a atualização do checkpoint de 17 de outubro: benchmarks e mudanças.



