Última actualización:

API de Claude — Guía completa de la API de Anthropic

La API de Claude es la interfaz programática que Anthropic expone para acceder a sus modelos desde cualquier aplicación o servicio. Como parte del ecosistema de Claude AI, la API permite integrar capacidades de lenguaje, razonamiento, visión y uso de herramientas en agentes autónomos, pipelines de datos y productos de software. El endpoint principal es POST /v1/messages en api.anthropic.com, y toda la funcionalidad del modelo — desde streaming hasta tool use — se expone a través de este único punto de entrada.

Lo más importante sobre la API de Claude
  • La Messages API (POST /v1/messages) es el único endpoint necesario para acceder a todas las capacidades de Claude: texto, visión, streaming, tool use y extended thinking.
  • Los SDKs oficiales para Python (pip install anthropic) y TypeScript (npm install @anthropic-ai/sdk) simplifican la autenticación, el manejo de errores y el streaming sin tener que gestionar HTTP manualmente.
  • El prompt caching reduce el coste de los tokens cacheados aproximadamente un 90%, lo que es crítico para agentes con system prompts largos que se repiten en cada llamada.
  • La API está disponible directamente en api.anthropic.com, vía Amazon Bedrock y vía Google Vertex AI, permitiendo integración en infraestructuras cloud existentes sin cambiar el código de aplicación.
  • Los rate limits escalan desde 40 RPM en el tier gratuito hasta 4000 RPM en tiers de pago; el precio se factura por token consumido sin costes fijos ni suscripciones obligatorias.

¿Qué es la API de Claude?

La API de Claude es la interfaz REST que Anthropic pone a disposición de desarrolladores y empresas para acceder programáticamente a sus modelos de lenguaje. A diferencia de Claude.ai — el interfaz de chat para usuarios finales —, la API está diseñada para integración en código: puedes llamarla desde cualquier aplicación, automatizarla en pipelines y combinarla con herramientas externas para construir agentes autónomos.

El diseño de la API sigue un principio de simplicidad deliberada: existe un único endpoint principal (POST /v1/messages) desde el que se accede a todas las capacidades del modelo. No hay endpoints separados para visión, streaming, tool use o extended thinking; todas estas funcionalidades son parámetros del mismo endpoint. Esto simplifica la integración y garantiza que cualquier cliente que sepa construir una petición básica puede acceder a las capacidades avanzadas sin cambiar la arquitectura de su código.

Los modelos disponibles a través de la API son Claude Opus 4.7 (frontier, $5/$25 por MTok), Claude Sonnet 4.6 (producción, $3/$15 por MTok) y Claude Haiku 4.5 (rápido y económico, $1/$5 por MTok). Los tres comparten la misma interfaz de API, por lo que cambiar de modelo es tan sencillo como modificar el parámetro model en la petición. Para una comparativa detallada de modelos y sus casos de uso óptimos, consulta la guía de Claude AI.

La documentación oficial de Anthropic para la API está disponible en docs.anthropic.com. Esta guía cubre los mismos conceptos con ejemplos de código adicionales, explicaciones de los trade-offs entre opciones y contexto práctico para tomar decisiones de implementación.

Inicio rápido

Primeros pasos: API key y primera petición

Desde registrarse hasta ejecutar tu primera llamada a la API en menos de cinco minutos.

1. Obtener una API key

Las API keys se generan desde console.anthropic.com. Es necesario crear una cuenta (puede ser cuenta gratuita para empezar), ir a la sección "API Keys" y pulsar "Create Key". La clave se muestra una sola vez en el momento de creación; guarda una copia en un lugar seguro.

Por seguridad, nunca incluyas la API key directamente en el código fuente. Almacénala como variable de entorno:

Shell — variable de entorno
# Linux / macOS
export ANTHROPIC_API_KEY="sk-ant-..."

# Windows PowerShell
$env:ANTHROPIC_API_KEY = "sk-ant-..."

# .env (con python-dotenv o dotenv en Node.js)
ANTHROPIC_API_KEY=sk-ant-...

2. Primera petición con cURL

Puedes verificar que la API key funciona con una petición cURL directa antes de instalar ningún SDK:

cURL — primera petición
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 '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hola Claude. Explica que es una API REST en dos frases."}
    ]
  }'

3. Primera petición con Python SDK

Python — instalación y primera llamada
pip install anthropic
Python — primera llamada a la API
import anthropic

# Lee ANTHROPIC_API_KEY del entorno automaticamente
client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hola Claude. Explica que es una API REST en dos frases."}
    ]
)

# response.content es una lista de bloques de contenido
for block in message.content:
    if block.type == "text":
        print(block.text)

4. Primera petición con TypeScript SDK

TypeScript — instalación y primera llamada
npm install @anthropic-ai/sdk
TypeScript — primera llamada a la API
import Anthropic from "@anthropic-ai/sdk";

// Lee ANTHROPIC_API_KEY del entorno automaticamente
const client = new Anthropic();

const message = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [
    { role: "user", content: "Hola Claude. Explica que es una API REST en dos frases." }
  ],
});

// Iterar sobre los bloques de contenido y comprobar el tipo antes de acceder a .text
for (const block of message.content) {
  if (block.type === "text") {
    console.log(block.text);
  }
}
Referencia técnica

Messages API — Formato de petición y respuesta

Todo lo que acepta y devuelve el endpoint POST /v1/messages.

Flujo de peticion a la API de Claude: aplicacion con API key, autenticacion, Messages API POST /v1/messages con prompt cache y tool use, respuesta JSON o SSE con content array y stop_reason.
Flujo completo de una peticion a la API de Claude. Un unico endpoint gestiona todas las capacidades del modelo.
Documentación de modelos de Claude en Anthropic Docs
Sección de modelos en la documentación oficial de Anthropic (docs.anthropic.com), con la lista de modelos disponibles, sus identificadores de API y capacidades.

Headers requeridos

Toda petición a la API de Claude necesita estos tres headers:

Headers HTTP requeridos en cada petición a la API de Claude. El header anthropic-versión fija la versión de la API para garantizar compatibilidad.
Header Valor Descripción
Content-Type application/json Siempre requerido
x-api-key Tu API key Autenticación; nunca en código fuente
anthropic-version 2023-06-01 Fija la versión de la API para compatibilidad

Parámetros del cuerpo de la petición

Parámetros del cuerpo JSON de POST /v1/messages. Los parámetros en negrita son obligatorios; el resto son opcionales.
Parámetro Tipo Requerido Descripción
model string ID del modelo: claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5
messages array Array de mensajes con role (user/assistant) y content
max_tokens integer Límite máximo de tokens de salida; Claude puede devolver menos
system string No Prompt de sistema que define el comportamiento y contexto del modelo
tools array No Definiciones de herramientas (tool use / function calling)
stream boolean No Si true, la respuesta llega como Server-Sent Events
thinking object No Activa extended thinking; en modelos 4.6+: {"type": "adaptive"}
output_config object No Configuración de salida: effort (low/medium/high/max) y formato estructurado
cache_control object No Activa prompt caching en el último bloque cacheable de la petición

Estructura de la respuesta

La API devuelve un objeto JSON con los siguientes campos principales:

JSON — ejemplo de respuesta de la Messages API
{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Una API REST es una interfaz que permite..."
    }
  ],
  "model": "claude-sonnet-4-6-20250929",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 42,
    "output_tokens": 87,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0
  }
}

Valores de stop_reason

El campo stop_reason indica por qué el modelo dejó de generar:

  • end_turn — el modelo completó su respuesta de forma natural.
  • max_tokens — se alcanzó el límite de max_tokens; la respuesta puede estar truncada.
  • tool_use — el modelo quiere usar una herramienta; debes procesarla y continuar la conversación.
  • stop_sequence — la respuesta alcanzó una secuencia de parada personalizada.
  • pause_turn — el modelo pausó en herramientas del lado del servidor; reenviar el contexto para continuar.
Capacidades de la API

Funcionalidades avanzadas de la API de Claude

Tool use, visión, streaming, extended thinking y prompt caching: el conjunto completo de capacidades disponibles en el mismo endpoint /v1/messages.

Tool use (function calling)

La API de Claude permite definir herramientas con nombre, descripción y esquema JSON de entradas. El modelo decide cuándo llamar a cada herramienta, devuelve una respuesta con stop_reason: "tool_use" e incluye un bloque tool_use en el contenido con los argumentos. El desarrollador ejecuta la herramienta en su propio código y devuelve el resultado en un nuevo mensaje con rol user de tipo tool_result. Claude puede llamar a múltiples herramientas en paralelo dentro de un mismo turno.

Python — definición de herramienta y ciclo de tool use
import anthropic
import json

client = anthropic.Anthropic()

tools = [
    {
        "name": "obtener_clima",
        "description": "Devuelve el clima actual de una ciudad.",
        "input_schema": {
            "type": "object",
            "properties": {
                "ciudad": {
                    "type": "string",
                    "description": "Nombre de la ciudad, por ejemplo Madrid"
                }
            },
            "required": ["ciudad"]
        }
    }
]

messages = [{"role": "user", "content": "Como esta el clima en Barcelona hoy?"}]

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    tools=tools,
    messages=messages
)

# Si Claude quiere usar la herramienta:
if response.stop_reason == "tool_use":
    tool_block = next(b for b in response.content if b.type == "tool_use")

    # Ejecutar la herramienta con los argumentos que propone Claude
    resultado = f"En {tool_block.input['ciudad']}: 22 C, parcialmente nublado."

    # Devolver el resultado al modelo para que genere la respuesta final
    messages.append({"role": "assistant", "content": response.content})
    messages.append({
        "role": "user",
        "content": [{
            "type": "tool_result",
            "tool_use_id": tool_block.id,
            "content": resultado
        }]
    })

    respuesta_final = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        tools=tools,
        messages=messages
    )
    print(respuesta_final.content[0].text)

Visión — entrada de imágenes

Todos los modelos Claude actuales aceptan imágenes en el array content de los mensajes. Las imágenes pueden enviarse como URL pública o codificadas en base64 con el tipo MIME correspondiente. Claude analiza diagramas, capturas de pantalla, documentos escaneados, gráficos y cualquier contenido visual junto con el texto de la petición. Claude Opus 4.7 soporta resolución hasta 2576 px en el lado largo, lo que mejora la precisión en computer use y análisis de documentos.

Python — entrada de imagen vía URL
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "url",
                    "url": "https://ejemplo.com/diagrama.png"
                }
            },
            {
                "type": "text",
                "text": "Describe este diagrama y explica el flujo de datos."
            }
        ]
    }]
)

Streaming — respuesta progresiva

Con streaming activado (stream: true o método .stream() del SDK), los tokens llegan al cliente a medida que el modelo los genera en lugar de esperar a que la respuesta completa esté lista. Esto mejora la experiencia de usuario percibida en aplicaciones de chat, reduce el riesgo de timeouts en respuestas largas y es obligatorio para valores de max_tokens superiores a aproximadamente 16.000 en llamadas no streaming. Los eventos SSE del streaming siguen el formato content_block_delta.

Python — streaming con el SDK
# El SDK expone .stream() como context manager
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Escribe una guia sobre APIs REST."}]
) as stream:
    # Iteracion sobre tokens de texto en tiempo real
    for texto in stream.text_stream:
        print(texto, end="", flush=True)

# Mensaje final con uso de tokens disponible tras cerrar el stream
mensaje_final = stream.get_final_message()
print(f"\nTokens de salida: {mensaje_final.usage.output_tokens}")

Extended thinking — razonamiento paso a paso

El extended thinking permite que Claude dedique tiempo de computación adicional a razonar antes de generar la respuesta final. En los modelos Claude 4.6 y 4.7 se activa con thinking: {"type": "adaptive"}, que deja al modelo decidir cuándo y cuánto razonar de forma autónoma. El parámetro output_config.effort (low / medium / high / max) controla la profundidad del razonamiento y el gasto en tokens. Los bloques de pensamiento aparecen en el campo content de la respuesta con type: "thinking" antes del bloque de texto final.

Python — extended thinking adaptativo
response = client.messages.create(
    model="claude-opus-4-7",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},
    messages=[{
        "role": "user",
        "content": "Analiza los pros y contras de arquitecturas de microservicios vs monolito para una startup."
    }]
)

for block in response.content:
    if block.type == "thinking":
        print(f"[Razonamiento interno]\n{block.thinking}\n")
    elif block.type == "text":
        print(f"[Respuesta]\n{block.text}")

Prompt caching — reducción de costes hasta el 90%

El prompt caching permite reutilizar partes del contexto entre llamadas consecutivas. Cuando una parte del prompt (system prompt, instrucciones del agente, documentos de referencia) no cambia entre peticiones, el modelo puede servir esos tokens desde caché al coste de aproximadamente el 10% del precio normal. Para activarlo, se añade cache_control: {"type": "ephemeral"} en los bloques de contenido que permanecen constantes. El TTL por defecto es 5 minutos; existe opción de 1 hora. El campo usage.cache_read_input_tokens en la respuesta confirma cuántos tokens se sirvieron desde caché en cada llamada.

Python — prompt caching en system prompt
system_prompt_largo = """
Eres un asistente especializado en analisis financiero.
[... miles de tokens de instrucciones y contexto ...]
"""

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": system_prompt_largo,
        "cache_control": {"type": "ephemeral"}  # TTL 5 min por defecto
    }],
    messages=[{"role": "user", "content": "Cual es el EBITDA de la empresa del informe?"}]
)

# Verificar tokens servidos desde cache
print(f"Tokens de entrada normales: {response.usage.input_tokens}")
print(f"Tokens de cache creados: {response.usage.cache_creation_input_tokens}")
print(f"Tokens leidos de cache: {response.usage.cache_read_input_tokens}")

Batches API — procesamiento asíncrono a mitad de precio

La Batches API (POST /v1/messages/batches) permite enviar hasta 100.000 peticiones en un solo lote para procesamiento asíncrono a un 50% del precio normal de la API. Es ideal para tareas que no requieren respuesta en tiempo real: clasificación de grandes volúmenes de texto, generación de contenido masiva, análisis de datasets o extracción de información de miles de documentos. Los resultados están disponibles durante 29 días y se pueden recuperar en cualquier momento tras la finalización del lote, que suele completarse en menos de una hora.

Economía de la API

Tabla de precios de la API de Claude — mayo 2026

Precios en dólares por millón de tokens (MTok). Confirma en anthropic.com/pricing antes de calcular costes de producción.

Precios de la API de Claude por modelo a mayo de 2026. Input = tokens de entrada al modelo. Output = tokens generados por el modelo. Contexto: Haiku 200K, Sonnet y Opus 1M. Los precios de Batches API son el 50% de los precios normales mostrados.
Modelo Tier Input ($/MTok) Cache write ($/MTok) Cache read ($/MTok) Output ($/MTok) Contexto
Claude Haiku 4.5 Fast $1,00 $1,25 $0,10 $5,00 200K
Claude Sonnet 4.6 Balanced $3,00 $3,75 $0,30 $15,00 1M
Claude Opus 4.7 Frontier $5,00 $6,25 $0,50 $25,00 1M
Comparativa de precio de entrada estandar vs con cache por modelo Claude: Haiku 4.5 (1.00 vs 0.10 USD/MTok), Sonnet 4.6 (3.00 vs 0.30 USD/MTok), Opus 4.7 (5.00 vs 0.50 USD/MTok). Ahorro del 90 por ciento con cache.
Comparativa de precio de entrada estandar vs precio con prompt caching activo para cada modelo Claude.

Cálculo de coste real con prompt caching

El coste real por llamada en un agente en producción es significativamente menor que el precio nominal de entrada cuando se usa prompt caching. Ejemplo con Claude Sonnet 4.6:

  • System prompt de 10.000 tokens que no cambia entre llamadas
  • Sin caching: 10.000 tokens x $3/MTok = $0,03 por llamada solo de system prompt
  • Con caching (lectura): 10.000 tokens x $0,30/MTok = $0,003 por llamada
  • Ahorro del 90% en cada llamada tras la escritura inicial en caché

Para ver una guía detallada de precios de Claude con calculadoras de coste y estrategias de optimización, consulta la sección dedicada.

Límites de uso

Rate limits de la API de Claude por tier

Los límites de uso se aplican por modelo y por cuenta. Aumentan automáticamente con el gasto acumulado o mediante solicitud a Anthropic para casos de uso específicos.

Rate limits aproximados de la API de Claude según tier de cuenta a mayo de 2026. RPM = peticiones por minuto. ITPM = tokens de entrada por minuto. OTPM = tokens de salida por minuto. Los límites exactos dependen del modelo y pueden variar; consultar console.anthropic.com para los valores actuales de tu cuenta.
Tier Requisito RPM ITPM OTPM
Free Sólo registro 40 40.000 8.000
Tier 1 $5 gastados 60 80.000 16.000
Tier 2 $500 gastados 2.000 2.000.000 400.000
Tier 3 $5.000 gastados 4.000 4.000.000 800.000
Enterprise Contrato directo Personalizado Personalizado Personalizado

Cuando una petición supera el rate limit, la API devuelve un error HTTP 429 con un header retry-after indicando cuántos segundos esperar. Los SDKs oficiales de Anthropic incluyen reintentos automáticos con backoff exponencial configurables mediante el parámetro max_retries del cliente.

Ecosistema de integración

SDKs e integraciones disponibles

Formas de acceder a la API de Claude desde distintos lenguajes y plataformas cloud.

SDK de Python

Paquete oficial anthropic instalable vía pip. Soporta cliente síncrono y asíncrono (AsyncAnthropic), streaming, tool runner beta con decorador @beta_tool, helpers de structured outputs con Pydantic y client.messages.parse(). Compatible con Python 3.8+.

Documentación del SDK de Python

Instalación
pip install anthropic
SDK de TypeScript / JavaScript

Paquete oficial @anthropic-ai/sdk para Node.js y entornos de borde (Edge Runtime). Soporta cliente asincrono, streaming con .stream() y finalMessage(), tool runner beta con Zod y betaZodTool, helpers de structured outputs y tipado completo de todos los objetos de API.

Documentación del SDK de TypeScript

Instalación
npm install @anthropic-ai/sdk
Amazon Bedrock

Claude disponible como modelo gestionado dentro de AWS Bedrock. Autenticación mediante credenciales IAM de AWS; facturación consolidada con la cuenta de AWS. Mismos modelos y capacidades que la API directa de Anthropic, con las ventajas de la infraestructura y compliance de AWS. Los IDs de modelo tienen prefijo anthropic. en Bedrock.

Documentación de Claude en Bedrock

Google Vertex AI

Claude disponible en Google Cloud Vertex AI Model Garden. Autenticación con credenciales de Google Cloud; facturación vía Google Cloud. Permite combinar Claude con otros servicios de GCP como BigQuery, Cloud Storage o Cloud Run sin enviar datos fuera del entorno de GCP. Disponible en varias regiones geográficas de Google Cloud.

Documentación de Claude en Vertex AI

Otros lenguajes: HTTP directo

La API de Claude es una API REST estándar accesible desde cualquier lenguaje o herramienta que pueda hacer peticiones HTTP con headers personalizados. Si no existe un SDK oficial para tu lenguaje (Go, Ruby, Java, PHP, C#), puedes usar la API directamente con tu librería HTTP de preferencia siguiendo el formato de petición documentado en docs.anthropic.com/es/api/messages. La comunidad mantiene SDKs no oficiales para varios lenguajes adicionales.

Dudas habituales

Preguntas frecuentes sobre la API de Claude

¿Cómo se autentica la API de Claude?

La API de Claude usa autenticación por API key enviada en el header HTTP x-api-key de cada petición. Las claves se generan desde console.anthropic.com y tienen permisos a nivel de organización o de proyecto (workspace). Se recomienda usar variables de entorno (ANTHROPIC_API_KEY) para almacenar la clave y nunca incluirla directamente en el código fuente o en repositorios de control de versiones.

¿Qué diferencia hay entre la API directa de Anthropic y Claude en Bedrock o Vertex?

La API directa de Anthropic (api.anthropic.com) ofrece acceso inmediato a las últimas funcionalidades con autenticación por API key propia de Anthropic y facturación directa. Amazon Bedrock y Google Vertex AI ofrecen los mismos modelos Claude pero con autenticación e infraestructura de AWS o GCP respectivamente, lo que facilita la integración en arquitecturas existentes y puede simplificar el cumplimiento normativo al mantener los datos dentro del entorno cloud del cliente. Nota: Managed Agents y algunas funcionalidades beta avanzadas sólo están disponibles en la API directa de Anthropic.

¿Puedo probar la API sin coste?

Sí. Al registrarse en Anthropic, la cuenta obtiene acceso al tier gratuito con límites de 40 RPM y cuota de tokens reducida. Este tier es suficiente para desarrollo y pruebas de concepto. Para uso en producción con mayor volumen, es necesario añadir un método de pago en console.anthropic.com para pasar al Tier 1 (se desbloquea tras $5 de gasto) y tiers superiores.

¿Qué es la Anthropic Console y para qué sirve?

La Anthropic Console (console.anthropic.com) es el panel de administración de la API. Desde ahí puedes: generar y revocar API keys, ver el uso y gasto de tokens en tiempo real, configurar límites de gasto, acceder al Workbench para probar prompts de forma interactiva, gestionar workspaces de equipo y consultar los rate limits actuales de tu cuenta.

¿Cómo se usa la API para construir agentes con herramientas?

El ciclo básico de tool use con la API de Claude es: (1) definir las herramientas con nombre, descripción y esquema JSON en el parámetro tools de la petición; (2) Claude decide si usar alguna herramienta y devuelve una respuesta con stop_reason: "tool_use" e instrucciones sobre qué argumentos usar; (3) el desarrollador ejecuta la herramienta en su propio código; (4) el resultado se devuelve al modelo como un mensaje tool_result para que Claude pueda incorporarlo en su respuesta final. Los SDKs de Python y TypeScript incluyen un tool runner beta que automatiza este ciclo.

¿Cuánto cuesta en la práctica usar Claude para un agente en producción?

El coste real depende mucho de cómo esté diseñado el agente. Un agente típico con Claude Sonnet 4.6 que tiene un system prompt de 5.000 tokens y realiza 20 pasos por tarea con ~500 tokens de contexto acumulado cada paso: sin caching el coste de entrada sería de aproximadamente $0,30 por tarea completa; con prompt caching en el system prompt, el coste de entrada se reduce a menos de $0,08. Para una estimación precisa de tu caso de uso específico, consulta la guía de precios de Claude con calculadora incluida.

Calcula el coste de la API de Claude para tu proyecto

Consulta la guía detallada de precios de Claude con ejemplos de coste por caso de uso, comparativa entre modelos y estrategias para reducir el gasto con prompt caching y Batches API.

Ver precios de Claude
Guía gratuita

Crea tu primer agente de IA, paso a paso

Descarga la guía en PDF: 12 secciones, ejemplos reales y datos de 2026. Gratis.