API Anthropic Messages
Endpoint /v1/messages, chat nativo Anthropic, autenticação x-api-key, facades e streaming.
O gateway fala nativamente o protocolo Anthropic Messages. Clientes Claude Code, Claude CoWork e Claude Desktop passam pelo mesmo pipeline de inspeção dos clientes OpenAI.
Endpoint#
| Método e caminho | Finalidade |
|---|---|
| POST /v1/messages | Messages estilo Anthropic, nativo ou por facade para backend OpenAI. |
Autenticação#
Clientes Claude usam x-api-key: [key] (console key) ou Authorization: Bearer [key] (token estilo OAuth). O gateway aceita ambos, aplica modo configurado e encaminha ao modelo Claude com anthropic-version: 2023-06-01 e chave resolvida (rule -> model -> global).
Solicitação padrão#
POST /v1/messages
{
"model": "claude-sonnet-4-20250514",
"max_tokens": 4096,
"system": "You are a helpful assistant.",
"messages": [
{ "role": "user", "content": "Hello!" }
],
"stream": false
}A resposta usa schema Anthropic padrão: blocos content, stop_reason e usage metadata.
Metadados de protocolo#
Cada modelo registrado tem apiStyle openai (padrão) ou anthropic. IDs claude-* são registrados como anthropic automaticamente; Model Inventory permite alterar por modelo.
Facades#
O gateway traduz entre protocolos:
- Cliente Anthropic -> modelo OpenAI: /v1/messages vira chat/completions; resposta/SSE é traduzida para eventos Messages, como content_block_delta.
- Cliente OpenAI -> Claude backend: /v1/chat/completions vira Messages; system/developer são elevados à mensagem system inicial, max_tokens padrão 4096, temperature limitada a 0-1 e tool_use vira tool_calls.
Ambos os sentidos usam o mesmo pipeline, sem dependência de protocolo para regras ou camada semântica.
Streaming#
stream: true usa frames content_block_delta com inspeção token a token. Violação no meio termina SSE com guardrail_violation; buffered analisa tudo e retorna 400 antes da entrega.
Formato de erro#
Solicitações bloqueadas retornam HTTP 400 no formato de erro Anthropic. A facade inversa também traduz erros OpenAI.