A Files API permite que você faça upload e gerencie arquivos para usar com a Claude API sem reenviar o conteúdo a cada requisição. Isso é particularmente útil ao usar a ferramenta de execução de código para fornecer entradas (por exemplo, conjuntos de dados e documentos) e depois baixar saídas (por exemplo, gráficos). Você pode explorar a referência da API diretamente, além deste guia.
A Files API está em beta. Entre em contato através do formulário de feedback para compartilhar sua experiência com a Files API.
Este recurso não é elegível para Zero Data Retention (ZDR). Os dados são retidos de acordo com a política de retenção padrão do recurso.
Referenciar um file_id em uma requisição de Messages é suportado em todos os modelos que suportam o tipo de arquivo em questão. Imagens são suportadas em todos os modelos Claude atuais. Para PDFs e outros tipos de arquivo com a ferramenta de execução de código, consulte as páginas vinculadas para suporte de modelos.
A Files API está disponível na Claude API, no Claude Platform on AWS e no Microsoft Foundry. No Microsoft Foundry, a Files API requer uma implantação Hosted on Anthropic. Ela não está disponível atualmente no Amazon Bedrock ou no Google Cloud.
A Files API fornece uma abordagem de criar uma vez e usar várias vezes para trabalhar com arquivos:
file_id únicofile_id em vez de reenviar o conteúdoPara usar a Files API, você precisará incluir o cabeçalho de recurso beta: anthropic-beta: files-api-2025-04-14. Os SDKs adicionam esse cabeçalho automaticamente quando você chama métodos no namespace beta.files, então os exemplos de SDK nesta página não o passam explicitamente para operações de arquivo. Requisições de Messages que referenciam um arquivo precisam dele, o que os exemplos de SDK passam através do parâmetro betas.
Faça upload de um arquivo para ser referenciado em chamadas futuras da API:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)
file_id = uploaded.id
print(file_id)A resposta do upload de um arquivo inclui:
{
"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 é false para arquivos que você faz upload. Apenas arquivos criados por skills ou pela ferramenta de execução de código podem ser baixados. Consulte Baixando um arquivo.
Uma vez feito o upload, referencie o arquivo passando o id da resposta do upload como 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)A Files API suporta diferentes tipos de arquivo que correspondem a diferentes tipos de blocos de conteúdo:
| Tipo de arquivo | Tipo MIME | Tipo de bloco de conteúdo | Caso de uso |
|---|---|---|---|
application/pdf | document | Análise de texto, processamento de documentos | |
| Texto simples | text/plain | document | Análise de texto, processamento |
| Imagens | image/jpeg, image/png, image/gif, image/webp | image | Análise de imagens, tarefas visuais |
| Conjuntos de dados, outros | Varia | container_upload | Analisar dados, criar visualizações |
Para PDFs e arquivos de texto, use o bloco de conteúdo 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 imagens, use o bloco de conteúdo image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Para enviar um arquivo para a ferramenta de execução de código, use o bloco de conteúdo container_upload:
{
"type": "container_upload",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
}Para tipos de arquivo que o bloco document não suporta (por exemplo, .docx e .xlsx), converta os arquivos para texto simples e inclua o conteúdo diretamente na sua mensagem. Arquivos que já são texto simples, como arquivos .csv e .md, podem ser lidos dessa forma ou enviados através da Files API com um tipo de conteúdo text/plain explícito. Para analisar conjuntos de dados em vez de lê-los como texto, faça upload deles para a ferramenta de execução de código usando um bloco container_upload.
Os exemplos a seguir leem um arquivo de texto e enviam seu conteúdo como texto simples:
client = anthropic.Anthropic()
# Ler o arquivo de texto
with open("document.txt") as f:
text_content = f.read()
response = client.messages.create(
model="claude-opus-4-8",
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.",
}
],
}
],
)
print(response.content[0].text)Para arquivos .docx contendo imagens, converta-os primeiro para o formato PDF e depois use o suporte a PDF para aproveitar a análise de imagens integrada. Isso permite usar citações do documento PDF.
Recupere uma lista dos seus arquivos enviados. O endpoint é paginado: cada requisição retorna até limit arquivos (20 por padrão), e os parâmetros before_id e after_id buscam a página adjacente. Consulte a referência da API List Files. Os SDKs retornam a primeira página e fornecem auxiliares de paginação automática. O exemplo de CLI limita o total com --max-items:
client = anthropic.Anthropic()
files = client.beta.files.list()
print(files)Recupere informações sobre um arquivo específico:
file = client.beta.files.retrieve_metadata(file_id)
print(file)Remova um arquivo do seu workspace:
client.beta.files.delete(file_id)Baixe arquivos que foram criados por skills ou pela ferramenta de execução de código. Arquivos que você envia não podem ser baixados. O file_id de um arquivo gerado aparece no bloco de conteúdo code_execution_tool_result da resposta de Messages que o criou:
file_content = client.beta.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")Um arquivo só pode ser baixado quando seus metadados mostram "downloadable": true, o que é o caso de arquivos criados por skills ou pela ferramenta de execução de código. Baixar um arquivo que você enviou retorna um erro 400.
DELETE /v1/files/{file_id}Erros comuns ao usar a Files API incluem:
file_id especificado não existe ou você não tem acesso a ele"downloadable": false e não podem ser baixados. Apenas arquivos criados por skills ou pela ferramenta de execução de código podem ser baixados/v1/messages)<, >, :, ", |, ?, *, \, /, ou caracteres Unicode 0-31){
"type": "error",
"error": {
"type": "not_found_error",
"message": "File `file_011CNha8iCJcU1wXNR6q4V8w` not found."
},
"request_id": "req_011CQFYcrRp7mCHLDsAYT8Qt"
}As operações da Files API são gratuitas:
O conteúdo de arquivos usado em requisições de Messages é cobrado como tokens de entrada.
Durante o período beta:
Processe PDFs com Claude. Extraia texto, analise gráficos e compreenda conteúdo visual dos seus documentos.
Execute código Python e bash em um contêiner isolado (sandbox) para analisar dados, gerar arquivos e iterar em soluções.
Processe e analise entradas visuais e gere texto e código a partir de imagens.
Was this page helpful?