La Files API te permite cargar y gestionar archivos para usarlos con la API de Claude sin tener que volver a cargar el contenido en cada solicitud. Esto es particularmente útil cuando usas la herramienta de ejecución de código para proporcionar entradas (por ejemplo, conjuntos de datos y documentos) y luego descargar salidas (por ejemplo, gráficos). También puedes usar la Files API para evitar tener que volver a cargar continuamente documentos e imágenes de uso frecuente en múltiples llamadas a la API. Puedes explorar la referencia de la API directamente, además de esta guía.
La Files API está en beta. Comunícate a través del formulario de comentarios para compartir tu experiencia con la Files API.
Esta función no es elegible para Zero Data Retention (ZDR). Los datos se conservan de acuerdo con la política de retención estándar de la función.
Hacer referencia a un file_id en una solicitud de Messages es compatible con todos los modelos que admiten el tipo de archivo dado. Las imágenes son compatibles con todos los modelos actuales de Claude. Para PDFs y otros tipos de archivos con la herramienta de ejecución de código, consulta las páginas enlazadas para ver la compatibilidad de modelos.
La Files API está disponible en la API de Claude, Claude Platform en AWS y Microsoft Foundry. En Microsoft Foundry, la Files API requiere una implementación Hosted on Anthropic. Actualmente no está disponible en Amazon Bedrock ni en Google Cloud.
La Files API proporciona un enfoque simple de crear una vez y usar muchas veces para trabajar con archivos:
file_id únicofile_id en lugar de volver a cargar el contenidoPara usar la Files API, deberás incluir el encabezado de función beta: anthropic-beta: files-api-2025-04-14.
Carga un archivo para hacer referencia a él en futuras llamadas a la API:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)La respuesta al cargar un archivo incluirá:
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}Una vez cargado, haz referencia al archivo usando su file_id:
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)La Files API admite diferentes tipos de archivos que corresponden a diferentes tipos de bloques de contenido:
| Tipo de archivo | Tipo MIME | Tipo de bloque de contenido | Caso de uso |
|---|---|---|---|
application/pdf | document | Análisis de texto, procesamiento de documentos | |
| Texto plano | text/plain | document | Análisis de texto, procesamiento |
| Imágenes | image/jpeg, image/png, image/gif, image/webp | image | Análisis de imágenes, tareas visuales |
| Conjuntos de datos, otros | Varía | container_upload | Analizar datos, crear visualizaciones |
Para tipos de archivos que no son compatibles como bloques document (.csv, .txt, .md, .docx, .xlsx), convierte los archivos a texto plano e incluye el contenido directamente en tu mensaje:
import pandas as pd
# Ejemplo: Lectura de un archivo CSV
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Enviar como texto sin formato en el mensaje
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)Para archivos .docx que contienen imágenes, conviértelos primero a formato PDF y luego usa el soporte de PDF para aprovechar el análisis de imágenes integrado. Esto permite usar citas del documento PDF.
Para PDFs y archivos de texto, usa el bloque de contenido 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
}Para imágenes, usa el bloque de contenido image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Recupera una lista de tus archivos cargados:
client = anthropic.Anthropic()
files = client.beta.files.list()Recupera información sobre un archivo específico:
file = client.beta.files.retrieve_metadata(file_id)Elimina un archivo de tu espacio de trabajo:
result = client.beta.files.delete(file_id)Descarga archivos que han sido creados por skills o por la herramienta de ejecución de código:
file_content = client.beta.files.download(file_id)
# Guardar en archivo
file_content.write_to_file("downloaded_file.txt")Solo puedes descargar archivos que fueron creados por skills o por la herramienta de ejecución de código. Los archivos que cargaste no se pueden descargar.
Messages y usos de herramientas asociadosLos archivos cargados a través de la Files API se retienen hasta que se eliminen explícitamente usando el endpoint DELETE /v1/files/{file_id}. Los archivos se almacenan para su reutilización en múltiples solicitudes de API.
Para la elegibilidad de ZDR en todas las funciones, consulta API y retención de datos.
Los errores comunes al usar la Files API incluyen:
file_id especificado no existe o no tienes acceso a él/v1/messages)<, >, :, ", |, ?, *, \, /, o caracteres unicode 0-31){
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}Las operaciones de la Files API son gratuitas:
El contenido de archivos usado en solicitudes de Messages se cobra como tokens de entrada. Solo puedes descargar archivos creados por skills o por la herramienta de ejecución de código.
Durante el período beta:
Was this page helpful?