La Files API te permite subir y gestionar archivos para usarlos con la API de Claude sin tener que volver a subir 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 resultados (por ejemplo, gráficos). Puedes explorar la referencia de la API directamente, además de esta guía.
Referenciar un file_id en una solicitud de Messages es compatible con todos los modelos que admiten el tipo de archivo en cuestión. Las imágenes son compatibles con todos los modelos actuales de Claude. Para PDFs y otros tipos de archivo con la herramienta de ejecución de código, consulta las páginas enlazadas para ver la compatibilidad de modelos.
La Files API proporciona un enfoque de crear una vez y usar muchas veces para trabajar con archivos:
file_id únicofile_id en lugar de volver a subir el contenidoSube un archivo para referenciarlo en futuras llamadas a la API:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)
file_id = uploaded.id
print(file_id)La respuesta al subir un archivo incluye:
{
"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 es false para los archivos que subes. Solo los archivos creados por skills o la herramienta de ejecución de código se pueden descargar. Consulta Descargar un archivo.
Una vez subido, referencia el archivo pasando el id de la respuesta de subida como file_id:
response = client.beta.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,
},
},
],
}
],
betas=["files-api-2025-04-14"],
)
print(response)La Files API admite diferentes tipos de archivo 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 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"
}
}Para enviar un archivo a la herramienta de ejecución de código, usa el bloque de contenido container_upload:
{
"type": "container_upload",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
}Para tipos de archivo que el bloque document no admite (por ejemplo, .docx y .xlsx), convierte los archivos a texto plano e incluye el contenido directamente en tu mensaje. Los archivos que ya son texto plano, como los archivos .csv y .md, pueden leerse de esta manera o subirse a través de la Files API con un tipo de contenido text/plain explícito. Para analizar conjuntos de datos en lugar de leerlos como texto, súbelos para la herramienta de ejecución de código usando un bloque container_upload.
Los siguientes ejemplos leen un archivo de texto y envían su contenido como texto plano:
client = anthropic.Anthropic()
# Lee el archivo de texto
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)Recupera una lista de tus archivos subidos. El endpoint está paginado: cada solicitud devuelve hasta limit archivos (20 por defecto), y los parámetros before_id y after_id obtienen la página adyacente. Consulta la referencia de la API List Files. Los SDKs devuelven la primera página y proporcionan helpers de paginación automática. El ejemplo de CLI limita el total con --max-items:
client = anthropic.Anthropic()
files = client.beta.files.list()
print(files)Recupera información sobre un archivo específico:
file = client.beta.files.retrieve_metadata(file_id)
print(file)Elimina un archivo de tu workspace:
client.beta.files.delete(file_id)Descarga archivos que fueron creados por skills o la herramienta de ejecución de código. Los archivos que subes no se pueden descargar. El file_id de un archivo generado aparece en el bloque de contenido bash_code_execution_tool_result de la respuesta de Messages que lo creó:
file_content = client.beta.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")DELETE /v1/files/{file_id}Los errores comunes al usar la Files API incluyen:
file_id especificado no existe o no tienes acceso a él"downloadable": false y no se pueden descargar. Solo los archivos creados por skills o la herramienta de ejecución de código se pueden descargar/v1/messages)<, >, :, ", |, ?, *, \, /, o caracteres Unicode 0-31){
"type": "error",
"error": {
"type": "not_found_error",
"message": "File `file_011CNha8iCJcU1wXNR6q4V8w` not found."
},
"request_id": "req_011CQFYcrRp7mCHLDsAYT8Qt"
}Las operaciones de la Files API son gratuitas:
El contenido de archivos usado en solicitudes de Messages se cobra como tokens de entrada.
Durante el período beta:
Procesa PDFs con Claude. Extrae texto, analiza gráficos y comprende contenido visual de tus documentos.
Ejecuta código Python y bash en un contenedor aislado para analizar datos, generar archivos e iterar sobre soluciones.
Procesa y analiza entradas visuales y genera texto y código a partir de imágenes.
| Supported platforms |
|
|---|
Was this page helpful?