IA pour débutantsGuide
API compatible OpenAI : ce qu'est base_url et comment basculer
Une API compatible OpenAI accepte les mêmes requêtes que celle d'OpenAI. Changez base_url, la clé et l'id du modèle, et votre code envoie sa première requête à CheapTokens.

Sur cette page
Une API compatible OpenAI est une API qui accepte les requêtes dans le même format que l'API Chat Completions d'OpenAI et répond dans le même format. Pour déplacer une application vers un autre fournisseur, vous changez généralement trois valeurs : base_url (où vont les requêtes), la clé API et l'id du modèle. Le reste de votre code, y compris la liste des messages et la façon dont vous lisez la réponse, reste inchangé.
Ce guide explique l'idée en termes simples et se termine par une première requête fonctionnelle vers CheapTokens en Python et curl. Les faits concernant CheapTokens ont été vérifiés dans sa documentation le 22 octobre 2026.
Que signifie « compatible OpenAI » ?#
Une API est un ensemble de règles pour communiquer avec un service sur internet (si le mot est nouveau, commencez par comment fonctionne votre première requête API). Le format de chat d'OpenAI est devenu un standard courant : de nombreux fournisseurs et outils acceptent le même corps de requête et renvoient la même forme de réponse. Une telle API est dite compatible OpenAI.
En pratique, cela signifie que trois choses sont identiques chez tout fournisseur compatible :
- La requête : un corps JSON avec un champ
modelet une listemessages, où chaque message a unrole(system,userouassistant) etcontent. - Le chemin de l'endpoint :
/, ajouté après l'URL de base.chat/ completions - La réponse : un objet JSON où le texte généré se trouve dans
choices[0]..message. content
Comme le format est partagé, les SDK officiels et de nombreuses applications peuvent communiquer avec tout fournisseur compatible. Ils ont seulement besoin de savoir où envoyer la requête.
Qu'est-ce que base_url ?#
base_url est l'adresse par laquelle commence chaque requête. Un SDK construit l'adresse complète en y ajoutant le chemin de l'appel.
Faites défiler le tableau vers la droite →
| Partie | Exemple |
|---|---|
base_url |
https:/ |
| Chemin ajouté par le SDK | / |
| Adresse complète de la requête | https:/ |
Ainsi, lorsque vous définissez un base_url différent, le même code envoie le même type de requête à un autre serveur. L'URL de base de CheapTokens est https:/. Son API est compatible avec OpenAI Chat Completions et avec Anthropic Messages, et un seul solde prépayé couvre tous les modèles.
Les trois valeurs que vous changez#
Faites défiler le tableau vers la droite →
| Valeur | Ce que c'est | D'où elle vient |
|---|---|---|
base_url |
Adresse de l'API | https:/ |
| Clé API | Votre mot de passe secret pour l'API | Votre compte CheapTokens. Voir ce qu'est une clé API et comment la stocker en sécurité |
| Id du modèle | Le nom exact du modèle dans le champ model |
La documentation CheapTokens |
L'id du modèle mérite votre attention. Différents fournisseurs donnent des ids différents au même modèle, donc un id provenant d'un autre service ne fonctionnera pas ici. Prenez les ids dans la documentation CheapTokens. Les ids disponibles actuellement :
Faites défiler le tableau vers la droite →
| Modèle | Id du modèle | Contexte | Sortie max par réponse |
|---|---|---|---|
| GLM-5.3-Flash | zai- |
390K | 8 192 tokens |
| DeepSeek-V4-Flash | deepseek- |
380K | 32 768 tokens |
| MiniMax-M2.7 | MiniMaxAI/ |
180K | 8 192 tokens |
DeepSeek-V4-Flash renvoie jusqu'à 32 768 tokens par réponse et dispose d'un contexte de 380K ; GLM-5.3-Flash a un contexte de 390K ; MiniMax-M2.7 a un contexte de 180K. Les trois sont facturés sur le même solde, donc passer de l'un à l'autre ne demande que de changer l'id du modèle.
Première requête en Python#
Installez le paquet openai, puis stockez votre clé dans une variable d'environnement au lieu de l'écrire dans le code :
pip install openai
export CHEAPTOKENS_API_KEY="YOUR_CHEAPTOKENS_KEY"Maintenant le code. La seule différence avec un exemple OpenAI standard est l'argument base_url, la clé et l'id du modèle :
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1", # 1. where requests go
api_key=os.environ["CHEAPTOKENS_API_KEY"], # 2. your CheapTokens key
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7", # 3. model id from the docs
messages=[
{"role": "system", "content": "You answer briefly."},
{"role": "user", "content": "Explain base_url in one sentence."},
],
)
print(response.choices[0].message.content)La clé dans l'exemple est un espace réservé : remplacez YOUR_ par votre propre clé et ne validez jamais une vraie clé dans un dépôt.
Si une application que vous avez déjà lit ses paramètres depuis un fichier de configuration ou des variables d'environnement, vous n'avez pas du tout besoin de modifier son code. Cherchez les champs appelés base URL, API base ou endpoint, et renseignez-y les mêmes trois valeurs.
La même requête avec curl#
curl montre ce que fait le SDK en coulisses : l'URL de base plus le chemin, la clé dans l'en-tête Authorization, et un corps JSON.
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "user", "content": "Explain base_url in one sentence."}
]
}'Ce que vous devriez voir#
Quand tout est correctement configuré, le script Python affiche une courte réponse textuelle, et curl affiche un objet JSON. Cherchez la liste choices : le texte de la réponse se trouve dans choices[0].. Si vous voyez cela, votre première requête vers CheapTokens a fonctionné, et vous pouvez passer à votre vraie application.
Combien cela coûte-t-il ?#
La facturation se fait par tokens, comptés séparément pour l'entrée et la sortie (voir tokens d'entrée vs de sortie). Par exemple, MiniMax-M2.7 coûte actuellement $0.05 par 1M de tokens d'entrée et $0.15 par 1M de tokens de sortie. Le tableau ci-dessous affiche toujours les prix actuels pour tous les modèles, sans surcoût aux heures de pointe.
| Modèle | Contexte | Entrée $/1M | Sortie $/1M | OpenRouter entrée | OpenRouter sortie |
|---|---|---|---|---|---|
| GLM-5.3-Flash reasoning | 390K | $0.02 | $0.04 | $0.0413 | $0.0758 |
| DeepSeek-V4-Flash | 380K | $0.015 | $0.10 | $0.0475 | $0.1568 |
| MiniMax-M2.7 | 180K | $0.05 | $0.15 | $0.30 | $1.20 |
Prix en USD pour 1 million de jetons. Les chiffres d'OpenRouter sont affichés à titre de comparaison et peuvent varier.
Les prix de la liste complète des modèles sont aussi sur la page de tarification CheapTokens.
Si cela ne fonctionne pas#
- Erreur d'authentification (généralement 401) : la clé est absente, mal saisie ou contient des espaces superflus. Vérifiez que la variable d'environnement est définie dans le même terminal que celui où vous exécutez le script.
- « Not found » (généralement 404) : vérifiez
base_url. Elle doit se terminer par/v1, et vous ne devez pas ajouter/vous-même lorsque vous utilisez un SDK, sinon le chemin sera doublé.chat/ completions - Modèle inconnu : copiez l'id du modèle exactement depuis le tableau ci-dessus ou depuis la documentation, majuscules et partie avant la barre oblique comprises.
- Pas de connexion ou timeout : voir les erreurs de connexion courantes et comment les corriger.
- Réponse coupée en pleine phrase : la limite
max_tokensa été atteinte, ce qui est traité dans pourquoi une réponse IA s'arrête en pleine phrase.
Étapes suivantes#
Une fois la première requête fonctionnelle, vous pouvez ajouter le streaming en Python, renseigner les mêmes trois valeurs dans votre éditeur ou agent, ou lire comment lire les noms de modèles IA. Les détails de configuration et une liste complète des modèles se trouvent dans la documentation CheapTokens.



