Anthropic Messages API
Endpoint /v1/messages, chat nativo Anthropic, autenticación x-api-key, facades y streaming.
El gateway habla Anthropic Messages protocol de forma nativa. Clientes Claude como Claude Code, Claude CoWork y Claude Desktop pasan por el mismo pipeline de inspección que clientes compatibles con OpenAI.
Endpoint#
| Método y ruta | Propósito |
|---|---|
| POST /v1/messages | Messages estilo Anthropic, nativo o por facade hacia backends estilo OpenAI. |
Autenticación#
Clientes Claude usan x-api-key: [key] (console keys) o Authorization: Bearer [key] (tokens estilo OAuth). El gateway acepta ambos, aplica el modo configurado y reenvía al backend Claude registrado con anthropic-version: 2023-06-01 y la clave resuelta (rule -> model -> global).
Solicitud estándar#
POST /v1/messages
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 4096,
"system": "You are a helpful assistant.",
"messages": [
{ "role": "user", "content": "Hello!" }
],
"stream": false
}La respuesta usa el schema Anthropic estándar: bloques content, stop_reason y metadatos usage.
Metadatos del protocolo del modelo#
Cada modelo registrado tiene apiStyle: openai (predeterminado) o anthropic. IDs claude-* se registran automáticamente como anthropic; Model Inventory permite cambiarlo por modelo.
Facades#
El gateway traduce ambos protocolos:
- Cliente Anthropic -> modelo OpenAI: /v1/messages se convierte a chat/completions y la respuesta/SSE vuelve a eventos Messages como content_block_delta.
- Cliente OpenAI -> Claude backend: /v1/chat/completions se convierte a Messages; mensajes system y developer se combinan al inicio, max_tokens usa 4096 por defecto, temperature se limita a 0-1 y tool_use se traduce a tool_calls.
Ambas direcciones usan el mismo pipeline; reglas y nivel semántico son independientes del protocolo.
Streaming#
stream: true usa frames content_block_delta y análisis token a token. Una infracción a mitad del flujo lo termina con guardrail_violation; buffered analiza todo y devuelve 400 antes de entregar.
Errores#
Solicitudes bloqueadas devuelven HTTP 400 en formato de error Anthropic. La facade inversa traduce también errores OpenAI a Anthropic.