L'API Files vous permet de téléverser et de gérer des fichiers à utiliser avec l'API Claude sans avoir à retéléverser 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.
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.
L'API Files offre une approche « créer une fois, utiliser plusieurs fois » pour travailler avec des fichiers :
file_id uniquefile_id au lieu de retéléverser le contenuTéléversez un fichier pour le référencer dans de futurs appels d'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 inclut :
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}downloadable est 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. Voir Télécharger un fichier.
Une fois téléversé, référencez le fichier en transmettant l'id de la réponse de téléversement comme file_id :
response = client.messages.create(
model="claude-opus-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)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 |
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
}Pour les images, utilisez le bloc de contenu image :
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}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"
}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 être lus de cette manière ou 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 en utilisant un bloc container_upload.
Les exemples suivants lisent un fichier texte et envoient son contenu en tant que 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",
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)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 les paramètres before_id et after_id récupèrent la page adjacente. 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.beta.files.list()
print(files)Récupérez des informations sur un fichier spécifique :
file = client.files.retrieve_metadata(file_id)
print(file)Supprimez un fichier de votre espace de travail :
client.files.delete(file_id)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")DELETE /v1/files/{file_id}Les erreurs courantes lors de l'utilisation de l'API Files incluent :
file_id spécifié n'existe pas ou vous n'y avez pas accès"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/v1/messages)<, >, :, ", |, ?, *, \, /, ou les caractères Unicode 0 à 31){
"type": "error",
"error": {
"type": "not_found_error",
"message": "File `file_011CNha8iCJcU1wXNR6q4V8w` not found."
},
"request_id": "req_011CQFYcrRp7mCHLDsAYT8Qt"
}Les opérations de l'API Files sont gratuites :
Le contenu des fichiers utilisé dans les requêtes Messages est facturé en tant que tokens d'entrée.
Pendant la période bêta :
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.
| Supported platforms |
|
|---|
Was this page helpful?