curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Quels sont vos horaires d’ouverture ?",
"stream": false
}'
curl -N -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Je souhaite prendre rendez-vous.",
"stream": true
}'
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Peux-tu décrire l’image ?",
"stream": false,
"files": [
{
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...",
"type": "image/jpeg",
"name": "produit-1.jpg"
}
]
}'
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Résume ce devis" \
-F "stream=false" \
-F "files=@/chemin/vers/devis.pdf;type=application/pdf"
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Peux-tu décrire l’image ?" \
-F "stream=false" \
-F "files=@/chemin/vers/produit-1.jpg"
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Compare ces deux images" \
-F "stream=false" \
-F "files=@/chemin/vers/produit-1.jpg" \
-F "files=@/chemin/vers/produit-2.jpg"
{
"uuid": "9b2f6c1e-4a8d-4f3e-9c1a-2d5e7f8a9b0c",
"message": "Nous sommes ouverts du lundi au vendredi de 9h à 18h.",
"buttons": null
}
Conversations
Envoyer une question à un agent
POST
/
api
/
v1
/
responses
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Quels sont vos horaires d’ouverture ?",
"stream": false
}'
curl -N -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Je souhaite prendre rendez-vous.",
"stream": true
}'
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Peux-tu décrire l’image ?",
"stream": false,
"files": [
{
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...",
"type": "image/jpeg",
"name": "produit-1.jpg"
}
]
}'
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Résume ce devis" \
-F "stream=false" \
-F "files=@/chemin/vers/devis.pdf;type=application/pdf"
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Peux-tu décrire l’image ?" \
-F "stream=false" \
-F "files=@/chemin/vers/produit-1.jpg"
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Compare ces deux images" \
-F "stream=false" \
-F "files=@/chemin/vers/produit-1.jpg" \
-F "files=@/chemin/vers/produit-2.jpg"
{
"uuid": "9b2f6c1e-4a8d-4f3e-9c1a-2d5e7f8a9b0c",
"message": "Nous sommes ouverts du lundi au vendredi de 9h à 18h.",
"buttons": null
}
Paramètres
string
required
Identifiant du client (même valeur que pour
/customers).string
required
UUID de l’agent (assistant) qui doit répondre.
string
required
Question de l’utilisateur final.
boolean
default:"true"
true → réponse en flux (SSE) ; false → réponse complète en une fois.array
Images et documents joints à la question. Chaque élément :
{ "url": "...", "type": "image/png", "name": "optionnel" }. Voir Fichiers joints ci-dessous.uuid n’est requis : le serveur génère l’identifiant de la réponse et vous le renvoie (champ uuid en mode non stream, en-tête X-Moustache-Message-UUID en mode stream). Il sert à noter la réponse.
Fichiers joints
| Type | Formats | Traitement |
|---|---|---|
| Images | PNG, JPG, GIF, WebP | Envoyées au modèle en entrée vision. L’agent doit utiliser un modèle vision avec la vision activée, sinon 403. url peut être une URL publique HTTPS ou un data: URL base64. |
| Documents | PDF, DOCX, PPTX, TXT, CSV, JSON (25 Mo max par fichier) | Le texte est extrait par Moustache AI puis ajouté à la question. Fonctionne avec tous les modèles. Un PDF scanné passe par une reconnaissance de texte (OCR) quand un modèle vision auxiliaire est configuré. Envoi en data: URL base64 ou en multipart uniquement : une URL distante est refusée (400). |
- en JSON via
files(data:URL base64, ou URL publique HTTPS pour les images) ; - en multipart/form-data via un champ
files(un ou plusieurs fichiers).
Réponses
Mode stream
- 200 OK : renvoie un flux texte
text/html; charset=utf-8dont chaque chunk est une partie de la réponse. Le flux se termine par le marqueur:EOS:. - L’identifiant de la réponse est dans l’en-tête
X-Moustache-Message-UUID(affichez-le aveccurl -i). - Autres codes d’erreur : voir tableau ci-dessous.
Mode non stream
| Code | Corps JSON |
|---|---|
| 200 | { "uuid": "…", "message": "…", "buttons": [ "Option 1", "Option 2" ] } |
| 400 | { "error": "Missing parameters" }, ou document envoyé par URL distante, vide ou mal encodé |
| 401 | { "error": "Unauthorized: Unknown token" } |
| 403 | { "error": "Image inputs require a vision-capable model …" } |
| 404 | { "error": "Unauthorized: Assistant not found for your company" } |
| 413 | Document de plus de 25 Mo |
| 415 | Type de fichier non pris en charge |
| 422 | Aucun texte n’a pu être extrait du document |
| 500 | { "error": "Answer not found" } ou erreur interne. |
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Quels sont vos horaires d’ouverture ?",
"stream": false
}'
curl -N -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Je souhaite prendre rendez-vous.",
"stream": true
}'
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyIdentifier": "CLIENT_123",
"agentUUID": "28ce3b2d-5791-4905-8d66-123456789abc",
"question": "Peux-tu décrire l’image ?",
"stream": false,
"files": [
{
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...",
"type": "image/jpeg",
"name": "produit-1.jpg"
}
]
}'
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Résume ce devis" \
-F "stream=false" \
-F "files=@/chemin/vers/devis.pdf;type=application/pdf"
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Peux-tu décrire l’image ?" \
-F "stream=false" \
-F "files=@/chemin/vers/produit-1.jpg"
curl -X POST https://api.moustacheai.com/api/v1/responses \
-H "Authorization: Bearer MON_API_TOKEN" \
-F "companyIdentifier=CLIENT_123" \
-F "agentUUID=28ce3b2d-5791-4905-8d66-123456789abc" \
-F "question=Compare ces deux images" \
-F "stream=false" \
-F "files=@/chemin/vers/produit-1.jpg" \
-F "files=@/chemin/vers/produit-2.jpg"
{
"uuid": "9b2f6c1e-4a8d-4f3e-9c1a-2d5e7f8a9b0c",
"message": "Nous sommes ouverts du lundi au vendredi de 9h à 18h.",
"buttons": null
}
Was this page helpful?