Appeler Claude API depuis votre code
Changez deux choses dans votre code : la Base URL devient https://api.relayswitch.io/v1 et la clé API devient une clé RelaySwitch. Le SDK Anthropic et le SDK OpenAI fonctionnent sans autre modification, avec 13 modèles Claude dont les prix sont lus directement dans le catalogue.
01Ce qui change par rapport à un appel direct à Anthropic
Utiliser Claude API en direct, c'est ouvrir un compte sur la Console Anthropic, y acheter des crédits, puis appeler avec une clé créée là-bas. Ici, cette partie est remplacée : vous rechargez un solde chez RelaySwitch, vous utilisez une clé RelaySwitch, et la requête part vers une passerelle qui la transmet au modèle. Pour votre code, seules la Base URL et la clé diffèrent ; le corps de la requête, l'id du modèle, le streaming et le tool calling restent identiques.
La facturation se fait au token avec trois prix : entrée, entrée en cache et sortie. Les prix du tableau sont ceux qui sont débités du solde.
Chaque réponse porte l'id de la requête dans ses en-têtes. Avec cet id, vous pouvez récupérer un reçu signé qui indique l'id du modèle, les tokens facturés et le coût.
02Première requête avec curl
Vérifiez d'abord la clé et l'adresse avec curl avant de les reporter dans un SDK.
La clé peut être envoyée dans l'en-tête x-api-key ou Authorization: Bearer, mais une requête ne doit porter qu'une seule clé. Pour le streaming, mettez stream à true ; la réponse arrive en server-sent events.
curl -i https://api.relayswitch.io/v1/messages \ -H "Authorization: Bearer sk-relay-..." \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model": "claude-fable-5.1", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with ok"}]}'03SDK Anthropic pour Python
Pour du code neuf, ou du code qui utilise les fonctions propres à Claude comme le champ system, la structure native de tool use et les marqueurs de prompt cache, le SDK Anthropic via /messages est le plus adapté. Il suffit de renseigner base_url et api_key.
Le SDK Anthropic ajoute lui-même /v1/messages derrière la Base URL. La passerelle accepte le /v1 en double, tous les exemples utilisent donc https://api.relayswitch.io/v1.
import anthropic client = anthropic.Anthropic(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")reply = client.messages.create( model="claude-fable-5.1", max_tokens=300, messages=[{"role": "user", "content": "Reply with ok"}],)print(reply.content[0].text)print(reply.usage)04SDK OpenAI : inutile de réécrire le code existant
Si votre application est déjà écrite au format OpenAI, ou si le même code appelle aussi des modèles d'autres éditeurs, utilisez /chat/completions et remplacez model par un id Claude. Les deux formats partagent la même clé, le même solde et les mêmes prix.
Des exemples pour d'autres SDK et frameworks se trouvent dans la documentation et les guides par outil, tous deux en anglais. Pour Claude Code, voyez la page Claude Code.
from openai import OpenAI client = OpenAI(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")reply = client.chat.completions.create( model="claude-fable-5.1", messages=[{"role": "user", "content": "Reply with ok"}],)print(reply.choices[0].message.content)05Prix actuels des modèles Claude
En USD par million de tokens, lus dans le catalogue au rendu de la page. Les tokens qui touchent le prompt cache, par exemple un long system prompt, des documents envoyés à répétition et l'historique d'une conversation à plusieurs tours, sont facturés au prix de l'entrée en cache, inférieur au prix d'entrée. Le reçu de chaque requête sépare les tokens d'entrée, d'entrée en cache et de sortie, ce qui permet de les rapprocher un à un.
| Modèle | Éditeur | Entrée | Sortie | Contexte |
|---|---|---|---|---|
| Claude Fable 5.1claude-fable-5.1 | Anthropic | $6.00 | $30.00 | 1,000,000 |
| Claude Fable 5.2claude-fable-5.2 | Anthropic | $4.00 | $20.00 | 1,000,000 |
| Claude Fable 5claude-fable-5 | Anthropic | $3.00 | $15.00 | 1,000,000 |
| Claude Opus 5.5claude-opus-5-5 | Anthropic | $2.716 | $9.70 | 1,000,000 |
| Claude Sonnet 4.6claude-sonnet-4-6 | Anthropic | $1.80 | $9.00 | 1,000,000 |
| Claude Opus 4.6claude-opus-4-6 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 4.7claude-opus-4-7 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 4.8claude-opus-4-8 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 5claude-opus-5 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Haiku 4.5claude-haiku-4-5 | Anthropic | $0.60 | $3.00 | 200,000 |
| Claude Sonnet 5claude-sonnet-5 | Anthropic | $1.20 | $3.00 | 1,000,000 |
| Claude Sonnet 5.5claude-sonnet-5-5 | Anthropic | $1.20 | $3.00 | 1,000,000 |
| Claude Haiku 5.5claude-haiku-5-5 | Anthropic | $0.0582 | $0.1455 | 1,000,000 |
USD par million de tokens
06Les codes d'erreur les plus fréquents
Les statuts 401 à 404 sont renvoyés avant que la requête n'atteigne le modèle, tandis que 429, 502 et 503 ne portent aucune réponse ; aucun n'est facturé. Le corps de l'erreur suit la structure d'erreur du format que vous utilisez.
401 invalid_api_key | La clé n'est pas envoyée, est fausse ou a été révoquée. |
402 insufficient_balance | Solde insuffisant. Un budget ou un plafond de dépenses épuisé sur la clé a son propre code d'erreur. |
403 scope_denied | L'id du modèle n'est pas dans la liste d'autorisation de cette clé. |
404 model_not_found | L'id du modèle n'existe pas dans le catalogue ; le plus souvent une faute de frappe. |
429 rate_limited | La limite de débit de la clé est atteinte ; l'en-tête retry-after indique combien de secondes attendre. |
| 502 / 503 | La route vers le modèle a un problème, ou aucune route ne répond pour le moment. |
07Avant de passer en production
Créez une clé distincte pour la production et réglez-la selon vos besoins : budget, plafond de dépenses quotidien, liste d'autorisation de modèles et liste d'autorisation d'IP. Par défaut, chaque clé est limitée à 200 requêtes par minute, et ce chiffre se modifie sur la clé. Pour une requête en échec, lisez l'en-tête retry-after avant de réessayer, et gardez dans vos logs l'id de requête du message d'erreur : il sert à remonter un problème.
Un même id de modèle est servi par plusieurs routes. Si une route répond 5xx ou 429, la requête passe automatiquement à la route suivante au même prix ; un modèle qui n'a qu'une route répond 503.
Questions fréquentes
- Format Anthropic ou format OpenAI ?
- Les deux fonctionnent, avec la même clé et la même Base URL (https://api.relayswitch.io/v1). Le SDK Anthropic utilise /messages, le SDK OpenAI utilise /chat/completions, et l'id du modèle Claude s'écrit exactement de la même façon dans les deux.
- La Base URL doit-elle contenir /v1 ?
- Oui. Indiquez https://api.relayswitch.io/v1, puis le SDK ajoute lui-même /messages ou /chat/completions.
- Le streaming est-il pris en charge ?
- Oui. Mettez stream: true dans la requête, et la réponse arrive en server-sent events. Tous les modèles prennent en charge le streaming.
- Comment s'assurer que c'est bien Claude qui est appelé, et pas un autre modèle ?
- Il y a deux moyens qui ne vous demandent pas de croire cette page sur parole. Chaque modèle reçoit le même prompt de test une fois par jour et sa réponse est comparée aux résultats précédents ; les résultats sont publics sur https://api.relayswitch.io/v1/proof. Chaque requête a aussi un reçu signé (GET https://api.relayswitch.io/v1/requests/:id/receipt) avec l'id du modèle, les tokens facturés et le coût, vérifiable hors ligne avec la clé publique.
- Une requête en échec est-elle facturée ?
- Une requête qui échoue avant d'atteindre le modèle, ou à laquelle le modèle ne répond pas, n'est pas facturée. Cela couvre les statuts 401 à 404 ainsi que 429, 502 et 503.
- Comment recharger, et faut-il un KYC ?
- Par carte ou avec USDT, USDC, BTC, ETH, SOL, dès $10. Le solde est tenu en dollars américains, n'expire pas, et il n'y a pas d'abonnement. Le compte s'ouvre avec un e-mail, sans vérification d'identité.
Changez une seule ligne : base_url
Base URL https://api.relayswitch.io/v1, modèles Claude facturés au token au prix du catalogue, avec un contrôle quotidien public.