Guides / DeepSeek Files API
DeepSeek Files API (2026) : limites, téléversements et file_id en pratique
DeepSeek a discrètement lancé son premier endpoint de fichiers le 21 août 2026, en parallèle de son modèle de vision — ce qui rend de nombreux anciens guides obsolètes (plusieurs affirment encore que l'API de DeepSeek n'a « aucun endpoint de téléversement de fichiers »). Ce guide détaille les limites vérifiées, des exemples de téléversement et de référence en curl et Python, et quand utiliser des fichiers plutôt que du base64.
L'API DeepSeek Files téléverse une image une seule fois et renvoie un file_id à référencer dans le chat.
Téléversez avec purpose="user_data" ; un fichier peut atteindre 64 MiB (fenêtre de téléversement de 10 minutes) ; le stockage est de 25 GiB / 10 000 fichiers par utilisateur ; rétention de 1 heure à 30 jours, ou permanente sans expires_after.
Référencez les fichiers dans les conversations deepseek-v4-flash-vision-exp via un bloc {"type":"file","file_id":...} — les images par file_id peuvent atteindre 64 MiB par requête, contre 32 MiB en inline. Depuis l'endpoint compatible Anthropic, ajoutez l'en-tête anthropic-beta: files-api-2025-04-14.
Aperçu des limites
| Limite | Valeur (documentation officielle, 2026-08-21) |
|---|---|
| Formats | JPEG, PNG, GIF, WebP — détectés par le contenu du fichier, non par l'extension |
| Par fichier | Max. 64 MiB ; le téléversement doit se terminer dans les 10 minutes |
| Par utilisateur | 25 GiB de stockage ; 10 000 fichiers stockés |
| Rétention | De 1 heure à 30 jours, ou permanent (omettre expires_after) |
| Usage | Doit être user_data (seul purpose pris en charge, également pour le filtrage de liste) |
| Taille dans la requête | Image par file_id jusqu'à 64 MiB par requête ; images inline base64/URL limitées à 32 MiB |
| Compatibilité API | Compatible OpenAI et compatible Anthropic ; Anthropic /messages nécessite l'en-tête bêta files-api |
Source : guide officiel de la Files API, consulté le 2026-08-21.
Téléversez une fois, référencez indéfiniment (enfin, jusqu'à 30 jours)
Téléversez une capture d'écran et obtenez un file_id :
curl https://api.deepseek.com/files \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-F "purpose=user_data" \
-F "file=@dashboard.png"
Référencez-le ensuite dans un chat vision-exp — aucun blob base64, aucun re-téléversement lors des tours suivants :
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-v4-flash-vision-exp",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Which metric regressed in this dashboard?"},
{"type": "file", "file_id": "file-api-xxxx"}
]
}]
}'
Python avec le SDK OpenAI — téléversement, puis chat :
from openai import OpenAI
client = OpenAI(api_key="YOUR_KEY", base_url="https://api.deepseek.com")
f = client.files.create(file=open("dashboard.png", "rb"), purpose="user_data")
resp = client.chat.completions.create(
model="deepseek-v4-flash-vision-exp",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Which metric regressed?"},
{"type": "file", "file_id": f.id},
],
}],
)
print(resp.choices[0].message.content)
- Alternative inline : un bloc de fichier peut contenir
file_data(base64) au lieu defile_id— champs mutuellement exclusifs ;filenamene peut accompagner que file_data. - Stack de type Anthropic : les mêmes blocs de fichiers fonctionnent sur /messages avec l'en-tête
anthropic-beta: files-api-2025-04-14.
Quand utiliser les fichiers, base64 ou URL
| Méthode | Taille max. | Idéal pour |
|---|---|---|
| base64 en ligne | 32 MiB | Images ponctuelles générées à la volée ; le plus simple à coder |
| URL externe | 32 MiB, URL de 8 192 caractères, récupération en 60s | Images hébergées publiquement ; aucune étape de téléversement |
| Files API | 64 MiB | Boucles de captures d'écran d'agents, images de référence répétées, tout élément réutilisé au fil des échanges |
FAQ
J'ai lu que DeepSeek n'avait pas d'endpoint de fichiers — est-ce nouveau ?
Exact jusqu'au 21 août 2026 — les anciens guides indiquant « pas de route /v1/files, extrayez le texte vous-même » étaient corrects à l'époque et sont désormais obsolètes. La Files API a été lancée avec le modèle de vision.
Puis-je téléverser des PDF ou des documents ?
Non — la Files API n'accepte actuellement que les formats d'image (JPEG/PNG/GIF/WebP). Pour les PDF, convertissez les pages en images côté appelant, puis téléversez-les ou intégrez-les en inline.
Combien de temps les fichiers sont-ils conservés ?
Entre 1 heure et 30 jours via expires_after, ou de manière permanente si vous l'omettez — dans la limite de votre quota de 25 GiB / 10 000 fichiers.
Les fichiers fonctionnent-ils avec les modèles non-vision ?
Les blocs de fichiers sont exploités par deepseek-v4-flash-vision-exp ; les modèles V4-Flash/V4-Pro standards restent exclusivement textuels. N'envoyez pas de références de fichiers à des modèles de texte.