Intégrez Brainiall dans votre app Python ou Node.js
L'API Brainiall est compatible OpenAI
Si vous savez déjà faire un request à l'API OpenAI, vous savez le faire avec Brainiall. Seules 2 choses changent :
1. Base URL : https://api.brainiall.com/v1 (au lieu de https://api.openai.com/v1)
2. API Key : format brnl-... (au lieu de sk-...)
Tout le reste est identique. Votre code existant fonctionne en remplaçant simplement ces deux valeurs.

Étape 1 : créer votre API key
1. Accédez à https://app.brainiall.com
2. Connectez-vous avec Google (si c'est la première fois)
3. Menu → API Keys → "Créer une nouvelle"
4. Donnez-lui un nom descriptif ("mon-app-prod" ou similaire)
5. Copiez la key — elle n'apparaît qu'une seule fois, conservez-la précieusement
Le plan Pro inclut 1 key active ; le plan Business inclut des crédits + plusieurs keys + rotation.
Étape 2 : Python avec httpx
`python
import httpx
BASE = "https://api.brainiall.com/v1"
KEY = "brnl-d13..." # votre key
def chat(prompt, model="claude-sonnet-4-6"):
r = httpx.post(
f"{BASE}/chat/completions",
json={
"model": model,
"messages": [{"role": "user", "content": prompt}]
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60
)
r.raise_for_status()
return r.json()["choices"][0]["message"]["content"]
print(chat("Expliquez TLS en 2 phrases."))`
Étape 3 : Python avec le SDK officiel OpenAI
`python
from openai import OpenAI
client = OpenAI(
base_url="https://api.brainiall.com/v1",
api_key="brnl-xxx"
)
r = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Bonjour !"}]
)
print(r.choices[0].message.content)`
Le SDK OpenAI fonctionne à 100% — nous supportons le streaming, le function calling, le tool_use, la vision et tous les standards OpenAI.
Étape 4 : Node.js
`javascript
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://api.brainiall.com/v1',
apiKey: 'brnl-xxx'
});
const r = await client.chat.completions.create({
model: 'claude-sonnet-4-6',
messages: [{ role: 'user', content: 'Bonjour !' }]
});
console.log(r.choices[0].message.content);`
Modèles disponibles
Utilisez l'endpoint /v1/models pour les lister en temps réel :
`python
r = httpx.get(f"{BASE}/models", headers={"Authorization": f"Bearer {KEY}"})
for m in r.json()["data"]:
print(m["id"])`
Catégories :
- Text : claude-sonnet-4-6, gpt-5, gemini-3-pro, llama-4-maverick, deepseek-v3, etc.
- Image : gemini-3-flash-image, gpt-5-image, flux-2-klein, seedream-4.5
- Video (endpoint séparé /v1/videos) : bytedance/seedance-2.0-fast
- TTS (endpoint /v1/audio/speech) : 54 voix
- STT (endpoint /v1/audio/transcriptions) : Whisper Large v3
Streaming (server-sent events)
`python
with httpx.stream("POST", f"{BASE}/chat/completions", ...
json={"model": "...", "messages": [...], "stream": True}
) as r:
for line in r.iter_lines():
if line.startswith("data: "):
# parse chunk JSON
...`
Le streaming réduit considérablement la latence perçue — les tokens s'affichent au fur et à mesure de la génération, sans attendre la réponse complète.
Rate limits et bonnes pratiques
- Free tier API : inexistant — l'API nécessite un plan Pro ou Business
- Plan Pro : inclut le chat + les images via le portail, API facturée à l'usage
- Plan Business : inclut 50 €/mois de crédits API
- Retry : utilisez un backoff exponentiel pour les erreurs 429/5xx
- Cache : sauvegardez localement les réponses déterministes
- Timeout : 60s est sûr ; pour les tâches longues comme la vidéo, prévoyez 300s
Erreurs courantes à éviter
- Oublier le
Beareravant la key → 401 - Hardcoder la key dans le code → fuite inévitable lors d'un git push ; utilisez des variables d'environnement
- Ne pas gérer les 429 → l'application se bloque
- Ignorer le champ
usagedans la réponse → mauvaise surprise à la facturation - Utiliser le mauvais modèle pour une tâche simple → coût 10x inutile
Testez dès maintenant
Créez votre key sur https://app.brainiall.com et lancez l'un des exemples ci-dessus. Le plan Pro est le minimum requis pour accéder à l'API ; le plan Business inclut suffisamment de crédits pour démarrer.