Chat
Anthropic Messages et Claude Code
Les modèles Claude prennent aussi en charge l’API Messages d’Anthropic : les SDK d’Anthropic, Claude Code et tous les outils conçus pour eux fonctionnent donc avec une nouvelle URL de base et une nouvelle clé.
/v1/messagesURL de base https://api.zurelay.com (les SDK ajoutent /v1/messages). Envoyez la clé via x-api-key ou Authorization: Bearer, avec anthropic-version: 2023-06-01. Seuls les modèles Claude sont disponibles ici ; les autres modèles utilisent /v1/chat/completions.
Avec les SDK d’Anthropic
import osimport anthropicclient = anthropic.Anthropic( base_url="https://api.zurelay.com", api_key=os.environ["ZURELAY_API_KEY"],)message = client.messages.create( model="claude-opus-5-5", max_tokens=1024, system="You are a careful code reviewer.", messages=[{"role": "user", "content": "Review this function: def add(a, b): return a - b"}],)print(message.content[0].text)Tout ce que propose l’API Messages d’Anthropic est transmis tel quel (sauf metadata, qui reste chez nous) : system sous forme de chaîne ou de blocs (avec cache_control pour la mise en cache des prompts), tools, thinking, output_config, stop_sequences, temperature, le streaming avec les mêmes événements et les en-têtes anthropic-beta. Les images et les PDF sont envoyés sous forme de blocs image et document : voir Images, PDF, audio et vidéo. Anthropic refuse temperature, top_p et top_k sur Claude à partir d’Opus 4.7 ; pour ces modèles, nous les retirons donc de la requête plutôt que de la faire échouer.
Raisonnement
Claude adapte son raisonnement : il décide de l’effort nécessaire à chaque requête, et output_config.effort en règle l’intensité : low, medium, high, xhigh (très élevée) ou max. Ajoutez display: "summarized" à thinking pour recevoir un résumé du raisonnement dans des blocs thinking.
import osimport anthropicclient = anthropic.Anthropic( base_url="https://api.zurelay.com", api_key=os.environ["ZURELAY_API_KEY"],)message = client.messages.create( model="claude-opus-5-5", max_tokens=32000, thinking={"type": "adaptive", "display": "summarized"}, output_config={"effort": "xhigh"}, messages=[{"role": "user", "content": "How many primes are there below 1,000?"}],)for block in message.content: print(block.thinking if block.type == "thinking" else block.text)- Claude Opus 5.5 et les modèles Fable raisonnent toujours : Opus 5.5 à
mediumsauf si vous définissez un niveau, Fable àhigh. Si vous leur demandez de ne pas raisonner, ils utilisentlow. - Claude Sonnet 5.5 et Opus 5 raisonnent à
highpar défaut, et Claude Haiku 5.5 àmedium. Opus 4.6 à 4.8 ne raisonnent que si vous envoyezthinking. Opus 4.6 n’a pas de niveauxhigh; il utilise donchigh. - L’ancienne forme,
thinking: { type: "enabled", budget_tokens }, fonctionne avec tous les modèles Claude : ceux qui la refusent utilisent à la place le raisonnement adaptatif au niveau le plus proche. Claude Haiku 4.5 n’accepte que cette forme et reçoit un budget lorsque vous envoyez une demande de raisonnement adaptatif. - Le raisonnement est facturé en tokens de sortie : prévoyez donc une marge dans
max_tokensaux niveauxxhighetmax, et utilisez le streaming pour les réponses longues. Quand vous définissez un niveau, l’en-têtex-zurelay-reasoning-effortindique celui qui a été utilisé.
Mise en cache des prompts
La mise en cache fonctionne comme chez Anthropic : placez cache_control sur les blocs à mettre en cache, ou sur toute la requête, pour les conserver cinq minutes, ou ajoutez "ttl": "1h" pour les conserver une heure. Chaque partie de l’entrée est facturée comme chez Anthropic :
Les deux types d’écriture figurent dans usage.cache_creation, et cache_creation_input_tokens correspond à leur somme. Chaque page de modèle affiche ses tarifs de cache. Seul ce que vous demandez de mettre en cache est facturé comme une écriture : une requête sans cache_control est facturée au tarif d’entrée pour tout ce qui n’est pas lu depuis le cache, et une entrée à conserver cinq minutes n’est jamais facturée au tarif d’une heure.
Claude Code
Configurez Claude Code pour utiliser Zurelay avec cinq variables d’environnement (l’URL de base, votre clé et les trois alias de modèles), puis lancez-le comme d’habitude :
export ANTHROPIC_BASE_URL="https://api.zurelay.com"export ANTHROPIC_AUTH_TOKEN="$ZURELAY_API_KEY"export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-5-5"claudePour conserver ces réglages, placez les mêmes valeurs dans le bloc env de ~/.claude/settings.json. Le guide complet, ainsi que les guides pour Cursor, Cline et d’autres outils, se trouvent dans Intégrations.
Les niveaux /effort de Claude Code sont transmis au modèle sous forme de output_config.effort : xhigh et max fonctionnent donc comme chez Anthropic. Ultracode est un réglage de Claude Code, pas un niveau d’effort : il utilise le niveau de la session (xhigh quand vous lancez Claude Code avec --effort ultracode).
Comptage des tokens
/v1/messages/count_tokensAccepte le même corps que /v1/messages et renvoie { "input_tokens": 1234 }, une estimation du nombre de tokens que la requête comptabiliserait. Gratuit.
Erreurs
Les erreurs sont renvoyées au format d’Anthropic ({ "type": "error", "error": { "type", "message" } }), avec les mêmes significations que sur la page des erreurs. Elles ne contiennent pas de code : utilisez le statut HTTP et error.type.
/v1/chat/completions. Si vous en envoyez un à /v1/messages, l’erreur indique quel endpoint utiliser. Le tableau de la page Images, PDF, audio et vidéo indique ce que chaque modèle peut lire.- Conseil : Le compteur de tokens d’Anthropic et le nôtre peuvent légèrement différer ; c’est l’usage indiqué dans la réponse qui est facturé.
Une question ou un élément manquant ? Contactez notre équipe d’assistance et nous vous répondrons par e-mail, généralement en moins d’une minute.