Anthropic Messages API

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 rutaPropósito
POST /v1/messagesMessages 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.

Dónde continuar#

Dónde continuar