A Files API permite que você faça upload e gerencie arquivos para usar com a API do Claude sem precisar 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ê também pode usar a Files API para evitar ter que reenviar continuamente documentos e imagens usados com frequência em várias chamadas de API. 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 Messages é compatível com todos os modelos que suportam o tipo de arquivo em questão. Imagens são compatíveis com 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 a compatibilidade de modelos.
A Files API está disponível na API do Claude, no Claude Platform on AWS e no Microsoft Foundry. No Microsoft Foundry, a Files API requer uma implantação Hosted on Anthropic. Atualmente, ela não está disponível no Amazon Bedrock ou no Google Cloud.
A Files API oferece uma abordagem simples de criar uma vez e usar várias vezes para trabalhar com arquivos:
file_id exclusivofile_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.
Faça upload de um arquivo para ser referenciado em chamadas de API futuras:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)A resposta do upload de um arquivo 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
}Após o upload, referencie o arquivo usando seu 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 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 tipos de arquivo que não são suportados como blocos document (.csv, .txt, .md, .docx, .xlsx), converta os arquivos para texto simples e inclua o conteúdo diretamente na sua mensagem:
import pandas as pd
# Exemplo: Lendo um arquivo CSV
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Envie como texto simples na mensagem
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 arquivos .docx contendo imagens, converta-os primeiro para o formato PDF e, em seguida, use o suporte a PDF para aproveitar a análise de imagens integrada. Isso permite usar citações do documento PDF.
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"
}
}Recupere uma lista dos seus arquivos enviados:
client = anthropic.Anthropic()
files = client.beta.files.list()Recupere informações sobre um arquivo específico:
file = client.beta.files.retrieve_metadata(file_id)Remova um arquivo do seu workspace:
result = client.beta.files.delete(file_id)Baixe arquivos que foram criados por skills ou pela ferramenta de execução de código:
file_content = client.beta.files.download(file_id)
# Salvar em arquivo
file_content.write_to_file("downloaded_file.txt")Você só pode baixar arquivos que foram criados por skills ou pela ferramenta de execução de código. Arquivos que você enviou não podem ser baixados.
Messages e usos de ferramentas associadosArquivos enviados via Files API são retidos até serem explicitamente excluídos usando o endpoint DELETE /v1/files/{file_id}. Os arquivos são armazenados para reutilização em várias requisições de API.
Para elegibilidade ZDR em todos os recursos, consulte API e retenção de dados.
Erros comuns ao usar a Files API incluem:
file_id especificado não existe ou você não tem acesso a ele/v1/messages)<, >, :, ", |, ?, *, \, /, ou caracteres unicode 0-31){
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}As operações da File API são gratuitas:
O conteúdo de arquivos usado em requisições Messages é cobrado como tokens de entrada. Você só pode baixar arquivos criados por skills ou pela ferramenta de execução de código.
Durante o período beta:
Was this page helpful?