Renderz Studio
Academia
Proyectos
Servicios
Arsenal
Repo
Herramientas
Skills
El Oráculo
Guía Gratis
← El Arsenal
OperacionesIntermedio30 min

Optimización de Costes API

Caching · Model routing · Batching · cómo bajar tu factura un 70%

CostesOptimizaciónAPI
✓ Guía gratuita · Acceso completo

Mapa rápido · salta al paso que te interese

Anatomía de los costes

Dónde se va tu dinero

7 técnicas de optimización

De 70% de ahorro comprobado

Monitoreo y alertas

Nunca más facturas sorpresa

01

Anatomía de los costes: dónde se va tu dinero

El 80% de tu factura viene del 20% de tus llamadas. Antes de optimizar, entendé dónde se va la dinero.

ModeloInput/1M tokensOutput/1M tokensCaso de uso
Claude Opus 4$15.00$75.00Razonamiento complejo
Claude Sonnet 4$3.00$15.00Tareas generales
Claude Haiku 3.5$0.80$4.00Tareas simples, alto volumen
GPT-4.1$2.50$10.00Alternativa a Sonnet
GPT-4.1-mini$0.15$0.60Tareas simples

Los 3 errores más caros

  1. Usar Opus para todo — el 90% de las tareas no necesita el modelo más caro
  2. Contexto inflado — pasar 10,000 tokens cuando 2,000 bastaban
  3. Sin cache — la misma query 100 veces = 100x el costo
Calcular costo real de una llamada
interface TokenUsage {
  input_tokens: number
  output_tokens: number
  cache_read_tokens?: number
  cache_creation_tokens?: number
}

function calculateCost(usage: TokenUsage, model: string): number {
  const pricing: Record<string, { input: number; output: number; cache_read: number }> = {
    'claude-opus-4-20250514': { input: 15, output: 75, cache_read: 1.5 },
    'claude-sonnet-4-20250514': { input: 3, output: 15, cache_read: 0.3 },
    'claude-haiku-4-20250514': { input: 0.8, output: 4, cache_read: 0.08 },
  }

  const p = pricing[model]
  if (!p) throw new Error(`Unknown model: ${model}`)

  const inputCost = (usage.input_tokens / 1_000_000) * p.input
  const outputCost = (usage.output_tokens / 1_000_000) * p.output
  const cacheCost = ((usage.cache_read_tokens || 0) / 1_000_000) * p.cache_read

  return inputCost + outputCost + cacheCost
}

// Ejemplo: Sonnet con 5000 input, 1000 output
// Input: (5000/1M) * $3 = $0.015
// Output: (1000/1M) * $15 = $0.015
// Total: $0.03 por llamada
02

7 técnicas de optimización

Estas técnicas combinadas pueden bajar tu factura un 70%. Implementalas en orden de impacto.

Claude cachea automáticamente prefijos de prompts. Si tu system prompt + contexto estático es igual entre llamadas, solo pagas 10% del costo.

Activar prompt caching
const response = await anthropic.messages.create({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024,
  system: [
    {
      type: 'text',
      text: LARGE_SYSTEM_PROMPT, // Este se cachea
      cache_control: { type: 'ephemeral' } // ← la clave
    }
  ],
  messages: [{ role: 'user', content: userQuestion }]
})

// Verificar uso de cache
console.log('Cache read:', response.usage.cache_read_input_tokens)
// Si > 0, estás pagando 10% del costo normal

Tip Pro

El cache dura 5 minutos. Si tus usuarios hacen queries espaciadas, el cache expira. Solución: prefetch periódico para mantener el cache caliente.
03

Monitoreo y alertas: nunca más facturas sorpresa

Trackeá cada llamada y configura alertas antes de que la factura explote.

Middleware de tracking
interface APICallLog {
  timestamp: Date
  model: string
  input_tokens: number
  output_tokens: number
  cost_usd: number
  endpoint: string
  user_id?: string
}

async function trackAPICall(log: APICallLog) {
  // Guardar en Supabase
  await supabase.from('api_calls').insert(log)

  // Check daily budget
  const today = new Date().toISOString().split('T')[0]
  const { data } = await supabase
    .from('api_calls')
    .select('cost_usd')
    .gte('timestamp', today)

  const dailySpend = data?.reduce((sum, row) => sum + row.cost_usd, 0) || 0

  // Alert si superamos budget
  const DAILY_BUDGET = 50 // USD
  if (dailySpend > DAILY_BUDGET * 0.8) {
    await sendSlackAlert(`⚠️ API spend at ${dailySpend.toFixed(2)} USD (80% of daily budget)`)
  }
  if (dailySpend > DAILY_BUDGET) {
    await sendSlackAlert(`🔴 API spend exceeded daily budget: ${dailySpend.toFixed(2)} USD`)
  }
}
MétricaQué monitorearAlerta si
Spend diarioSuma de costos> 80% del budget
Tokens por requestPromedio móvil> 2x del baseline
Cache hit ratehits / total< 50%
Error rateerrores / total> 5%

"La factura de API es un síntoma, no el problema. El problema es arquitectura descuidada. Caching, routing, y compresión no son optimizaciones — son higiene básica."

— El Arsenal, Renderz Studio

Guías relacionadas

Orquestación Multi-Modelo

Routing inteligente entre modelos

RAG desde Cero

Optimizá tus embeddings

¿Quieres el sistema completo?

500+ páginas, 25 capítulos, código de producción, acceso a todas las guías del Arsenal.

Curso Completo · €29

PayPal · Acceso inmediato

¿Hablamos?