Démarrer
Démarrage rapide
Clé API, premier agent et premier run : le chemin le plus court vers une réponse.
L'API leem exécute vos agents en arrière-plan : vous envoyez une demande, leem répond en JSON, pendant le run ou une fois terminé, selon que vous suivez son flux d'événements ou non. Ce guide va de zéro à votre premier run.
Organisation et crédit
Une organisation leem accède à l'API avec n'importe quelle formule, sans option ni abonnement à part. Les runs consomment le même crédit que le chat : d'abord le crédit mensuel de la formule, puis les crédits supplémentaires que vous achetez depuis la page Consommation de votre espace (/parametres/consommation). Tout est exprimé en crédits.
Un run démarre tant qu'il reste du crédit (mensuel ou supplémentaire) et s'arrête automatiquement quand il est épuisé ; sans crédit, POST /v1/runs est refusé en 402 insufficient_credits, voir Erreurs et limites.
Créer une clé API
Une clé API se crée depuis la console « Développeurs » de votre organisation. Elle porte un nom, une ou plusieurs droits (runs, agents) et, en option, une date d'expiration. Le secret complet (leem_sk_live_…) n'est montré qu'à cet instant précis : ni la console ni l'API ne le montrent à nouveau ensuite. Conservez-le comme n'importe quel secret de serveur : jamais dans du code source, jamais envoyé à un navigateur.
Voir Authentification pour les droits et leur usage exact.
Choisir un modèle
Votre formule donne accès à une liste de modèles. GET /v1/models la renvoie, avec pour chacun un identifiant (mdl_…) à passer en model sur un agent ou sur un run :
curl https://leem-api.lcom-corp.com/v1/models -H "Authorization: Bearer $LEEM_API_KEY"
Sans model, le run utilise le modèle de son agent, et à défaut le modèle par défaut de votre formule.
Chaque modèle porte aussi structured_output : true s'il peut garantir une réponse conforme à un output_schema, voir Sortie structurée.
Créer un agent
Un agent regroupe des instructions, un modèle (model, facultatif) et une sélection d'outils : c'est ce que vos runs exécutent. Il se crée soit depuis la console, soit directement par l'API :
curl https://leem-api.lcom-corp.com/v1/agents \
-X POST \
-H "Authorization: Bearer $LEEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Assistant support",
"instructions": "Tu réponds aux questions des clients à partir des tickets fournis.",
"tools": ["web_search"]
}'
Réponse (201) :
{
"data": {
"id": "agt_01k6examplea0000000000000",
"name": "Assistant support",
"instructions": "Tu réponds aux questions des clients à partir des tickets fournis.",
"model": null,
"temperature": 0.3,
"tools": ["web_search"],
"active": true,
"unavailable_tools": [],
"created_at": "2026-09-21T10:00:00+00:00",
"updated_at": "2026-09-21T10:00:00+00:00"
}
}
Le détail des champs et du catalogue d'outils est dans Agents et outils.
Premier run, en arrière-plan
curl https://leem-api.lcom-corp.com/v1/runs \
-X POST \
-H "Authorization: Bearer $LEEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent": "agt_01k6examplea0000000000000",
"input": "Résume les trois derniers messages du ticket #482."
}'
La réponse arrive tout de suite, en 202, avec le run à l'état queued :
{
"data": {
"id": "run_01k6exampler000000000000",
"agent": "agt_01k6examplea0000000000000",
"status": "queued",
"metadata": null,
"output": { "text": null, "files": [], "charts": [] },
"steps": [],
"usage": { "credits": 0, "prompt_tokens": 0, "completion_tokens": 0, "tool_calls": 0 },
"warnings": [],
"error": null,
"created_at": "2026-09-21T10:13:20+00:00",
"started_at": null,
"finished_at": null
}
}
Interrogez ensuite le run jusqu'à ce qu'il soit terminé (succeeded, failed ou cancelled) :
curl https://leem-api.lcom-corp.com/v1/runs/run_01k6exampler000000000000 \
-H "Authorization: Bearer $LEEM_API_KEY"
Le détail complet du corps de la requête, des statuts et de la sortie est dans Lancer un run.
Le même run, en flux
Passez "stream": true pour recevoir les événements du run au fil de l'eau plutôt que d'interroger GET /v1/runs/{id} en boucle :
curl https://leem-api.lcom-corp.com/v1/runs \
-X POST \
-H "Authorization: Bearer $LEEM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"agent": "agt_01k6examplea0000000000000", "input": "Résume le ticket #482.", "stream": true}'
Voir Flux d'événements (SSE) pour le format des événements et la reprise après une coupure.
Être notifié sans interroger ni maintenir de connexion
Pour un run long ou peu fréquent, un webhook évite d'avoir à interroger ou à garder un flux ouvert : configurez un webhook_url (avec un secret de signature au préalable) et leem vous notifie à la fin du run. Voir Webhooks.