Avant de commencerLien vers la section Avant de commencer
- Un compte Moon AI, propriétaire ou admin du workspace qui paiera les requêtes.
- Python ou Node.js, dans une version que le SDK officiel d’OpenAI prend en charge (ou
curl).
1. Ouvrir le portailLien vers la section 1. Ouvrir le portail
Ouvrez le menu du compte › « API développeur ». Le portail s’ouvre sur l’onglet « Aperçu » (ouvrir le portail).
2. Approvisionner le porte-monnaieLien vers la section 2. Approvisionner le porte-monnaie
Les requêtes sont débitées du porte-monnaie du workspace. Si votre forfait inclut un crédit API, il s’ajoute au solde à chaque période du forfait (voir Crédit API inclus). Sinon, ou en plus :
- Ouvrez « Facturation » (ouvrir).
- Sous « Recharger », choisissez un « Montant à ajouter » ou saisissez un « Autre montant ».
- Vérifiez le récapitulatif (« Vous recevez », « Total à payer HT »). La TVA est ajoutée au paiement selon votre adresse de facturation.
- Cliquez sur « Continuer vers le paiement » et payez par carte. Le solde est crédité dès la confirmation du paiement.
Le détail des recharges, des frais et des factures est dans Coûts et porte-monnaie.
3. Créer une cléLien vers la section 3. Créer une clé
- Ouvrez « Clés API » (ouvrir).
- Dans « Créer une clé API », donnez un « Nom » à la clé, par exemple le nom de l’application qui l’utilisera.
- Cliquez sur « Créer une clé ».
- La fenêtre « Enregistrez votre clé API » affiche la clé
sk-moon-…. Copiez-la et rangez-la dans un gestionnaire de secrets, puis cliquez sur « J’ai enregistré ma clé ».
4. Installer le SDKLien vers la section 4. Installer le SDK
L’API est compatible avec les SDK officiels d’OpenAI : aucun SDK propre à Moon AI n’est nécessaire.
# Rien à installer : curl suffit.
curl --versionpip install openainpm install openai5. Mettre la clé dans l’environnementLien vers la section 5. Mettre la clé dans l’environnement
Ne copiez jamais la clé dans le code ni dans un dépôt Git. Gardez-la dans une variable d’environnement ; les exemples lisent MOONAI_API_KEY, comme ceux du portail :
export MOONAI_API_KEY="sk-moon-..."6. Envoyer une première requêteLien vers la section 6. Envoyer une première requête
L’exemple appelle anthropic/. Tout identifiant listé par GET / fonctionne ; la liste à jour se lit dans l’onglet « Modèles » ou par l’API (voir Modèles).
curl https://api.realmoon.ai/v1/chat/completions \
-H "Authorization: Bearer $MOONAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-haiku-4.5",
"messages": [{"role": "user", "content": "Bonjour"}]
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.realmoon.ai/v1",
api_key=os.environ["MOONAI_API_KEY"],
)
response = client.chat.completions.create(
model="anthropic/claude-haiku-4.5",
messages=[{"role": "user", "content": "Bonjour"}],
)
print(response.choices[0].message.content)import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.realmoon.ai/v1',
apiKey: process.env.MOONAI_API_KEY,
});
const response = await client.chat.completions.create({
model: 'anthropic/claude-haiku-4.5',
messages: [{ role: 'user', content: 'Bonjour' }],
});
console.log(response.choices[0].message.content);7. Lire la réponseLien vers la section 7. Lire la réponse
La réponse a la forme d’une complétion OpenAI.
{
"id": "gen-6f1c2b7e9a4d4c0e8b3a5d2f1e0c9b8a",
"object": "chat.completion",
"created": 1793577600,
"model": "anthropic/claude-haiku-4.5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Bonjour. Comment puis-je vous aider ?" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21 }
}idest l’identifiant de la requête chez Moon AI. Il sert à retrouver son coût avecGET /(voir Solde et coût d’une requête).v1/ generation? id= … usagedonne les jetons, pas le coût.modelest l’identifiant que vous avez appelé, ou le nom exact de la version servie par le fournisseur. Pour un modèle maison de Moon AI, c’est toujours l’identifiant Moon AI.
La réponse porte aussi des en-têtes propres à Moon AI :
X-Moon-Request-Id: gen-6f1c2b7e9a4d4c0e8b3a5d2f1e0c9b8a
X-Moon-Prompt-Storage: none
X-Moon-Blur: onX-Moon-Blur: indique que Moon Blur a analysé la requête ; X-Moon-Blur-Redactions s’ajoute quand il a remplacé des valeurs. La liste complète est dans Authentification.
Quelques secondes après l’appel, la requête apparaît dans « Aperçu » › « Requêtes récentes » et dans « Utilisation » › « Journal des requêtes », sans son contenu.