A Files API permite que você faça upload e gerencie arquivos para usar com a API do Claude 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.
Referenciar um file_id em uma requisição Messages é suportado em todos os modelos que suportam o tipo de arquivo em questão. Imagens são suportadas em todos os modelos atuais do Claude. Para PDFs e outros tipos de arquivo com a ferramenta de execução de código, consulte as páginas vinculadas para ver o suporte por modelo.
A Files API oferece uma abordagem de criar uma vez e usar várias vezes para trabalhar com arquivos:
file_id exclusivofile_id em vez de reenviar o conteúdoFaça upload de um arquivo para ser referenciado em chamadas futuras à 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ê envia. Apenas arquivos criados por skills ou pela ferramenta de execução de código podem ser baixados. Consulte Baixando um arquivo.
Após o upload, referencie o arquivo passando o id da resposta de upload 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)A Files API suporta diferentes tipos de arquivo que correspondem a diferentes tipos de bloco 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 à 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-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)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 helpers 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 bash_code_execution_tool_result da resposta Messages que o criou:
file_content = client.beta.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")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 arquivo usado em requisições Messages é cobrado como tokens de entrada.
Durante o período beta:
Processe PDFs com o Claude. Extraia texto, analise gráficos e compreenda conteúdo visual dos seus documentos.
Execute código Python e bash em um container isolado para analisar dados, gerar arquivos e iterar em soluções.
Processe e analise entrada visual e gere texto e código a partir de imagens.
| Supported platforms |
|
|---|
Was this page helpful?