API Anthropic Messages

API Anthropic Messages

Endpoint /v1/messages, chat natif Anthropic, authentification x-api-key, facades et streaming.

La passerelle parle nativement le protocole Anthropic Messages. Claude Code, Claude CoWork et Claude Desktop passent par le même pipeline d’inspection que les clients OpenAI.

Endpoint#

Méthode et cheminFonction
POST /v1/messagesMessages Anthropic, natif ou facade vers backend OpenAI.

Authentification#

Clients Claude utilisent x-api-key: [key] (console) ou Authorization: Bearer [key] (token OAuth). La passerelle accepte les deux, applique le mode configuré et relaie vers le modèle Claude avec anthropic-version: 2023-06-01 et clé résolue (rule -> model -> global).

Requête standard#

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 réponse suit le schema Anthropic standard : blocs content, stop_reason et usage metadata.

Métadonnées du protocole#

Chaque modèle enregistré possède apiStyle : openai (défaut) ou anthropic. Les IDs claude-* sont enregistrés automatiquement en anthropic ; Model Inventory permet de modifier par modèle.

Facades#

La passerelle traduit les deux protocoles :

  • Client Anthropic -> modèle OpenAI : /v1/messages devient chat/completions ; réponse/SSE reconvertie en événements Messages comme content_block_delta.
  • Client OpenAI -> backend Claude : /v1/chat/completions devient Messages ; system/developer sont regroupés dans le message système initial, max_tokens par défaut à 4096, temperature limitée à 0-1 et tool_use converti en tool_calls.

Les deux directions passent par le même pipeline ; règles et niveau sémantique ne dépendent pas du protocole.

Streaming#

stream: true utilise content_block_delta et inspecte les tokens. Une violation interrompt SSE avec guardrail_violation ; buffered inspecte la réponse complète et renvoie 400 avant livraison.

Format d’erreur#

Les requêtes bloquées renvoient HTTP 400 au format Anthropic. La facade inverse traduit aussi les erreurs OpenAI pour que les clients Anthropic les analysent de façon uniforme.

Pour aller plus loin#

Pour aller plus loin