API Files
Téléversez des fichiers une seule fois, référencez-les par file_id dans les requêtes Messages, et téléchargez les sorties créées par les skills ou l'outil d'exécution de code.
L'API Files vous permet de téléverser et de gérer des fichiers à utiliser avec l'API Claude sans avoir à téléverser à nouveau le contenu à chaque requête. Cela est particulièrement utile lorsque vous utilisez l'outil d'exécution de code pour fournir des entrées (par exemple, des jeux de données et des documents), puis télécharger des sorties (par exemple, des graphiques). Vous pouvez explorer directement la référence de l'API, en complément de ce guide.
Prise en charge des types de fichiers
Le référencement d'un file_id dans une requête Messages est pris en charge sur tous les modèles qui prennent en charge le type de fichier concerné. Les images sont prises en charge sur tous les modèles Claude actuels. Pour les PDF et les autres types de fichiers avec l'outil d'exécution de code, consultez les pages liées pour connaître la prise en charge par modèle.
Fonctionnement de l'API Files
L'API Files propose une approche « créer une fois, utiliser plusieurs fois » pour travailler avec des fichiers :
- Téléversez des fichiers vers le stockage sécurisé d'Anthropic et recevez un
file_idunique - Téléchargez des fichiers créés par les skills ou l'outil d'exécution de code
- Référencez des fichiers dans les requêtes Messages en utilisant le
file_idau lieu de téléverser à nouveau le contenu - Gérez vos fichiers avec les opérations de liste, de récupération et de suppression
Comment utiliser l'API Files
Téléverser un fichier
Téléversez un fichier à référencer dans de futurs appels API :
uploaded = client.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)
file_id = uploaded.id
print(file_id)La réponse au téléversement d'un fichier comprend :
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false,
"expires_at": null
}downloadable vaut false pour les fichiers que vous téléversez. Seuls les fichiers créés par les skills ou l'outil d'exécution de code peuvent être téléchargés. Consultez Télécharger un fichier.
Utiliser un fichier dans les messages
Une fois téléversé, référencez le fichier en transmettant l'id de la réponse de téléversement en tant que file_id :
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Please summarize this document for me."},
{
"type": "document",
"source": {
"type": "file",
"file_id": file_id,
},
},
],
}
],
)
print(response)Types de fichiers et blocs de contenu
L'API Files prend en charge différents types de fichiers qui correspondent à différents types de blocs de contenu :
| Type de fichier | Type MIME | Type de bloc de contenu | Cas d'usage |
|---|---|---|---|
application/pdf | document | Analyse de texte, traitement de documents | |
| Texte brut | text/plain | document | Analyse de texte, traitement |
| Images | image/jpeg, image/png, image/gif, image/webp | image | Analyse d'images, tâches visuelles |
| Jeux de données, autres | Variable | container_upload | Analyser des données, créer des visualisations |
Blocs document
Pour les PDF et les fichiers texte, utilisez le bloc de contenu document :
{
"type": "document",
"source": {
"type": "file",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
},
"title": "Document Title", // Optional
"context": "Context about the document", // Optional
"citations": { "enabled": true } // Optional, enables citations
}Blocs image
Pour les images, utilisez le bloc de contenu image :
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Blocs container upload
Pour envoyer un fichier à l'outil d'exécution de code, utilisez le bloc de contenu container_upload :
{
"type": "container_upload",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
}Travailler avec d'autres formats de fichiers
Pour les types de fichiers que le bloc document ne prend pas en charge (par exemple, .docx et .xlsx), convertissez les fichiers en texte brut et incluez le contenu directement dans votre message. Les fichiers qui sont déjà en texte brut, tels que les fichiers .csv et .md, peuvent soit être lus de cette manière, soit être téléversés via l'API Files avec un type de contenu text/plain explicite. Pour analyser des jeux de données plutôt que de les lire comme du texte, téléversez-les pour l'outil d'exécution de code à l'aide d'un bloc container_upload.
Les exemples suivants lisent un fichier texte et envoient son contenu sous forme de texte brut :
client = anthropic.Anthropic()
# Lire le fichier texte
with open("document.txt") as f:
text_content = f.read()
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the document content:\n\n{text_content}\n\nPlease summarize this document.",
}
],
}
],
)
for block in response.content:
if block.type == "text":
print(block.text)Gérer les fichiers
Lister les fichiers
Récupérez la liste de vos fichiers téléversés. Le point de terminaison est paginé : chaque requête renvoie jusqu'à limit fichiers (20 par défaut, et au maximum 1 000), et le curseur next_page de la réponse récupère la page suivante lorsqu'il est renvoyé en tant que paramètre page. Les fichiers sont classés du plus récent au plus ancien. Consultez la référence de l'API List Files. Les SDK renvoient la première page et fournissent des utilitaires de pagination automatique. L'exemple CLI limite le total avec --max-items :
client = anthropic.Anthropic()
files = client.files.list()
print(files)Pour vérifier un ensemble connu de fichiers en une seule requête plutôt que de paginer, transmettez jusqu'à 100 identifiants de fichiers en tant que paramètres de requête ids[]. Une requête ids[] renvoie toujours une seule page (next_page vaut null), et tout identifiant qui ne correspond pas à un fichier de votre espace de travail est silencieusement omis de data ; comparez les identifiants renvoyés aux identifiants demandés pour détecter les absences. ids[] ne peut pas être combiné avec page ou limit.
Obtenir les métadonnées d'un fichier
Récupérez des informations sur un fichier spécifique :
file = client.files.retrieve_metadata(file_id)
print(file)Supprimer un fichier
Supprimez un fichier de votre espace de travail :
client.files.delete(file_id)Télécharger un fichier
Téléchargez les fichiers créés par les skills ou l'outil d'exécution de code. Les fichiers que vous téléversez ne peuvent pas être téléchargés. Le file_id d'un fichier généré apparaît dans le bloc de contenu bash_code_execution_tool_result de la réponse Messages qui l'a créé :
file_content = client.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")Sur l'API Claude, les fichiers image, vidéo et audio pris en charge que Claude produit avec l'outil d'exécution de code, y compris les fichiers créés par les skills, comportent des Content Credentials C2PA signés lorsque vous les téléchargez. Consultez Content Credentials sur les fichiers générés pour savoir ce que contient l'identifiant et comment le vérifier.
Stockage des fichiers et limites
Limites de stockage
- Taille maximale de fichier : 500 Mo par fichier
- Stockage total : 1 To par organisation
Cycle de vie des fichiers
- Les fichiers sont limités à l'espace de travail dans lequel ils ont été téléversés. Toute requête dans le même espace de travail peut les référencer ; n'acceptez jamais d'identifiants de fichiers provenant de sources non fiables (voir l'avertissement sur l'accès à l'espace de travail)
- Les fichiers ne peuvent pas être modifiés ni renommés après le téléversement. Pour modifier le contenu d'un fichier, téléversez un nouveau fichier et supprimez l'ancien
- Les fichiers persistent jusqu'à ce que vous les supprimiez avec le point de terminaison
DELETE /v1/files/{file_id}ou qu'ils atteignent leurexpires_at - Les fichiers supprimés ne peuvent pas être récupérés
- Les fichiers deviennent inaccessibles via l'API peu après leur suppression, mais ils peuvent persister dans les appels actifs à l'API Messages et les utilisations d'outils associées
- Les fichiers que les utilisateurs suppriment seront supprimés conformément à la politique de conservation des données d'Anthropic. Pour l'éligibilité ZDR de l'ensemble des fonctionnalités, consultez API et conservation des données
Expiration des fichiers
Pour qu'un fichier expire automatiquement, incluez un champ de formulaire expires_in_seconds lors de son téléversement. La valeur est un nombre entier de secondes compris entre 3 600 (1 heure) et 7 776 000 (90 jours). L'horodatage expires_at résultant (RFC 3339) apparaît dans chaque réponse de fichier et vaut null pour les fichiers téléversés sans expiration. L'expiration est définie une seule fois au téléversement et ne peut pas être modifiée.
Lorsqu'un fichier atteint son expires_at :
- Le téléchargement de son contenu (
GET /v1/files/{file_id}/content) renvoie une erreur 404 - Une requête Messages qui référence le fichier échoue avant l'inférence
- Ses métadonnées (
GET /v1/files/{file_id}) restent lisibles pendant 30 jours au maximum, avecexpires_atdans le passé - Il continue d'apparaître dans les réponses de liste pendant cette période ; comparez
expires_atà l'heure actuelle pour filtrer les fichiers expirés
La suppression d'un fichier expiré avec DELETE /v1/files/{file_id} supprime immédiatement ses métadonnées au lieu d'attendre l'écoulement de la période de 30 jours.
Journalisation d'audit
Si votre organisation a activé la Compliance API, son Activity Feed (flux d'activité) enregistre les opérations de l'API Files effectuées avec une clé API Claude ou depuis la Claude Console : chaque téléversement (POST /v1/files), téléchargement de contenu (GET /v1/files/{file_id}/content) et suppression (DELETE /v1/files/{file_id}) apparaît sous la forme d'une activité platform_file_uploaded, platform_file_content_downloaded ou platform_file_deleted. Le listage des fichiers et la récupération des métadonnées de fichiers ne sont pas enregistrés. Les opérations qui ont lieu pendant que la Compliance API est désactivée ne sont pas enregistrées et ne peuvent pas être récupérées ultérieurement ; configurez donc la Compliance API avant de vous appuyer sur cette piste d'audit. Sur Claude Platform on AWS, auditez plutôt les opérations sur les fichiers à l'aide des événements de données AWS CloudTrail.
Migrer depuis files-api-2025-04-14
L'API Files n'est plus en bêta et ne nécessite aucun en-tête bêta. La migration depuis files-api-2025-04-14 est facultative : les requêtes qui l'envoient encore continuent de fonctionner et de renvoyer les formes de réponse bêta, de sorte qu'une intégration existante continue de fonctionner jusqu'à ce que vous la modifiiez. La suppression de l'en-tête fait basculer ces requêtes vers les formes documentées sur cette page :
Avec files-api-2025-04-14 | Sans l'en-tête | |
|---|---|---|
| Réponse de liste | { data, has_more, first_id, last_id } | { data, next_page } ; renvoyez next_page en tant que paramètre de requête page |
| Curseurs de liste | before_id, after_id | page, ou jusqu'à 100 ids[] (before_id et after_id renvoient une erreur 400) |
expires_at sur les objets fichier | Non renvoyé | Toujours présent ; null lorsque le fichier n'a pas d'expiration |
Content-Type sur la partie du fichier téléversé | Obligatoire | Facultatif ; le type est détecté lorsqu'il est omis |
Pour migrer :
- Supprimez l'en-tête bêta. Retirez
anthropic-beta: files-api-2025-04-14de vos requêtes. Dans les SDK, appelezclient.filesau lieu declient.beta.files; conserverclient.beta.filesne fonctionne que sur les versions de SDK qui n'envoient plus l'en-tête. Les versions antérieures l'envoient depuisclient.beta.filesmême sans argumentbetas. - Mettez à jour la pagination. Remplacez les boucles
after_id/before_idpar le curseurpage/next_page, ou utilisez les utilitaires de pagination automatique des SDK présentés dans Gérer les fichiers. - Lisez
expires_at. Le champ n'apparaît que sans l'en-tête ;nullsignifie que le fichier n'a pas d'expiration (voir Expiration des fichiers).
Espace de noms bêta des SDK
À partir du SDK Python 1.2.0, du SDK TypeScript 0.122.0, du SDK Go 1.68.0, du SDK Java 2.59.0, du SDK Ruby 1.67.0 et du SDK C# 12.44.0, client.beta.files n'envoie plus files-api-2025-04-14 et renvoie les mêmes formes que client.files, avec des noms de types préfixés par Beta. Il accepte un argument betas pour les fonctionnalités Files encore en bêta, telles que le filtrage par scope_id sous un en-tête bêta Managed Agents. Les versions antérieures des SDK sont typées selon les formes bêta ; si vous dépendez de ces types, restez sur une version antérieure jusqu'à votre migration.
Les requêtes qui portent anthropic-beta: managed-agents-2026-04-01 sans files-api-2025-04-14 reçoivent les formes de cette page avec une facilité de compatibilité sur GET /v1/files : before_id et after_id sont toujours acceptés (non combinables avec page ou ids[]), et la réponse de liste inclut has_more, first_id et last_id en plus de next_page. Les versions bêta ultérieures de Managed Agents reçoivent la forme simple.
Gestion des erreurs
Les erreurs courantes lors de l'utilisation de l'API Files comprennent :
- Fichier introuvable (404) : Le
file_idspécifié n'existe pas ou vous n'y avez pas accès - Type de fichier invalide (400) : Le type de fichier ne correspond pas au type de bloc de contenu (par exemple, utilisation d'un fichier image dans un bloc document)
- Non téléchargeable (400) : Les fichiers que vous téléversez ont
"downloadable": falseet ne peuvent pas être téléchargés. Seuls les fichiers créés par les skills ou l'outil d'exécution de code peuvent être téléchargés - Dépassement de la taille de la fenêtre de contexte (400) : Le fichier est plus grand que la taille de la « context window » (fenêtre de contexte) (par exemple, utilisation d'un fichier texte brut de 500 Mo dans une requête
/v1/messages) - Nom de fichier invalide (400) : Le nom du fichier ne respecte pas les exigences de longueur (1 à 255 caractères) ou contient des caractères interdits (
<,>,:,",|,?,*,\,/, ou les caractères Unicode 0 à 31) - Fichier trop volumineux (413) : Le fichier dépasse la limite de 500 Mo
- Limite de stockage dépassée (400) : Votre organisation a atteint la limite de stockage de 1 To
{
"type": "error",
"error": {
"type": "not_found_error",
"message": "File `file_011CNha8iCJcU1wXNR6q4V8w` not found."
},
"request_id": "req_011CQFYcrRp7mCHLDsAYT8Qt"
}Utilisation et facturation
Les opérations de l'API Files sont gratuites :
- Téléversement de fichiers
- Téléchargement de fichiers
- Listage des fichiers
- Obtention des métadonnées de fichiers
- Suppression de fichiers
Le contenu des fichiers utilisé dans les requêtes Messages est facturé en tant que tokens d'entrée.
Limites de débit
Les appels API liés aux fichiers sont limités à environ 500 requêtes par minute. Pour demander une « rate limit » (limite de débit) plus élevée, contactez l'équipe commerciale.
Prochaines étapes
Traitez des PDF avec Claude. Extrayez du texte, analysez des graphiques et comprenez le contenu visuel de vos documents.
Exécutez du code Python et bash dans un conteneur isolé pour analyser des données, générer des fichiers et itérer sur des solutions.
Traitez et analysez des entrées visuelles et générez du texte et du code à partir d'images.
Compatibility
- Supported platforms
- Claude API
- Claude Platform on AWSBeta
- Microsoft Foundry1Beta
- Sur Microsoft Foundry, l'API Files nécessite un déploiement Hosted on Anthropic. ↩
Was this page helpful?