Actualizado mayo 2026

Integrar APIs de IA (OpenAI, Claude) en tu web: guía práctica

Lleva el poder de GPT-4o, Claude, Gemini a tu aplicación web. Desde arquitectura segura hasta ejemplos de código, gestión de costes y alternativas self-hosted en tu propio VPS.

⏱️ Lectura: 12 min 📊 5 APIs analizadas 💰 Desde $0.50/1M tokens

¿Por qué integrar APIs de IA en tu web?

Las APIs de IA permiten agregar capacidades inteligentes sin entrenar modelos propios:

  • Chatbots conversacionales: atender clientes 24/7
  • Generación de contenido: artículos, descripciones, copys automáticos
  • Análisis y resúmenes: procesar texto a escala
  • Búsqueda semántica: entender intención, no solo palabras clave
  • Traducción y localización: soportar múltiples idiomas

El secreto: no necesitas infraestructura de IA. Las APIs hacen el trabajo pesado. Tú solo integras.

Comparativa: 5 APIs principales

Proveedor Modelos clave Entrada $/1M Salida $/1M Contexto
OpenAI GPT-4o, GPT-4o-mini $2.50 $10.00 128K
Anthropic Claude 3.5 Sonnet/Haiku $0.80 $2.40 200K
Google Gemini 1.5, Gemini Flash $0.075 $0.30 1M
Meta Llama 3.1 (70B, 405B) $0.30 $1.50 131K
Together AI Todos los anteriores (API unificada) Variable Variable Según modelo

*Precios en USD, actualizados mayo 2026. 1M tokens ≈ 750K palabras.

Las 3 mejores opciones por caso de uso

1

OpenAI GPT-4o: máxima calidad + multimodal

El modelo más versátil. Entiende texto e imágenes. Excelente en razonamiento, escritura creativa, análisis profundo.

Ideal si: Necesitas lo mejor del mercado, presupuesto flexible. Casos: chatbots premium, generación de contenido, análisis documento.

2

Claude 3.5 Haiku: mejor relación precio-rendimiento

$0.80/1M tokens entrada. Modelo ágil para tareas directas. Contexto 200K (5 veces más que GPT-4o base).

Ideal si: Presupuesto limitado, volumen alto de requests. Casos: chatbots básicos, resúmenes, análisis rápido.

3

Google Gemini Flash: más barato, contexto enorme

$0.075/1M entrada. La API más económica. Contexto de 1M tokens (procesa libros enteros).

Ideal si: Necesitas procesar mucho texto barato. Casos: análisis de documentos grandes, búsqueda semántica.

Arquitectura: client-side vs server-side vs edge

❌ Client-Side (NUNCA hagas esto)

Llamar directamente desde el navegador a OpenAI/Anthropic:

{/* INSEGURO: tu API key queda en el HTML */}
const response = await fetch('https://api.openai.com/v1/chat/completions', {
  headers: {
    'Authorization': 'Bearer sk-...' // ¡EXPUESTA!
  }
});

⚠️ Riesgo: Cualquiera lee el source code y obtiene tu API key. Costes desbocados si alguien la roba.

✅ Server-Side (RECOMENDADO)

El navegador envía datos a tu servidor. Tu servidor llama a la API de IA con la clave segura.

// Cliente (navegador): sin API key
const response = await fetch('/api/chat', {
  method: 'POST',
  body: JSON.stringify({ message: 'Hola' })
});

// Servidor (Node.js): con API key segura en .env
import { Anthropic } from '@anthropic-ai/sdk';
const client = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY
});
const message = await client.messages.create({
  model: 'claude-3-5-haiku-20241022',
  max_tokens: 1024,
  messages: [{ role: 'user', content: userInput }]
});

✓ API key protegida en servidor. Control de rate limiting y costes.

⚡ Edge Functions (ALTERNATIVA)

Código ejecutado en servidores edge (Cloudflare Workers, Vercel Edge). Más rápido que servidor centralizado.

// Cloudflare Worker
export default {
  async fetch(request, env) {
    const { message } = await request.json();
    const response = await fetch('https://api.anthropic.com/v1/messages', {
      method: 'POST',
      headers: {
        'x-api-key': env.ANTHROPIC_API_KEY,
        'content-type': 'application/json'
      },
      body: JSON.stringify({
        model: 'claude-3-5-haiku-20241022',
        max_tokens: 1024,
        messages: [{ role: 'user', content: message }]
      })
    });
    return response;
  }
};

Opciones de backend para alojar tu intermediaria

Cloudflare Workers (RECOMENDADO)

Serverless a nivel global. Respuesta en <1ms desde Europa. Incluye 10M requests/mes gratis.

Plan: Gratis o $5/mes. Límite: 10-50ms por Worker.

Vercel Edge Functions

Similar a Cloudflare. Integración perfecta con Next.js. $0.15 por 1M requests en plan Pro.

Plan: Gratis (limitado) o Pro ($20/mes).

VPS Node.js (máximo control)

Tu servidor propio. Usa Webempresa, Raiola o Profesional Hosting.

Plan: €12-25/mes. Ventaja: instala cualquier dependencia.

Netlify Functions

Serverless en plataforma Netlify. Menos popular que Vercel/Cloudflare.

Plan: Gratis (limitado) o Pro ($19/mes).

Ejemplo completo: Cloudflare Worker + Claude

1. Deploy Worker en Cloudflare

// wrangler.toml
name = "ia-chat-api"
type = "javascript"
account_id = "tu-account-id"
workers_dev = true

[env.production]
route = "api.example.com/*"

[[env.production.vars]]
ANTHROPIC_API_KEY = "sk-..."

2. Código del Worker (src/index.js)

export default {
  async fetch(request, env, ctx) {
    // CORS
    if (request.method === 'OPTIONS') {
      return new Response(null, {
        headers: {
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Methods': 'POST',
        },
      });
    }

    const { message } = await request.json();

    // Rate limiting: max 10 requests/min por IP
    const ip = request.headers.get('cf-connecting-ip');
    const key = `rate:${ip}`;
    const count = await env.KV.get(key) || 0;
    if (count > 10) {
      return new Response('Rate limit exceeded', { status: 429 });
    }
    await env.KV.put(key, count + 1, { expirationTtl: 60 });

    // Llamada a Claude
    const response = await fetch('https://api.anthropic.com/v1/messages', {
      method: 'POST',
      headers: {
        'x-api-key': env.ANTHROPIC_API_KEY,
        'anthropic-version': '2023-06-01',
        'content-type': 'application/json',
      },
      body: JSON.stringify({
        model: 'claude-3-5-haiku-20241022',
        max_tokens: 1024,
        messages: [{ role: 'user', content: message }],
      }),
    });

    const data = await response.json();
    const reply = data.content[0].text;

    return new Response(JSON.stringify({ reply }), {
      headers: {
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': '*',
      },
    });
  },
};

3. Llamada desde el navegador

// Tu sitio web
document.getElementById('send').addEventListener('click', async () => {
  const message = document.getElementById('input').value;
  const response = await fetch('https://api.example.com/chat', {
    method: 'POST',
    body: JSON.stringify({ message })
  });
  const { reply } = await response.json();
  document.getElementById('output').textContent = reply;
});

Gestión de costes: token counting, caching, streaming

Token Counting: Estima costes ANTES de enviar. 1 token ≈ 4 caracteres. Claude ofrece count_tokens API gratis.

Prompt Caching: Si usas el mismo contexto (FAQ, documentación) en múltiples requests, guárdalo en caché. Claude ofrece 90% descuento en tokens caché. Ejemplo: FAQs sobre tu producto en cada request de soporte.

Streaming: No ahorra costes (pagas igual por tokens). Pero mejora UX: el usuario ve respuestas parciales mientras se generan. Usa SSE (Server-Sent Events).

Rate Limiting: Evita uso accidental. Implementa límites en tu Worker/servidor: máx 10 requests/min por IP, máx 1000 tokens/request.

Ejemplo de coste real: 1,000 usuarios/mes, 5 queries cada uno, promedio 200 tokens por query (entrada+salida). Con Claude Haiku: 1,000 × 5 × 200 × $1.20/1M = ~€0.60/mes.

Streaming: respuestas en tiempo real con SSE

¿Qué es SSE (Server-Sent Events)?

El servidor envía fragmentos de respuesta a medida que están listos. El navegador los muestra incrementalmente, sin esperar la respuesta completa.

Ejemplo con Streaming

// Servidor (Node.js con Express)
app.post('/chat-stream', async (req, res) => {
  res.setHeader('Content-Type', 'text/event-stream');
  res.setHeader('Cache-Control', 'no-cache');

  const stream = await client.messages.stream({
    model: 'claude-3-5-haiku-20241022',
    max_tokens: 1024,
    messages: [{ role: 'user', content: req.body.message }],
  });

  for await (const event of stream) {
    if (event.type === 'content_block_delta') {
      const text = event.delta.text || '';
      res.write(`data: ${JSON.stringify({ text })}\n\n`);
    }
  }
  res.end();
});

// Cliente (navegador)
const sse = new EventSource('/chat-stream');
sse.onmessage = (event) => {
  const { text } = JSON.parse(event.data);
  document.getElementById('output').textContent += text;
};

Alternativas self-hosted: Ollama, LM Studio, vLLM

Ollama: Ejecuta modelos como Llama 2, Mistral localmente. Interfaz web incluida. Perfecto para pruebas y deploy en VPS propio.

LM Studio: Desktop app (Windows/Mac) para experimentar con modelos. No es para producción.

vLLM: Framework de rendimiento optimizado. Requiere GPU. Para setups serios con LLMs custom.

Desplegar Ollama en tu VPS

curl https://ollama.ai/install.sh | sh
ollama serve

# En otra terminal:
ollama pull llama2-7b
ollama run llama2-7b "¿Quién eres?"

# API REST (compatibilidad OpenAI):
curl http://localhost:11434/api/chat -d '{
  "model": "llama2-7b",
  "messages": [{"role":"user","content":"Hola"}]
}'

Trade-offs: Costo cero de API, pero requiere CPU/GPU potente (€30-60/mes mínimo), latencia más alta, calidad inferior a Claude/GPT-4o.

Casos de uso prácticos

1. Chatbot de soporte: Claude + KnowledgeBase

Carga FAQ de tu sitio como contexto (prompt caching). Claude responde consultas sobre tu producto sin entrenar nada. Costo: ~$20/1000 tickets.

2. Generador SEO: OpenAI + Scrapy

Extrae temas de competidores, genera 50 títulos SEO automáticos. Revísalos, publica. Costo: ~$5 por 50 títulos.

3. Resumen de documentos: Gemini (contexto 1M)

Sube un PDF de 100 páginas. Gemini lo resume en 10 líneas. Más barato que Claude. Costo: ~$0.08 por documento.

4. Análisis de sentimiento: Haiku ultra-rápido

Analiza comentarios de usuarios. Clasifica en positivo/negativo/neutral. Bajo costo, baja latencia. Costo: ~$0.20 por 1000 comentarios.

5. Búsqueda semántica: Embeddings + Supabase

Convierte búsquedas de texto en vectores. Encuentra resultados por significado, no solo keywords. Costo: ~$0.02 por embedding.

Preguntas frecuentes

¿Cuál es la API de IA más barata? +

Google Gemini Flash: $0.075/1M tokens entrada. Pero si necesitas mejor calidad con bajo costo, Claude 3.5 Haiku es insuperable: $0.80/1M con contexto 200K.

¿Debo procesar las llamadas a IA en el cliente o servidor? +

Siempre servidor (o Edge Functions). Si llamas desde el navegador, tu API key queda expuesta en el source code. Usa Cloudflare Workers o Vercel Edge Functions como intermediarias.

¿Qué es el token counting y por qué importa? +

Los tokens son fragmentos de texto. Una palabra ≈ 1.3 tokens. Las APIs cobran por tokens usados, no por palabras. Estima los costes con librerías como tiktoken antes de enviar requests grandes.

¿Puedo usar streaming para ahorrar costes? +

No reduce costes (pagas igual por tokens). Pero mejora UX: el usuario ve la respuesta parcial mientras se genera. Implementa con SSE (Server-Sent Events).

¿Qué alternativa self-hosted existe? +

Ollama (modelos locales gratis como Llama 2) en tu VPS. Sin costes de API. Trade-off: menor calidad que OpenAI/Claude, requiere más RAM/CPU.

Artículos relacionados

¿Todavía no sabes qué API de IA integrar en tu proyecto?

Usa nuestra herramienta de recomendación. Responde un cuestionario sobre tu caso de uso (chatbot, análisis, generación) y recibe una recomendación personalizada: qué API, qué modelo, qué hosting.

Ir a la herramienta →