Die Files API ermöglicht es dir, Dateien hochzuladen und zu verwalten, um sie mit der Claude API zu verwenden, ohne Inhalte bei jeder Anfrage erneut hochladen zu müssen. Dies ist besonders nützlich, wenn du das Code-Execution-Tool verwendest, um Eingaben (z. B. Datensätze und Dokumente) bereitzustellen und anschließend Ausgaben (z. B. Diagramme) herunterzuladen. Du kannst die Files API auch nutzen, um zu vermeiden, dass häufig verwendete Dokumente und Bilder über mehrere API-Aufrufe hinweg immer wieder neu hochgeladen werden müssen. Zusätzlich zu diesem Leitfaden kannst du die API-Referenz direkt erkunden.
Die Files API befindet sich in der Beta-Phase. Teile uns deine Erfahrungen mit der Files API über das Feedback-Formular mit.
Diese Funktion ist nicht für Zero Data Retention (ZDR) qualifiziert. Daten werden gemäß der standardmäßigen Aufbewahrungsrichtlinie der Funktion gespeichert.
Das Referenzieren einer file_id in einer Messages-Anfrage wird von allen Modellen unterstützt, die den jeweiligen Dateityp unterstützen. Bilder werden von allen aktuellen Claude-Modellen unterstützt. Für PDFs und andere Dateitypen mit dem Code-Execution-Tool findest du auf den verlinkten Seiten Informationen zur Modellunterstützung.
Die Files API ist über die Claude API, Claude Platform on AWS und Microsoft Foundry verfügbar. Sie ist derzeit nicht auf Amazon Bedrock oder Vertex AI verfügbar.
Die Files API bietet einen einfachen Ansatz nach dem Prinzip „einmal erstellen, mehrfach verwenden" für die Arbeit mit Dateien:
file_id erhaltenfile_id, anstatt Inhalte erneut hochzuladenUm die Files API zu verwenden, musst du den Beta-Feature-Header einfügen: anthropic-beta: files-api-2025-04-14.
Lade eine Datei hoch, um sie in zukünftigen API-Aufrufen zu referenzieren:
Die Antwort beim Hochladen einer Datei enthält:
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}Nach dem Hochladen referenzierst du die Datei über ihre file_id:
Die Files API unterstützt verschiedene Dateitypen, die unterschiedlichen Content-Block-Typen entsprechen:
| Dateityp | MIME-Typ | Content-Block-Typ | Anwendungsfall |
|---|---|---|---|
application/pdf | document | Textanalyse, Dokumentenverarbeitung | |
| Klartext | text/plain | document | Textanalyse, Verarbeitung |
| Bilder | image/jpeg, image/png, image/gif, image/webp | image | Bildanalyse, visuelle Aufgaben |
| Datensätze, andere |
Für Dateitypen, die nicht als document-Blöcke unterstützt werden (.csv, .txt, .md, .docx, .xlsx), konvertiere die Dateien in Klartext und füge den Inhalt direkt in deine Nachricht ein:
Für .docx-Dateien, die Bilder enthalten, konvertiere sie zuerst in das PDF-Format und nutze dann die PDF-Unterstützung, um von der integrierten Bildverarbeitung zu profitieren. Dies ermöglicht die Verwendung von Zitaten aus dem PDF-Dokument.
Für PDFs und Textdateien verwendest du den document-Content-Block:
{
"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
}Für Bilder verwendest du den image-Content-Block:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Rufe eine Liste deiner hochgeladenen Dateien ab:
Rufe Informationen zu einer bestimmten Datei ab:
Entferne eine Datei aus deinem Workspace:
Lade Dateien herunter, die von Skills oder dem Code-Execution-Tool erstellt wurden:
Du kannst nur Dateien herunterladen, die von Skills oder dem Code-Execution-Tool erstellt wurden. Dateien, die du selbst hochgeladen hast, können nicht heruntergeladen werden.
Messages-API-Aufrufen und zugehörigen Tool-Nutzungen weiterhin bestehenDateien, die über die Files API hochgeladen werden, bleiben erhalten, bis sie explizit über den Endpunkt DELETE /v1/files/{file_id} gelöscht werden. Dateien werden zur Wiederverwendung über mehrere API-Anfragen hinweg gespeichert.
Informationen zur ZDR-Eignung für alle Funktionen findest du unter API und Datenaufbewahrung.
Häufige Fehler bei der Verwendung der Files API sind:
file_id existiert nicht oder du hast keinen Zugriff darauf/v1/messages-Anfrage)<, >, :, ", |, ?, *, \, / oder Unicode-Zeichen 0–31){
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}File-API-Operationen sind kostenlos:
Dateiinhalte, die in Messages-Anfragen verwendet werden, werden als Input-Token abgerechnet. Du kannst nur Dateien herunterladen, die von Skills oder dem Code-Execution-Tool erstellt wurden.
Während der Beta-Phase:
Was this page helpful?
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)response = client.beta.messages.create(
model="claude-opus-4-8",
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,
},
},
],
}
],
betas=["files-api-2025-04-14"],
)
print(response)| Variiert |
container_upload |
| Daten analysieren, Visualisierungen erstellen |
import pandas as pd
# Beispiel: Einlesen einer CSV-Datei
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Sende als Klartext in der Nachricht
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the CSV data:\n\n{csv_content}\n\nPlease analyze this data.",
}
],
}
],
)
print(response.content[0].text)client = anthropic.Anthropic()
files = client.beta.files.list()file = client.beta.files.retrieve_metadata(file_id)result = client.beta.files.delete(file_id)file_content = client.beta.files.download(file_id)
# In Datei speichern
file_content.write_to_file("downloaded_file.txt")