API-referentie
Dit zijn de endpoints achter de widget. Ze staan onder je Mikabot-appdomein, accepteren JSON en geven JSON terug. Gebruik ze als je een eigen chatinterface bouwt of producten volgt die je zelf rendert.
Hoe een verzoek geaccepteerd wordt
Elk chatverzoek wordt tegen de configuratie van de chatbot gecontroleerd voordat het beantwoord wordt. Een verzoek wordt zonder antwoord geweigerd wanneer:
store_id_not_found— er is geenstore_idmeegestuurd, of hij hoort bij geen enkele chatbotdomain_not_found— er is geenpage_urlmeegestuurd, of die bevat geen hostnaamstore_id_domain_mismatch— de hostnaam inpage_urlis niet het veld Domain van de chatbot. De match is exact, alleen op hostnaam en poort, duswww.jouwshop.beenjouwshop.bezijn verschillende waarden.store_not_active— de chatbot staat uit
Geweigerde verzoeken verschijnen niet in Chat conversations. Worden je verzoeken geweigerd en verklaren de vier oorzaken hierboven het niet, neem dan contact op met je chatbotsleutel en de page_url die je verstuurt.
Een bericht versturen
POST /api/chat/send
{
"message": "Welke gieter past bij een klein balkon?",
"store_id": "st_your_chatbot_key",
"page_url": "https://jouwshop.be/collecties/gereedschap",
"session_id": "visitor-session-id",
"conversation_history": [],
"detected_language": "nl"
}
message(verplicht) — de tekst van de bezoeker, maximaal 150 tekensstore_id(verplicht) — je chatbotsleutelpage_url(verplicht) — de pagina waarop de bezoeker zich bevindt. Hij voedt de domeincontrole hierboven en verschijnt in je chatlogs, dus een verzoek zonder deze waarde wordt geweigerd.session_id— groepeert beurten tot één gesprek. Genereer er één per bezoeker, maximaal 100 tekens.conversation_history— eerdere beurten. Stuur een lege array voor een losse vraag.detected_language— overschrijft de automatische detectie
Het antwoord komt terug in het veld response, samen met de producten die de bot besloot te tonen.
Winkelinformatie
POST /api/ai-responses/store-info geeft de publieke gegevens terug die in begroetingen en placeholders gebruikt worden. Stuur store_id, language en page_url mee.
Producttracking
Gebruik deze endpoints als je productkaarten zelf rendert en de cijfers toch in je dashboard wilt zien.
POST /api/product/click
product_external_id(verplicht) — het ID van het product in je feedclick_type(verplicht) —buy_now,view_productofask_aisession_id,page_url,detected_language(optioneel)
POST /api/product/impressions
products(verplicht) — een array, elk item met eenproduct_external_idimpression_type(verplicht) —display,search_resultofdirect_hitsession_id,page_url,detected_language(optioneel)
GET /api/product/click-stats
period(optioneel) —today,week,monthofall. Standaardall.product_id(optioneel) — beperkt de totalen tot één product
GET /api/product/{productId}/click-stats geeft dezelfde totalen voor één product.
Fouten
402met codemessage_limit_reached— de maandelijkse berichtenlimiet van het factuuraccount is op. De chat stopt tot de volgende periode. De widget zelf laadt in die toestand niet meer, dus je ziet deze code alleen als je het endpoint rechtstreeks aanroept.503met codeapi_unavailable— Mikabot is tijdelijk niet beschikbaar.422— een veld voldeed niet aan de validatie, meestal eenmessagevan meer dan 150 tekens.- Andere fouten geven een veld
errorterug met een leesbare melding.
Verzoeken die falen tellen niet mee voor je maandelijkse berichtenlimiet.
Zie ook
- Werking van de widget — hoe de widget deze endpoints aanroept
- Gegevens en privacy — wat elk verzoek opslaat