Claude Platform Docs
MessagesTravailler avec des fichiers

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_id unique
  • 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_id au 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 :

Response
{
  "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 fichierType MIMEType de bloc de contenuCas d'usage
PDFapplication/pdfdocumentAnalyse de texte, traitement de documents
Texte bruttext/plaindocumentAnalyse de texte, traitement
Imagesimage/jpeg, image/png, image/gif, image/webpimageAnalyse d'images, tâches visuelles
Jeux de données, autresVariablecontainer_uploadAnalyser 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 leur expires_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, avec expires_at dans 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-14Sans 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 listebefore_id, after_idpage, ou jusqu'à 100 ids[] (before_id et after_id renvoient une erreur 400)
expires_at sur les objets fichierNon renvoyéToujours présent ; null lorsque le fichier n'a pas d'expiration
Content-Type sur la partie du fichier téléverséObligatoireFacultatif ; le type est détecté lorsqu'il est omis

Pour migrer :

  1. Supprimez l'en-tête bêta. Retirez anthropic-beta: files-api-2025-04-14 de vos requêtes. Dans les SDK, appelez client.files au lieu de client.beta.files ; conserver client.beta.files ne fonctionne que sur les versions de SDK qui n'envoient plus l'en-tête. Les versions antérieures l'envoient depuis client.beta.files même sans argument betas.
  2. Mettez à jour la pagination. Remplacez les boucles after_id/before_id par le curseur page/next_page, ou utilisez les utilitaires de pagination automatique des SDK présentés dans Gérer les fichiers.
  3. Lisez expires_at. Le champ n'apparaît que sans l'en-tête ; null signifie 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_id spé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": false et 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
Output
{
  "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
  1. Sur Microsoft Foundry, l'API Files nécessite un déploiement Hosted on Anthropic. ↩

Was this page helpful?