A API de Arquivos permite que você carregue e gerencie arquivos para usar com a API Claude sem fazer upload novamente do conteúdo a cada solicitaçã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 API de Arquivos para evitar ter que fazer upload continuamente de documentos e imagens frequentemente usados em várias chamadas de API. Você pode explorar a referência da API diretamente, além deste guia.
A API de Arquivos está em beta. Entre em contato através do formulário de feedback para compartilhar sua experiência com a API de Arquivos.
This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.
Referenciar um file_id em uma solicitação de Mensagens é suportado em todos os modelos que suportam o tipo de arquivo fornecido. Por exemplo, imagens são suportadas em todos os modelos Claude 3+, PDFs em todos os modelos Claude 3.5+, e vários outros tipos de arquivo para a ferramenta de execução de código no Claude Haiku 4.5 mais todos os modelos Claude 3.7+.
A API de Arquivos não é suportada no Amazon Bedrock ou Google Vertex AI.
A API de Arquivos fornece uma abordagem simples de carregar uma vez, usar muitas vezes para trabalhar com arquivos:
file_id únicofile_id em vez de fazer upload novamente do conteúdoPara usar a API de Arquivos, você precisará incluir o cabeçalho de recurso beta: anthropic-beta: files-api-2025-04-14.
Carregue um arquivo para ser referenciado em futuras chamadas de API:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)A resposta do carregamento 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
}Uma vez carregado, referencie o arquivo usando seu file_id:
response = client.beta.messages.create(
model="claude-opus-4-6",
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 API de Arquivos 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 imagem, 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 em sua mensagem:
import pandas as pd
# Example: Reading a CSV file
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Send as plain text in the message
response = client.messages.create(
model="claude-opus-4-7",
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 para formato PDF primeiro, depois use suporte a PDF para aproveitar a análise de imagem 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 de seus arquivos carregados:
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 de 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)
# Save to file
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ê carregou não podem ser baixados.
Os arquivos carregados via API de Arquivos 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 solicitações de API.
Para elegibilidade de ZDR em todos os recursos, consulte Retenção de API e dados.
Erros comuns ao usar a API de Arquivos 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 API de Arquivo são gratuitas:
O conteúdo do arquivo usado em solicitações de 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?