03 · api

API REST : discutez depuis votre serveur

POST /api/v1/re-act-agent/chat. Gardez le même sessionId pour toute la conversation. Depuis un navigateur, le domaine de la page doit figurer dans les domaines autorisés.

  • Réponse JSON : role, content, sessionId, toolCalls (nom + sortie de chaque outil), handoff si un transfert est en cours.
  • Renvoyez le header Idempotency-Key avec la même clé pour réessayer sans rejouer le tour d'agent.
  • Erreurs : 400 (MSISDN ou message invalide), 404 (bot inconnu ou inactif), 409 (message déjà en cours), 429 (trop de requêtes).
API — cURL
curl -X POST https://api.votredomaine.com/api/v1/re-act-agent/chat \
  -H "Content-Type: application/json" \
  -d '{
    "botId": "VOTRE_BOT_ID",
    "sessionId": "client-42-session-1",
    "msisdn": "0700000000",
    "message": "Bonjour, je veux suivre ma réclamation"
  }'
API — JavaScript (navigateur)
const sessionId = crypto.randomUUID(); // une fois par conversation

async function ask(message) {
  const res = await fetch("https://api.votredomaine.com/api/v1/re-act-agent/chat", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ botId: "VOTRE_BOT_ID", sessionId, msisdn: "0700000000", message }),
  });
  if (!res.ok) throw new Error((await res.json()).message);
  const { content } = await res.json();
  return content;
}
Réponse — exemple JSON
{
  "role": "assistant",
  "content": "Votre réclamation RC-2048 est en cours de traitement.",
  "sessionId": "client-42-session-1",
  "toolCalls": [
    { "name": "track_claim", "input": { "reference": "RC-2048" }, "output": "…", "status": "success" }
  ]
}

sessionId : gardez le même identifiant pour toute la conversation (ou passez autoSession: true).

Réponse complète : role, content, sessionId, toolCalls, handoff. Remplacez VOTRE_BOT_ID par le vrai botId copié depuis l'onglet Développeur du bot.