Retour au blog

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.

Par CheapTokens TeamPublié le Mis à jour le 5 min de lecture

Trois valeurs à changer pour passer à une API compatible OpenAI : base_url, clé API et id du modèle
Sur cette page
  1. Que signifie « compatible OpenAI » ?
  2. Qu'est-ce que base_url ?
  3. Les trois valeurs que vous changez
  4. Première requête en Python
  5. La même requête avec curl
  6. Ce que vous devriez voir
  7. Combien cela coûte-t-il ?
  8. Si cela ne fonctionne pas
  9. Étapes suivantes

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 model et une liste messages, où chaque message a un role (system, user ou assistant) et content.
  • Le chemin de l'endpoint : /chat/completions, ajouté après l'URL de base.
  • 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.

Partie Exemple
base_url https://api.cheaptokens.dev/v1
Chemin ajouté par le SDK /chat/completions
Adresse complète de la requête https://api.cheaptokens.dev/v1/chat/completions

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://api.cheaptokens.dev/v1. 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#

Valeur Ce que c'est D'où elle vient
base_url Adresse de l'API https://api.cheaptokens.dev/v1
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 :

Modèle Id du modèle Contexte Sortie max par réponse
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8 192 tokens
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32 768 tokens
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 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 :

bash
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 :

python
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_CHEAPTOKENS_KEY 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.

bash
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].message.content. 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 /chat/completions vous-même lorsque vous utilisez un SDK, sinon le chemin sera doublé.
  • 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_tokens a é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.