Quickstart
L’API Astrolabe Chat est OpenAI-compatible : si votre outil parle à OpenAI, il parle à Astrolabe Chat.
1. Récupérer une clé + la base URL
Section intitulée « 1. Récupérer une clé + la base URL »Depuis le portail développeur : créez une organisation, générez une clé API. Vous obtenez :
- Base URL :
https://api.astrolabe.chat/v1 - Clé :
sk-...
Permissions de la clé
Section intitulée « Permissions de la clé »À la création, vous choisissez ce que la clé peut faire. Sept permissions, combinables :
| Permission | Scope | Donne accès à |
|---|---|---|
| Chat / inférence | chat | /v1/chat/completions, /v1/models, embeddings |
| Bases : lecture | kb:read | lecture des bases de connaissance (liste, recherche, export) |
| Bases : écriture | kb:write | création / modification / suppression de bases et documents |
| Connecteur MCP | mcp | le serveur MCP /v1/mcp (RAG exposé comme outils) |
| Recherche web | web_search | les outils web_search / web_fetch dans la boucle agentique |
| Connecteurs API | connections | utiliser les connecteurs API (/v1/connections, outils connection:…) |
| Exécution de code | code | l’outil code (sandbox isolé) dans la boucle agentique |
Une clé sans liste de permissions est illimitée (rétrocompatibilité).
Une clé qui appelle une surface hors de ses permissions reçoit 403. Pour un
connecteur (Claude, ChatGPT, n8n), une clé « Connecteur MCP » seule suffit et
limite l’exposition. Les clés créées avant cette fonctionnalité restent sans
restriction (toutes permissions).
2. Premier appel (curl)
Section intitulée « 2. Premier appel (curl) »curl https://api.astrolabe.chat/v1/chat/completions \ -H "Authorization: Bearer $ASTROLABE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mistral-small", "messages": [{"role": "user", "content": "Explique l'\''ESS en une phrase."}], "max_tokens": 500 }'3. SDK OpenAI (Python)
Section intitulée « 3. SDK OpenAI (Python) »from openai import OpenAI
client = OpenAI( base_url="https://api.astrolabe.chat/v1", api_key="sk-...",)
resp = client.chat.completions.create( model="mistral-small", messages=[{"role": "user", "content": "Bonjour !"}], max_tokens=500,)print(resp.choices[0].message.content)4. SDK OpenAI (Node.js / TypeScript)
Section intitulée « 4. SDK OpenAI (Node.js / TypeScript) »import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.astrolabe.chat/v1", apiKey: process.env.ASTROLABE_API_KEY,});
const resp = await client.chat.completions.create({ model: "mistral-small", messages: [{ role: "user", content: "Bonjour !" }], max_tokens: 500,});console.log(resp.choices[0].message.content);5. Modèle avec raisonnement interne
Section intitulée « 5. Modèle avec raisonnement interne »mistral-small raisonne avant de répondre sur les tâches complexes. Ce raisonnement
est exposé dans le champ reasoning_content du message (peut être null si le
modèle n’a pas jugé utile de raisonner) :
{ "choices": [{ "message": { "role": "assistant", "content": "La réponse finale.", "reasoning_content": "…réflexion interne… (null si absent)" } }]}Pour la sortie structurée (json_schema / json_object), le raisonnement est
automatiquement désactivé — reasoning_content est toujours null et max_tokens
n’a besoin de couvrir que le JSON final.
L’impact pratique sur max_tokens : les tokens de réflexion sont comptabilisés.
Avec une valeur trop basse en mode chat, la réponse peut être vide ou tronquée.
Voir Référence API — Raisonnement pour les détails.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Référence API — paramètres complets, rate limits, codes d’erreur, streaming
- Sortie structurée — JSON garanti pour vos automatisations n8n/Make
- Intégrations — configuration détaillée n8n, Make, code