Reduzir 90% do custo de API Claude com batch e caching
Aprenda a usar batch API e prompt caching do Claude pra cortar despesa com tokens. Guia prático com exemplos reais pra solopreneur.
Por Vitor Morais
Fundador do MochaLabz ·
Reduzir custo de API Claude com batch API e prompt caching é a otimização mais impactante que solopreneur brasileiro pode fazer hoje. Batch API oferece 50% desconto em todos os tokens, e prompt caching reduz o preço de leitura a 10% do valor normal — combinadas, essas estratégias cortam a conta de R$ 500/mês pra R$ 50, sem perder qualidade. Este artigo mostra exatamente como estruturar seu pipeline de IA (geração de relatórios, processamento de documentos, análise de dados) pra colher os dois descontos simultaneamente.
Por que custo de API Claude explodiu — e como controlar
Freelancer que começou a usar Claude pra gerar landing pages, analisar documentos de clientes ou criar conteúdo em lote descobriu rapidamente que uma semana de uso pode custar R$ 150–300. O motivo é simples: cada chamada à API tem preço por token de entrada e saída, e contextos grandes (instruções do sistema + histórico + documentos) viram gordura desnecessária a cada requisição.
Exemplo concreto: você processa 100 documentos de cliente, cada um com 3KB, mais um prompt de sistema de 2KB. A conta fica assim:
- 100 documentos × 3KB = 300KB entrada
- Prompt sistema 2KB × 100 chamadas = 200KB entrada extra
- Total: ~500KB por rodada
- Preço Opus 4.6: $0,003 por 1K tokens entrada (normal) vs $0,00030 se cacheavado (90% menos)
- Sem cache: R$ 8,75 (R$ 0,003 × 500K tokens × 5,83 taxa)
- Com cache: R$ 0,87
Isso é só entrada. Saída sai similar. A maioria dos devs não sabe que 90% dessa despesa é evitável — basta estruturar o código de forma diferente.
Batch API: 50% desconto em troca de latência
Batch API do Claude é um serviço separado onde você envia múltiplas requisições de uma vez, e a Anthropic as processa assim que houver capacidade — tipicamente 5–30 minutos depois. Em troca, você paga 50% menos em todos os tokens.
Cenário ideal pra batch API: tarefas que não precisam de resposta imediata. Exemplos reais:
- Gerar relatório de análise de 50 clientes overnight
- Processar fila de 200 e-mails de suporte de cliente pra categorizá-los
- Analisar lote de imagens de produto pra extração de metadados
- Revisar 100 landing pages de concorrentes pra insights de copywriting
- Transcrever e resumir 20 gravações de reunião pra newsletter semanal
exemplo-batch-api.ts
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
const requests = [
{
custom_id: "analise-1",
params: {
model: "claude-opus-4-1",
max_tokens: 500,
messages: [
{
role: "user",
content: "Analise este documento de cliente e extraia 3 insights principais: [documento aqui]",
},
],
},
},
{
custom_id: "analise-2",
params: {
model: "claude-opus-4-1",
max_tokens: 500,
messages: [
{
role: "user",
content: "Analise este documento de cliente e extraia 3 insights principais: [outro documento aqui]",
},
],
},
},
];
async function submitBatch() {
const batch = await client.beta.messages.batches.create(
{
requests: requests,
},
{ headers: { "anthropic-beta": "batch-2024-07-01" } }
);
console.log(`Batch criado com ID: ${batch.id}`);
console.log(`Status: ${batch.processing_status}`);
// Verificar status depois
const status = await client.beta.messages.batches.retrieve(batch.id, {
headers: { "anthropic-beta": "batch-2024-07-01" },
});
console.log(`Requisições processadas: ${status.request_counts.processed}`);
}
submitBatch();Preço: $0,0015 por 1K tokens (entrada + saída) vs $0,003 normal. Para um lote de 500K tokens, economiza R$ 43,75 em uma única rodada.
Prompt caching: reutilizar contexto grande a 10% do preço
Prompt caching é o segredo silencioso mais poderoso da Anthropic. Funciona assim: você marca uma seção do seu prompt (típicamente instruções + contexto estático) como "cache este trecho". Na primeira chamada, paga normal. Na segunda e subsequentes (dentro de 5 minutos), paga apenas 10% do preço pelos tokens em cache, mais preço normal pra tokens novos.
O caso de uso perfeito é quando você tem um prompt de sistema pesado (instruções detalhadas + exemplos + documentação) que se repete em múltiplas requisições.
exemplo-prompt-caching.ts
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
const heavySystemPrompt = `Você é um analista de dados especializado em SaaS.
Análise de métricas:
- MRR: Monthly Recurring Revenue
- CAC: Customer Acquisition Cost
- LTV: Lifetime Value
- Churn Rate: percentual de cancelamentos
Exemplos de análise:
1. Se MRR cresce 20% mas CAC sobe 30%, avaliar sustentabilidade
2. LTV:CAC < 3 indica produto caro de adquirir
3. Churn > 5% ao mês = problema estrutural
Sempre cite dados e números nas recomendações.`;
async function analyzeWithCache(documentContent: string) {
const response = await client.messages.create({
model: "claude-opus-4-1",
max_tokens: 1000,
system: [
{
type: "text",
text: heavySystemPrompt,
cache_control: { type: "ephemeral" }, // Marca pra cache
},
],
messages: [
{
role: "user",
content: `Analise estes dados de SaaS e dê 5 recomendações: ${documentContent}`,
},
],
});
// Verificar uso de cache
console.log(`Cache creation tokens: ${response.usage.cache_creation_input_tokens}`);
console.log(`Cache read tokens: ${response.usage.cache_read_input_tokens}`);
console.log(`Regular input tokens: ${response.usage.input_tokens}`);
return response.content[0].type === "text" ? response.content[0].text : "";
}
// Primeira chamada: paga normal pra todos os tokens do system prompt
await analyzeWithCache("MRR R$10k, CAC R$500, Churn 3%");
// Segunda chamada (dentro de 5 min): paga 10% só pra system prompt
await analyzeWithCache("MRR R$15k, CAC R$600, Churn 4%");Preço do cache: $0,00030 por 1K tokens (vs $0,003 normal para Opus 4.6 entrada). Economia de 90% na leitura, com overhead único de escrita (~25% do preço normal na primeira chamada).
Combinar batch API + prompt caching: pipeline de custo mínimo
A mágica acontece quando você usa caching dentro de batch. Isso não é documentado com destaque, mas funciona: você agrupa múltiplas requisições em um batch, e cada uma aproveita o cache compartilhado.
pipeline-otimizado-batch-cache.ts
async function batchProcessWithCache(documentsArray: string[]) {
const systemPrompt = `Você analisa documentos de cliente e extrai:
1. Oportunidade de venda identificada
2. Tamanho de deal estimado
3. Timeline de decisão
Seja conciso e cite evidências.`;
// Monta requisições pra batch
const requests = documentsArray.map((doc, idx) => ({
custom_id: `doc-${idx}`,
params: {
model: "claude-opus-4-1",
max_tokens: 300,
system: [
{
type: "text",
text: systemPrompt,
cache_control: { type: "ephemeral" },
},
],
messages: [
{
role: "user",
content: `Analise: ${doc}`,
},
],
},
}));
// Submete batch
const batch = await client.beta.messages.batches.create(
{ requests },
{ headers: { "anthropic-beta": "batch-2024-07-01" } }
);
console.log(`Batch ${batch.id} submetido.`);
console.log(
`Estimativa de economia: 50% (batch) × 90% (cache no system) = 55% de desconto total.`
);
return batch.id;
}
// Processar 100 documentos de clientes
const docArray = [
"Cliente quer implementar CRM, budget R$50k, decisão em 30 dias",
"Novo contato de agência digital, prototipagem, budget aberto",
// ... mais 98 documentos
];
await batchProcessWithCache(docArray);Economia real: suponha 100 documentos, cada um com 1KB conteúdo + 2KB system prompt reutilizado.
- Sem otimização: (1KB + 2KB) × 100 × $0,003 = R$ 52,50
- Só batch (50% desconto): (1KB + 2KB) × 100 × $0,0015 = R$ 26,25
- Batch + cache (sistema cacheavado): (1KB × $0,003 + 2KB × $0,00030) × 100 = (R$ 0,0175 + R$ 0,00175) × 100 = R$ 1,925
- Resultado: 96,3% de economia vs linha de base
Quando NÃO usar batch API ou caching
Batch API e caching não são prata-bala. Existem cenários onde a latência ou a estrutura não compensam:
- Resposta em tempo real: chatbot, agente interativo ou API com SLA < 10 segundos. Batch demora 5–30 min.
- Prompt muito dinâmico: se cada requisição tem system prompt diferente, caching não vale. O overhead de escrita sai caro.
- Tokens reutilizados < 500: o desconto de 90% só importa se você cachear muitas centenas de tokens. Abaixo disso, o overhead de implementação vira desperdício.
- Documentos únicos e pontuais: análise one-off de um documento. Não há janela de 5 min pra segunda requisição aproveitar cache.
Comparação de estratégias de custo: qual usar quando
| Estratégia | Latência | Economia | Melhor para | Implementação |
|---|---|---|---|---|
| Sem otimização | Instant (~1s) | 0% | Protótipo / MVP | Trivial |
| Só prompt caching | Instant (~1s) | 70–90% (se prompt reutilizado) | Análise repetida mesmo dia | Fácil (3 linhas código) |
| Só batch API | 5–30 min | 50% | Relatório noturno, fila de processamento | Médio (polir error handling) |
| Batch + cache | 5–30 min | 85–96% | Pipeline pesado com contexto reutilizado | Médio (combinar dois padrões) |
Atenção: limite de requisições por minuto
Batch API respeita RPM (requisições por minuto) da sua tier. Se você tem 50 RPM, um batch de 100 requisições ainda respeita limites — mas é mais seguro. Já prompt caching incrementa seu consumo de tokens no mesmo segundo, então se tem limite de 100K tokens/min, caching dentro de uma requisição pesada pode estourar.
Dica: monitore cache hit rate
A Anthropic retorna cache_read_input_tokens e cache_creation_input_tokens em cada resposta. Acompanhe a razão: se < 30%, o cache não está sendo reutilizado (prompts muito diferentes) e você paga overhead sem ganho.
Exemplo real: SaaS de análise de propostas vendidas
Freelancer que vende para agências de marketing começou a oferecer "análise de proposta IA" — cliente manda 10 propostas de concorrentes, Claude retorna análise estruturada (pontos fortes, fracos, preço, posicionamento). Problema: processava 5 clientes/dia, cada um com ~10 propostas, cada proposta ~5KB. Custo: ~R$ 40/dia.
Implementou assim:
- Criou prompt de sistema único, pesado (~2KB), com guidelines de análise. Marcou com cache_control.
- Montou job noturno: coleta todas as requisições do dia em um array.
- Submete tudo em um batch com o prompt cacheado.
- Resultado chega em ~15 min, processa via webhook assíncrono.
Números: 50 propostas/dia, ~5KB cada, 2KB system prompt cacheavado. Custo antes: R$ 40. Custo depois (batch + cache): R$ 3. Economia mensal: R$ 1.110.
Perguntas frequentes
Quanto tempo batch API leva pra processar?+
Típico: 5–30 minutos. A Anthropic processa assim que houver capacidade nos servidores. Se urgente, não use batch.
Prompt caching funciona com todos os modelos Claude?+
Apenas Opus 4.1 e Opus 4.6. Não funciona em Sonnet ou Haiku. Verifique sua tier antes de implementar.
Qual é o tamanho mínimo pra cache compensar?+
Depende, mas ~500 tokens já vale (economiza R$ 1,46/dia se reutilizado 10x/dia). Abaixo de 100 tokens, o overhead de implementação supera o ganho.
Cache expira após 5 minutos. Posso estender?+
Não. Se precisa de contexto cacheado > 5 min, redesenhe: salve a resposta em DB ou combine com retrieval (vetor DB) ao invés de cache.
Posso misturar batch API + caching com streaming?+
Não. Batch é síncrono e retorna resposta completa. Se precisa de streaming (respostas token-por-token), use caching sozinho em requisição regular.
Como monitoro se caching está funcionando?+
Verificar `cache_read_input_tokens` na resposta. Se > 0, cache está sendo lido. Divida por tokens totais: ratio > 40% indica bom aproveitamento.
Calcule economia real de API Claude
Simulador: insira volume de tokens/mês e a ferramenta mostra quanto economiza com batch + caching.
Simular economia →Reduzir custo de API Claude não é misticismo — é estrutura. Batch API fornece desconto fixo (50%), prompt caching oferece leverage desproporcional (90%) quando reutilizado. Combinadas e aplicadas no caso de uso certo, transformam R$ 500/mês em R$ 50 sem sacrificar qualidade. Comece pequeno: identifique uma tarefa recorrente (relatório semanal, análise de lote, processamento de fila), implemente caching ou batch, meça a economia real. Depois expande.
Artigos relacionados
Prompt Engineering (2026): Guia Completo com Técnicas, Templates e Exemplos
Guia definitivo de prompt engineering: role, contexto, exemplos, chain-of-thought, output estruturado, avaliação e templates prontos para ChatGPT, Claude e Gemini.
O Que São Tokens em IA (2026): Guia Completo para LLMs como GPT e Claude
Tokens explicados: o que são, como a tokenização funciona, custo por token nos principais modelos, como contar antes de enviar e estratégias para reduzir consumo.
Como Economizar Tokens no ChatGPT, Claude e Gemini (Guia 2026)
Reduza o custo das APIs de IA em 40–80% sem perder qualidade. 12 técnicas práticas: compressão, prompt caching, modelos em cascata, RAG, batching, sumarização — com estimativas reais.
Janela de Contexto em IA: Guia Completo (2026) com Limites por Modelo
A janela de contexto define quanto texto um LLM consegue processar de uma vez. Conheça os limites de GPT-5, Claude, Gemini e Llama em 2026, lost-in-the-middle, RAG, chunking e prompt caching.