Leem

Référence

Référence des points d'entrée

Chaque point d'entrée /v1, son droit requis, ses paramètres et ses réponses.

Référence complète des points d'entrée /v1. Le format des erreurs et l'enveloppe commune sont dans Erreurs et limites ; seules les erreurs propres à chaque point d'entrée sont rappelées ici.

GET /v1/organization

Droit requis : aucun (toute clé valide).

Renvoie l'organisation de la clé, la clé elle-même et son crédit, en crédits (jamais en monnaie) : le crédit mensuel de la formule, les crédits supplémentaires et le total disponible.

bash
curl https://leem-api.lcom-corp.com/v1/organization -H "Authorization: Bearer $LEEM_API_KEY"
json
{
  "data": {
    "id": 42,
    "name": "Acme SARL",
    "plan": "pro",
    "key": { "name": "Production", "prefix": "leem_sk_live_ab12", "scopes": ["runs", "agents"], "expires_at": null },
    "credit": {
      "monthly": { "limit": 20000, "used": 12345.67, "remaining": 7654.33, "resets_at": "2026-11-01T00:00:00+00:00" },
      "extra": { "remaining": 5000, "next_expiry": "2027-10-23T00:00:00+00:00" },
      "available": 12654.33
    }
  }
}

credit.monthly suit la fenêtre de facturation de l'organisation ; extra.next_expiry vaut null sans crédits supplémentaires. Les crédits supplémentaires s'achètent depuis la page Consommation de votre espace.

GET /v1/tools

Droit requis : runs ou agents.

Le catalogue d'outils utilisables par votre organisation. Voir Agents et outils pour le détail des champs.

bash
curl https://leem-api.lcom-corp.com/v1/tools -H "Authorization: Bearer $LEEM_API_KEY"

GET /v1/models

Droit requis : runs ou agents.

Liste les modèles offerts par la formule de votre organisation : les identifiants à passer en model sur les agents et les runs. Aucun prix n'est exposé, seulement un multiplicateur de consommation.

ChampDescription
idIdentifiant du modèle (mdl_…).
nameNom affiché.
descriptionCourte description, ou null.
multiplierConsommation relative au modèle payant le moins cher de la liste (1.0 pour lui) ; null si le modèle est inclus dans la formule.
input_modalitiesEntrées acceptées, par exemple ["text", "image"].
defaulttrue pour le modèle utilisé quand rien n'est précisé.
is_testtrue pour un modèle de test gratuit, proposé uniquement aux organisations de test (ses hébergeurs peuvent conserver les données). Toujours false ailleurs.
structured_outputtrue si le modèle peut garantir une sortie conforme à un output_schema, voir Sortie structurée.
bash
curl https://leem-api.lcom-corp.com/v1/models -H "Authorization: Bearer $LEEM_API_KEY"
json
{
  "data": [
    { "id": "mdl_01k6examplem0000000000000", "name": "Rapide", "description": "Pour le quotidien", "multiplier": 1.0, "input_modalities": ["text", "image"], "default": true, "is_test": false, "structured_output": true },
    { "id": "mdl_01k6examplem0000000000001", "name": "Expert", "description": null, "multiplier": 3.0, "input_modalities": ["text"], "default": false, "is_test": false, "structured_output": false }
  ]
}

GET /v1/agents

Droit requis : runs ou agents.

Liste vos agents, triés par nom.

bash
curl https://leem-api.lcom-corp.com/v1/agents -H "Authorization: Bearer $LEEM_API_KEY"
json
{ "data": [ { "id": "agt_01k6examplea0000000000000", "name": "Assistant support", "...": "..." } ] }

POST /v1/agents

Droit requis : agents.

Crée un agent, voir Agents et outils pour les champs, leurs bornes et unavailable_tools.

Erreurs propres : unknown_parameter, invalid_parameter (name, model, temperature, tools.*…), unknown_tool, tool_unavailable, 422 invalid_client_tool, 422 client_tool_name_taken, 409 agent_name_taken, 422 model_unavailable (le model demandé n'est pas dans votre formule).

bash
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", "tools": ["web_search"]}'

Réponse : 201, {"data": <agent>}.

GET /v1/agents/{agent}

Droit requis : runs ou agents.

{agent} est l'id public de l'agent (agt_…). Un agent d'une autre organisation, ou inexistant, renvoie 404 resource_not_found.

bash
curl https://leem-api.lcom-corp.com/v1/agents/agt_01k6examplea0000000000000 -H "Authorization: Bearer $LEEM_API_KEY"

PATCH /v1/agents/{agent}

Droit requis : agents.

Met à jour un agent, champ par champ (chaque champ du corps est optionnel ; un champ omis n'est pas modifié). Mêmes règles et mêmes erreurs que POST /v1/agents.

bash
curl https://leem-api.lcom-corp.com/v1/agents/agt_01k6examplea0000000000000 -X PATCH \
  -H "Authorization: Bearer $LEEM_API_KEY" -H "Content-Type: application/json" \
  -d '{"active": false}'

Réponse : 200, {"data": <agent>}.

DELETE /v1/agents/{agent}

Droit requis : agents.

Supprime l'agent (suppression douce : les runs passés continuent de le nommer). Un run futur visant cet id reçoit 404 resource_not_found.

bash
curl https://leem-api.lcom-corp.com/v1/agents/agt_01k6examplea0000000000000 -X DELETE -H "Authorization: Bearer $LEEM_API_KEY"
json
{ "data": { "id": "agt_01k6examplea0000000000000", "deleted": true } }

POST /v1/runs

Droit requis : runs.

Lance un run, voir Lancer un run pour le corps complet, les bornes et Flux d'événements (SSE) pour stream: true.

Erreurs propres : unknown_parameter, invalid_parameter, 422 invalid_client_tool, 422 client_tool_name_taken (champ client_tools), 404 resource_not_found (agent, ou fichier listé dans files), agent_inactive, webhook_secret_missing, 422 model_unavailable (le modèle demandé n'est pas dans votre formule), 402 insufficient_credits, 429 concurrent_runs_exceeded, 503 stream_capacity_reached (en flux).

Réponse : 202 (JSON) ou un flux SSE (stream: true).

GET /v1/runs/{run}

Droit requis : runs.

{run} est l'id public du run (run_…). Un run caviardé (contenu purgé après 30 jours) ou d'une autre organisation renvoie 404 resource_not_found.

bash
curl https://leem-api.lcom-corp.com/v1/runs/run_01k6exampler000000000000 -H "Authorization: Bearer $LEEM_API_KEY"

POST /v1/runs/{run}/cancel

Droit requis : runs.

Demande l'arrêt d'un run actif (y compris en attente de résultats d'outils client), voir Lancer un run. Erreur propre : 409 run_not_active.

bash
curl https://leem-api.lcom-corp.com/v1/runs/run_01k6exampler000000000000/cancel -X POST -H "Authorization: Bearer $LEEM_API_KEY"

POST /v1/runs/{run}/tool_outputs

Droit requis : runs.

Envoie les résultats des outils client que le run attend (status: "requires_action") : un résultat par appel de required_action, tous dans la même requête, {"tool_outputs": [{"call_id": "...", "output": "...", "is_error": false}]}. output est une chaîne ou une valeur JSON (100 000 octets au plus). Le run repasse en queued et reprend.

Erreurs propres : invalid_parameter, unknown_parameter, 402 insufficient_credits (le run continue d'attendre), 409 run_not_waiting, 422 unknown_tool_call, 422 duplicate_tool_output, 422 missing_tool_outputs, 422 tool_output_too_large.

bash
curl https://leem-api.lcom-corp.com/v1/runs/run_01k6exampler000000000000/tool_outputs   -X POST   -H "Authorization: Bearer $LEEM_API_KEY" -H "Content-Type: application/json"   -d '{"tool_outputs": [{"call_id": "call_01k8examplecall00000000000", "output": "2026-10-30"}]}'

Réponse : 202, {"data": <run>}.

GET /v1/runs/{run}/events

Droit requis : runs.

Flux SSE des événements du run, repris avec Last-Event-ID ou ?after=, voir Flux d'événements (SSE). Erreurs propres : invalid_last_event_id, 503 stream_capacity_reached.

POST /v1/webhook_secret

Droit requis : agents.

Crée ou remplace le secret de signature des webhooks de l'organisation, voir Webhooks. Le secret n'est renvoyé qu'à cet appel.

bash
curl https://leem-api.lcom-corp.com/v1/webhook_secret -X POST -H "Authorization: Bearer $LEEM_API_KEY"

Réponse : 201, {"data": {"secret": "whsec_...", "created_at": "..."}}.

POST /v1/files

Droit requis : runs.

Envoie un fichier d'entrée, voir Fichiers pour les types acceptés, la taille maximale et les quotas.

bash
curl https://leem-api.lcom-corp.com/v1/files -X POST \
  -H "Authorization: Bearer $LEEM_API_KEY" \
  -F "file=@rapport.pdf"

Réponse : 201, {"data": {"id": "file_...", "purpose": "input", "name": "rapport.pdf", "type": "application/pdf", "size": 48213, "...": "..."}}.

GET /v1/files/{file}

Droit requis : runs.

{file} est l'id public d'un fichier d'entrée ou d'un fichier produit par un run : un seul espace d'id, deux tables (voir Fichiers).

bash
curl https://leem-api.lcom-corp.com/v1/files/file_01k6examplef00000000000 -H "Authorization: Bearer $LEEM_API_KEY"

DELETE /v1/files/{file}

Droit requis : runs.

Supprime un fichier d'entrée ou un fichier produit avant son expiration naturelle.

bash
curl https://leem-api.lcom-corp.com/v1/files/file_01k6examplef00000000000 -X DELETE -H "Authorization: Bearer $LEEM_API_KEY"
json
{ "data": { "id": "file_01k6examplef00000000000", "deleted": true } }

GET /v1/files/{file}/content

Droit requis : aucun. L'authentification est l'URL signée elle-même, donnée dans output.files[].url d'un run (voir Lancer un run). Pensée pour être remise à un utilisateur final, qui n'a pas de clé API.

Erreurs propres : 403 invalid_signature (lien invalide ou expiré), 404 resource_not_found (fichier expiré ou supprimé).

bash
curl "https://leem-api.lcom-corp.com/v1/files/file_01k6examplef00000000000/content?signature=..."

GET /v1/agents/{agent}/documents

Droit requis : runs ou agents.

Liste les documents de connaissance de l'agent : des fichiers permanents lus par chaque run de l'agent (widget compris) avec les outils fichiers. Un agent d'une autre organisation répond 404 resource_not_found.

bash
curl https://leem-api.lcom-corp.com/v1/agents/agt_01k6examplea0000000000000/documents -H "Authorization: Bearer $LEEM_API_KEY"

POST /v1/agents/{agent}/documents

Droit requis : agents.

Ajoute un document : multipart/form-data, un seul champ file (mêmes types et taille maximale que Fichiers). Le document n'expire pas (expires_at: null), compte dans le quota de fichiers et de stockage, et l'agent en porte 20 au plus. Voir Agents et outils.

Erreurs propres : 422 too_many_documents, 400 storage_quota_exceeded, ainsi que les refus d'envoi de POST /v1/files.

bash
curl https://leem-api.lcom-corp.com/v1/agents/agt_01k6examplea0000000000000/documents -X POST \
  -H "Authorization: Bearer $LEEM_API_KEY" \
  -F "file=@catalogue.pdf"

Réponse : 201, {"data": {"id": "file_...", "purpose": "knowledge", "name": "catalogue.pdf", "type": "application/pdf", "size": 48213, "created_at": "...", "expires_at": null}}.

DELETE /v1/agents/{agent}/documents/{file}

Droit requis : agents.

Supprime un document de connaissance. Un id qui n'est pas un document de cet agent répond 404 resource_not_found. DELETE /v1/files/{file} refuse un tel document (409 file_in_use). Réponse 200, {"data": {"id": "file_...", "deleted": true}}.

bash
curl https://leem-api.lcom-corp.com/v1/agents/agt_01k6examplea0000000000000/documents/file_01k6examplef00000000000 -X DELETE -H "Authorization: Bearer $LEEM_API_KEY"

POST /v1/widgets/{widget}/sessions

Droit requis : runs.

Ouvre, depuis votre serveur, une session de widget pour un de vos utilisateurs et renvoie un jeton court à transmettre au script. Corps : user (id obligatoire, name facultatif), context facultatif et agents facultatif (agents de l'équipe du widget autorisés pour cette personne ; absent : toute l'équipe). Réponse 201 avec token, expires_at, user et agents (liste retenue), jamais mise en cache ni rejouée par Idempotency-Key. Voir Widget.

Erreurs propres : 400 unknown_parameter (champ autre que user, context, agents, user.id et user.name), 400 invalid_parameter (user, user.id de 1 à 128 caractères, user.name de 120 caractères au plus, context de 4 096 octets au plus, agents vide, agents.N hors de l'équipe ou en double), 403 widget_unavailable, 404 resource_not_found.

bash
curl https://leem-api.lcom-corp.com/v1/widgets/wgt_01k8examplewidget000000000/sessions -X POST \
  -H "Authorization: Bearer $LEEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "user": { "id": "u_42", "name": "Rina A." } }'

DELETE /v1/widget_users/{id}

Droit requis : runs.

Efface les sessions, discussions, messages et fichiers d'un utilisateur de widget sur tous les widgets de l'organisation. Irréversible ; identifiant inconnu : 404 resource_not_found. Réponse 200, {"data": {"id": "u_42", "deleted": true}}. Voir Widget.

bash
curl https://leem-api.lcom-corp.com/v1/widget_users/u_42 -X DELETE -H "Authorization: Bearer $LEEM_API_KEY"