Documentation de l'API

Babel Mesh propose une API compatible OpenAI. Changez l'URL de base et la clé, et vos outils et SDK existants fonctionnent.

Premiers pas

URL de basehttps://babelmesh.ai/v1
AuthentificationL'en-tête Authorization: Bearer VOTRE_CLE. Les clés commencent par sk-fab-.
Obtenir une cléOuvrez la console du compte pour créer un compte et des clés. Une clé n'est affichée qu'une fois, à sa création ; conservez-la. Vous pouvez y créer et désactiver des clés à tout moment.

Les modèles disponibles à l'instant peuvent être listés à tout moment :

curl
curl https://babelmesh.ai/v1/models \
  -H "Authorization: Bearer $BABEL_KEY"

Si vous ne savez pas quel modèle choisir, utilisez auto. Babel Mesh examine la requête : la conversation légère et les questions simples vont à un modèle rapide ; le code, à un modèle de code ; le raisonnement, les très longs documents, les appels d'outils ou les sorties structurées, au modèle le plus puissant ; et si un modèle n'a pas de nœud ou une longue file d'attente, un autre est utilisé. La décision ne lit que la requête elle-même (sa longueur, la présence de code, d'outils ou d'un schéma de sortie structurée) et rien n'est conservé. L'en-tête de réponse X-Gateway-Model indique quel modèle a répondu et X-Gateway-Auto pourquoi. auto ne choisit que des modèles que votre compte peut utiliser.

Vous pouvez aussi en nommer un : chat-default (rapide), chat-strong (puissant), embedding-default (embeddings), video-default (vidéo). Pour les images, utilisez le modèle z-image-turbo (auto fonctionne aussi pour les requêtes d'image). Un alias désigne le meilleur choix du moment ; le nom propre d'un modèle fonctionne aussi.

Chat

Le point d'accès est POST /v1/chat/completions ; stream: true envoie la réponse en flux.

curl
curl https://babelmesh.ai/v1/chat/completions \
  -H "Authorization: Bearer $BABEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto",
    "messages": [{"role": "user", "content": "Introduce yourself in one sentence"}]
  }'

Avec le SDK Python d'OpenAI :

python
from openai import OpenAI

client = OpenAI(base_url="https://babelmesh.ai/v1", api_key="sk-fab-...")

stream = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Write a Python function that checks for palindromes"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

Embeddings

Le point d'accès est POST /v1/embeddings ; input est une chaîne ou une liste de chaînes.

curl
curl https://babelmesh.ai/v1/embeddings \
  -H "Authorization: Bearer $BABEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "embedding-default", "input": ["a lighthouse at dawn", "a paper boat on a pond"]}'

Images

Le point d'accès est POST /v1/images/generations ; l'image revient en base64 (data[0].b64_json).

curl
curl https://babelmesh.ai/v1/images/generations \
  -H "Authorization: Bearer $BABEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "z-image-turbo", "prompt": "a lighthouse at dawn, watercolor", "n": 1}'

Vidéo

La vidéo prend des minutes, c'est donc une tâche asynchrone : soumettez-la, interrogez son état, puis récupérez le fichier.

curl
# 1. Submit; the answer holds a job id
curl https://babelmesh.ai/v1/videos \
  -H "Authorization: Bearer $BABEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "video-default", "prompt": "a paper boat on a pond", "seconds": "3"}'

# 2. Poll: queued, in_progress, completed or failed
curl https://babelmesh.ai/v1/videos/VIDEO_ID -H "Authorization: Bearer $BABEL_KEY"

# 3. When completed, fetch the video (mp4)
curl https://babelmesh.ai/v1/videos/VIDEO_ID/content -H "Authorization: Bearer $BABEL_KEY" -o out.mp4

Chaque compte peut avoir un nombre limité de tâches vidéo en cours. Une vidéo terminée est conservée un jour.

L'utiliser depuis d'autres applications

Comme l'API est compatible OpenAI, elle fonctionne avec des interfaces de chat comme Open WebUI, Cherry Studio et Chatbox, et avec les extensions d'IA des éditeurs. Ajoutez-la comme fournisseur « compatible OpenAI » avec deux réglages :

URL de basehttps://babelmesh.ai/v1
Clé d'APIVotre clé, qui commence par sk-fab-.
  • Ces applications ne connaissent pas l'API des tâches vidéo (soumettre, interroger, récupérer) ; pour la vidéo, appelez directement l'API comme ci-dessus.
  • L'historique des conversations reste dans votre propre application ; Babel Mesh ne le conserve pas. Le contenu est traité selon la classe de données du compte, « publique » par défaut, et peut s'exécuter sur des ordinateurs de contributeurs : ne saisissez pas de contenu privé ou confidentiel.
  • Si vous déployez une telle application pour plusieurs personnes, elles partagent toutes les crédits et les limites d'une même clé.

L'interface locale du client

Le client Babel Mesh peut aussi répondre sur votre propre ordinateur, pour que les programmes qui s'y trouvent utilisent le réseau comme ils utiliseraient un modèle local. Il est désactivé tant que vous n'activez pas « API locale » dans la page du compte du client. Il n'écoute que sur cet ordinateur (port par défaut 18650 ; le client affiche l'adresse exacte), et les programmes utilisent un jeton affiché par le client, pas la clé de votre compte.

Compatible OpenAIhttp://127.0.0.1:18650/v1 : chat, completions, images, vidéo et liste des modèles.
Compatible Ollamahttp://127.0.0.1:18650 : /api/chat, /api/generate, /api/tags, /api/show, /api/ps, /api/version et /api/embed.
Compatible Anthropichttp://127.0.0.1:18650 : POST /v1/messages, pour Claude Code et les outils similaires.
  • Les outils qui attendent Ollama sur son port habituel, 11434, y sont aussi servis, mais seulement lorsqu'Ollama lui-même n'est ni installé ni en cours d'exécution sur cet ordinateur ; les deux ne se disputent donc jamais le port.
  • Fonctionne avec Claude Code, Open WebUI, Continue, Cursor, Cherry Studio, LobeChat et les SDK OpenAI et Ollama.
  • Les requêtes continuent vers le réseau au nom de votre compte : les crédits sont consommés comme d'habitude et la même classe de données s'applique.

Depuis un autre endroit, avec le même compte

L'adresse publique https://babelmesh.ai/v1 est accessible de partout avec la clé de votre compte : un autre ordinateur, un serveur ou une application mobile peut donc s'y connecter directement. Aujourd'hui, cette adresse parle l'API compatible OpenAI. Pour les outils de style Ollama et Anthropic sur un autre ordinateur, installez-y le client, connectez-vous avec le même compte et utilisez son interface locale comme ci-dessus. Le client n'ouvre aucun port entrant : son interface locale n'est donc pas joignable depuis d'autres machines.

Prévu, sans date : des points d'accès de style Anthropic et Ollama sur l'adresse publique aussi.

Erreurs et limites

400La requête est mal formée, ou plus longue que ce que peut accepter tout modèle disponible (context_length_exceeded), ou le modèle est un modèle d'embeddings et la requête n'en est pas une.
401Pas de clé, ou clé invalide.
402Crédits épuisés, ou budget de cette clé épuisé.
404Nom de modèle incorrect, ou aucun nœud ne sert ce modèle pour le moment.
429Limite de requêtes par minute ou de jetons du compte dépassée. Patientez un instant.
503Trop de monde en ce moment. L'en-tête Retry-After indique combien de secondes attendre.

Les erreurs ont le format d'OpenAI : {"error": {"message": "...", "type": "..."}}. Votre solde et vos limites : GET /v1/account.