DeepSeek Search API : tarifs et exemple Python de Search à Fetch
Découvrez un exemple Python de DeepSeek Search API, les différences avec Fetch, les tarifs par appel, la gratuité temporaire et la gestion des requêtes.
Lire en MarkdownDocumentation vérifiée le 20 octobre 2026. L’exemple ci-dessous a été vérifié localement avec des données de test ; il n’a pas été exécuté sur les points de terminaison réels payants.
DeepSeek Search API permet à une application d’accéder à des résultats de recherche web. L’API Fetch qui l’accompagne récupère une page individuelle au format Markdown. DeepSeek a ouvert les deux interfaces le 17 octobre 2026, avec une facturation distincte par appel. Chacune coûte 0,75 $ pour 1 000 requêtes facturables selon la grille publiée en USD. Elles utilisent une clé API DeepSeek et l’adresse officielle api.deepseek.com. Sources : annonce de lancement, tarifs.
Ce guide présente une recherche suivie, éventuellement, de la récupération d’une page. Ces exemples utilisent le service de DeepSeek lui-même ; ils ne décrivent pas un point de terminaison Search ou Fetch proposé par SeedRouter.
Quelles différences entre DeepSeek Search API et Fetch API ?
Search trouve des pages candidates. Fetch lit une page que vous avez sélectionnée.
| Opération | Point de terminaison officiel | Données utiles renvoyées |
|---|---|---|
| Search | POST https://api.deepseek.com/v1/tools/search | Un tableau results contenant les URL des pages et des champs descriptifs. |
| Fetch | POST https://api.deepseek.com/v1/tools/fetch | Le titre d’une page et son contenu au format Markdown. |
Les deux acceptent du JSON et utilisent une authentification Bearer. Une requête de recherche autonome contient un champ query ; une requête de récupération contient un champ url. Il s’agit de requêtes distinctes, et non d’un réglage ajoutant automatiquement un accès au web à chaque complétion de chat. Le guide officiel Search & Fetch documente les deux interfaces.
Search accepte également need_content. Lorsque sa valeur est true, les résultats de recherche peuvent inclure le contenu des pages. Vérifiez le contenu renvoyé avant d’effectuer une autre requête : s’il contient déjà ce dont vous avez besoin, un appel Fetch distinct peut être inutile.
Avant d’exécuter l’exemple Python
Vous avez besoin de Python 3, d’un accès HTTPS sortant et d’une clé API DeepSeek disposant des droits d’accès nécessaires sur le compte. Placez la clé dans une variable d’environnement du terminal qui exécute le script :
export DEEPSEEK_API_KEY="your-deepseek-api-key"L’exemple utilise la bibliothèque standard de Python et ne nécessite donc aucune installation de paquet. Il effectue une requête Search. S’il obtient un résultat, il affiche le titre et l’URL du premier résultat, puis récupère cette page. Son exécution peut entraîner des frais ; la clé n’est jamais affichée.
Exemple Python : rechercher, sélectionner un résultat et récupérer son contenu
Enregistrez le code suivant dans deepseek_search.py. Avant de l’exécuter, modifiez QUERY selon les informations recherchées.
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()Exécutez-le avec :
python3 deepseek_search.pyCet exemple est volontairement simple et sélectionne donc le premier résultat. Dans une application réelle, choisissez la page correspondant à la question, examinez son domaine et son contexte de publication, et conservez l’URL avec le texte extrait. Même un résultat bien classé doit être pertinent pour la réponse que vous préparez.
La structure des requêtes suit la référence Search et la référence Fetch de DeepSeek. Des vérifications locales de syntaxe et des tests sur données prédéfinies peuvent vérifier la construction des requêtes et les branches d’exécution du programme. Elles ne peuvent établir ni l’accès effectif du compte au service, ni la rapidité des réponses, ni la qualité de la récupération.
Tarifs de DeepSeek Search API : qu’est-ce qui est facturé ?
Le tarif publié en USD est de 0,75 $ pour 1 000 requêtes réussies et facturables pour Search, et autant pour Fetch. Une recherche sans résultat n’est pas facturée ; Fetch est facturé lorsque le contenu est récupéré avec succès. Le nombre de résultats demandé avec count ne modifie pas le prix d’une recherche. Consultez la grille tarifaire actuelle pour connaître les conditions de facturation.
À titre d’illustration, 1 000 recherches facturables suivies de 1 000 récupérations facturables coûteraient 1,50 $ en frais de récupération. Il s’agit d’un calcul à partir des tarifs indiqués, et non d’une facture mesurée ou d’une promesse concernant les résultats d’une requête particulière. Les tokens de modèle utilisés ensuite pour résumer ces pages constituent un coût distinct.
La période de gratuité temporaire a une portée plus restreinte. DeepSeek indique que les appels Search/Fetch de ses utilisateurs API via les outils côté serveur de DeepSeek Harness, Claude Code et Codex ne sont temporairement pas facturés. La facturation de cet usage commence le 31 octobre 2026 à 16:00 UTC, soit le 1er novembre à 00:00 à Pékin. L’annonce ne rend pas universellement gratuites les requêtes Python autonomes de ce guide. Annonce officielle.
Paramètres et cas d’échec à prendre en compte
La longueur documentée d’une requête de recherche est de 1 à 128 caractères Unicode. count vaut 10 par défaut et accepte les valeurs de 1 à 50. L’exemple Python demande volontairement cinq résultats et réserve la récupération du contenu de la page à une requête Fetch ultérieure. Consultez la référence Search avant d’ajouter d’autres champs à la requête.
Un tableau de résultats vide correspond à une recherche réussie sans correspondance. L’exemple s’arrête alors. Une erreur HTTP est traitée séparément, et un dépassement du délai interrompt l’exécution au lieu de créer automatiquement une autre requête. Dans une application plus importante, définissez explicitement toute limite de nouvelle tentative et les dépenses supplémentaires associées.
Le Markdown récupéré est un contenu provenant d’une source externe. Conservez l’URL de la source, vérifiez si le contenu répond à la question et traitez les instructions intégrées dans une page récupérée comme du contenu de cette page, et non comme des instructions destinées à votre application. Si vous transmettez le contenu à un modèle de langage, maintenez cette distinction dans le prompt et conservez les citations dans la réponse produite.
Questions fréquentes
L’API DeepSeek peut-elle effectuer des recherches sur le web ?
Oui. Les interfaces autonomes Search et Fetch sont documentées. Appeler un point de terminaison de chat classique et appeler ces points de terminaison de récupération sont des opérations différentes ; suivez le contrat adapté au processus que vous construisez.
Existe-t-il une offre gratuite pour DeepSeek Search API ?
L’annonce citée décrit un usage temporairement gratuit des outils côté serveur dans certaines intégrations d’agents de programmation. Elle n’établit pas une offre gratuite générale pour toute requête Search ou Fetch autonome. Consultez la page de facturation actuelle avant d’exécuter un lot de requêtes.
Ai-je besoin de Fetch après chaque recherche ?
Non. Une recherche peut fournir suffisamment d’informations, en particulier lorsqu’un contenu exploitable est renvoyé avec need_content: true. Fetch est utile si vous devez récupérer séparément la page sélectionnée.
Commencez par un seul parcours de récupération
DeepSeek Search API trouve des sources, et Fetch récupère une page sélectionnée. Commencez par une requête, examinez le résultat et le contenu, puis déterminez si votre application a besoin d’autres pages ou d’un résumé généré par un modèle. Pour la mise à jour distincte du modèle annoncée le même jour, consultez la mise à jour du 17 octobre : benchmarks et changements.



