Miércoles, 11 de noviembre de 2026  ·  Español
Producto

API de Mensajes (Messages API)

La API de Mensajes es el endpoint principal de Anthropic para usar Claude desde código: envías una lista de mensajes con roles user y assistant y recibes la respuesta del modelo en bloques de contenido estructurados.

También: Messages API · API de Messages de Claude · endpoint /v1/messages · Claude Messages API · API de Claude
Daniel Puentes Prias
Consultor de IA · Actualizado el 4 de noviembre de 2026

La API de Mensajes (Messages API) es la interfaz HTTP con la que cualquier aplicación habla con Claude: un único endpoint, POST /v1/messages, al que envías la conversación como una lista de turnos y del que recibes la siguiente respuesta del modelo. Es la base sobre la que se construyen chatbots, agentes, integraciones y también los SDK oficiales de Anthropic. Sustituyó a la antigua Text Completions API, que trabajaba con un único bloque de texto plano.

Cómo funciona

Cada petición es un JSON con unos pocos campos clave:

La respuesta devuelve un objeto con role: "assistant", un array content de bloques tipados (text, tool_use, thinking...), un stop_reason que explica por qué paró (por ejemplo end_turn, max_tokens, stop_sequence o tool_use) y un objeto usage con los tokens de entrada y salida consumidos.

La autenticación se hace con la cabecera x-api-key y la cabecera anthropic-version, que fija la versión del contrato de la API.

Por qué importa

La API es sin estado: Claude no recuerda nada entre llamadas. Si quieres una conversación de varios turnos, tu aplicación guarda el historial y lo reenvía completo en cada petición. Esto tiene consecuencias directas: cada turno vuelve a facturar todo el contexto acumulado, el historial puede acabar chocando con la ventana de contexto y tú decides qué recortar, resumir o cachear.

El formato en bloques también condiciona tu código. No basta con leer content[0].text: si usas herramientas, la respuesta puede traer bloques tool_use que tu programa debe ejecutar y devolver como tool_result en un nuevo mensaje de usuario. Revisar stop_reason es la forma correcta de saber si la respuesta está completa, truncada o esperando una herramienta.

Ejemplo mínimo

import anthropic

client = anthropic.Anthropic()  # lee ANTHROPIC_API_KEY

msg = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system="Eres un asistente técnico conciso.",
    messages=[
        {"role": "user", "content": "Explica qué es un índice en SQL."}
    ],
)

print(msg.stop_reason)
print(msg.content[0].text)
print(msg.usage.input_tokens, msg.usage.output_tokens)

Para continuar la conversación, añades la respuesta como turno assistant y la nueva pregunta como turno user, y vuelves a llamar. Si quieres pasar de este ejemplo a un producto real, merece la pena aprender a construir aplicaciones sobre esta API con manejo de errores, streaming y control de costes.

Errores comunes

Preguntas frecuentes

¿La API de Mensajes guarda el historial de la conversación?

No. Es sin estado: tu aplicación debe almacenar los turnos anteriores y enviarlos completos en cada petición. Para reducir el coste de reenviar contexto largo se puede usar prompt caching.

¿Necesito una suscripción Claude Pro para usar la API?

No. La API se contrata aparte desde la consola de desarrolladores de Anthropic y se paga por tokens consumidos. Las suscripciones de claude.ai no incluyen créditos de API.

¿Puedo recibir la respuesta poco a poco en lugar de esperar al final?

Sí. Con el parámetro stream activado, la API devuelve eventos server-sent events a medida que el modelo genera el texto, útil para interfaces de chat y respuestas largas.

¿Qué pasa con la antigua Text Completions API?

Es una API heredada basada en texto plano con marcadores Human y Assistant. Anthropic recomienda migrar a la API de Mensajes, que es la que soportan los modelos y funcionalidades actuales.

Términos relacionados

Tutoriales donde se usa

Fuentes