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.