API de Arquivos
A API de Arquivos permite que você faça upload e gerencie arquivos para usar com a API Claude sem fazer re-upload de 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 re-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á atualmente em beta. Entre em contato através do nosso formulário de feedback para compartilhar sua experiência com a API de Arquivos.
Modelos suportados
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 em Claude 3.5 Haiku mais todos os modelos Claude 3.7+.
A API de Arquivos não é atualmente suportada no Amazon Bedrock ou Google Vertex AI.
Como a API de Arquivos funciona
A API de Arquivos fornece uma abordagem simples de criar uma vez, usar muitas vezes para trabalhar com arquivos:
- Faça upload de arquivos para nosso armazenamento seguro e receba um
file_idúnico - Baixe arquivos que são criados a partir de skills ou da ferramenta de execução de código
- Referencie arquivos em solicitações de Mensagens usando o
file_idem vez de fazer re-upload de conteúdo - Gerencie seus arquivos com operações de listagem, recuperação e exclusão
Como usar a API de Arquivos
Para usar a API de Arquivos, você precisará incluir o cabeçalho de recurso beta: anthropic-beta: files-api-2025-04-14.
Fazendo upload de um arquivo
Faça upload de um arquivo para ser referenciado em futuras chamadas de API:
curl -X POST https://api.anthropic.com/v1/files \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-F "file=@/path/to/document.pdf"import anthropic
client = anthropic.Anthropic()
client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)import Anthropic, { toFile } from '@anthropic-ai/sdk';
import fs from "fs";
const anthropic = new Anthropic();
await anthropic.beta.files.upload({
file: await toFile(fs.createReadStream('/path/to/document.pdf'), undefined, { type: 'application/pdf' })
}, {
betas: ['files-api-2025-04-14']
});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
}Usando um arquivo em mensagens
Uma vez enviado, referencie o arquivo usando seu file_id:
curl -X POST https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-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_011CNha8iCJcU1wXNR6q4V8w"
}
}
]
}
]
}'Tipos de arquivo e blocos de conteúdo
A API de Arquivos 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 imagem, tarefas visuais |
| Conjuntos de dados, outros | Varia | container_upload | Analisar dados, criar visualizações |
Trabalhando com outros formatos de arquivo
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:
# Exemplo: Lendo um arquivo de texto e enviando-o como texto simples
# Nota: Para arquivos com caracteres especiais, considere codificação base64
TEXT_CONTENT=$(cat document.txt | jq -Rs .)
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d @- <<EOF
{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Here's the document content:\n\n${TEXT_CONTENT}\n\nPlease summarize this document."
}
]
}
]
}
EOFPara 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.
Blocos de documento
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", // Opcional
"context": "Context about the document", // Opcional
"citations": {"enabled": true} // Opcional, habilita citações
}Blocos de imagem
Para imagens, use o bloco de conteúdo image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Gerenciando arquivos
Listar arquivos
Recupere uma lista de seus arquivos enviados:
curl https://api.anthropic.com/v1/files \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14"Obter metadados do arquivo
Recupere informações sobre um arquivo específico:
curl https://api.anthropic.com/v1/files/file_011CNha8iCJcU1wXNR6q4V8w \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14"Excluir um arquivo
Remova um arquivo de seu workspace:
curl -X DELETE https://api.anthropic.com/v1/files/file_011CNha8iCJcU1wXNR6q4V8w \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14"Baixando um arquivo
Baixe arquivos que foram criados por skills ou pela ferramenta de execução de código:
curl -X GET "https://api.anthropic.com/v1/files/file_011CNha8iCJcU1wXNR6q4V8w/content" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
--output downloaded_file.txtVocê 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.
Armazenamento de arquivo e limites
Limites de armazenamento
- Tamanho máximo de arquivo: 500 MB por arquivo
- Armazenamento total: 100 GB por organização
Ciclo de vida do arquivo
- Os arquivos estão no escopo do workspace da chave de API. Outras chaves de API podem usar arquivos criados por qualquer outra chave de API associada ao mesmo workspace
- Os arquivos persistem até que você os exclua
- Arquivos excluídos não podem ser recuperados
- Os arquivos ficam inacessíveis via API logo após a exclusão, mas podem persistir em chamadas ativas da API de Mensagens e usos de ferramentas associados
- Os arquivos que os usuários excluem serão excluídos de acordo com nossa política de retenção de dados.
Tratamento de erros
Erros comuns ao usar a API de Arquivos incluem:
- Arquivo não encontrado (404): O
file_idespecificado não existe ou você não tem acesso a ele - Tipo de arquivo inválido (400): O tipo de arquivo não corresponde ao tipo de bloco de conteúdo (por exemplo, usar um arquivo de imagem em um bloco de documento)
- Excede o tamanho da janela de contexto (400): O arquivo é maior que o tamanho da janela de contexto (por exemplo, usar um arquivo de texto simples de 500 MB em uma solicitação
/v1/messages) - Nome de arquivo inválido (400): O nome do arquivo não atende aos requisitos de comprimento (1-255 caracteres) ou contém caracteres proibidos (
<,>,:,",|,?,*,\,/, ou caracteres unicode 0-31) - Arquivo muito grande (413): O arquivo excede o limite de 500 MB
- Limite de armazenamento excedido (403): Sua organização atingiu o limite de armazenamento de 100 GB
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}Uso e faturamento
As operações da API de Arquivo são gratuitas:
- Fazer upload de arquivos
- Baixar arquivos
- Listar arquivos
- Obter metadados do arquivo
- Excluir arquivos
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.
Limites de taxa
Durante o período beta:
- As chamadas de API relacionadas a arquivos são limitadas a aproximadamente 100 solicitações por minuto
- Entre em contato conosco se você precisar de limites mais altos para seu caso de uso