Ga naar inhoud
Denkchat
Developer Guides

API Integratie

De Denkchat API stelt je in staat om chatbots programmatisch aan te sturen, gesprekken te beheren en data op te halen.

Base URL

https://denkchat.nl/api

Authenticatie

Dashboard API-endpoints vereisen een Bearer token (Supabase access token) in de header:

Authorization: Bearer YOUR_ACCESS_TOKEN

De embed chat API (/api/embed/chat) vereist geen authenticatie — deze is publiek toegankelijk voor widget-integraties.

Chat API

Bericht versturen

Stuur berichten naar een agent en ontvang een streaming text response.

curl -X POST https://denkchat.nl/api/embed/chat \
  -H "Content-Type: application/json" \
  -d '{
    "agentId": "JOUW_AGENT_ID",
    "messages": [
      { "role": "user", "content": "Wat zijn jullie openingstijden?" }
    ],
    "sessionId": "optioneel-session-id",
    "visitorEmail": "optioneel@email.nl"
  }'

Request body:

VeldTypeBeschrijvingVerplicht
agentIdstringJe agent IDJa
messagesarrayArray van { role, content } objectenJa
sessionIdstringBestaand sessie-ID om gesprek voort te zettenNee
visitorEmailstringE-mailadres van de bezoekerNee

Response:

De response is een plain text stream. De volledige tekst van het antwoord wordt chunk-voor-chunk gestreamd:

Onze openingstijden zijn maandag t/m vrijdag van 9:00 tot 17:00.

Response headers:

HeaderBeschrijving
X-Session-IdHet sessie-ID (nieuw aangemaakt of bestaand)

JavaScript voorbeeld

const response = await fetch('https://denkchat.nl/api/embed/chat', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    agentId: 'JOUW_AGENT_ID',
    messages: [
      { role: 'user', content: 'Hoe kan ik een bestelling retourneren?' }
    ],
  }),
});

// Sessie-ID ophalen voor vervolgberichten
const sessionId = response.headers.get('X-Session-Id');

const reader = response.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  console.log(decoder.decode(value, { stream: true }));
}

Python voorbeeld

import requests

response = requests.post(
    'https://denkchat.nl/api/embed/chat',
    json={
        'agentId': 'JOUW_AGENT_ID',
        'messages': [
            {'role': 'user', 'content': 'Wat kosten jullie producten?'}
        ],
    },
    stream=True,
)

session_id = response.headers.get('X-Session-Id')

for chunk in response.iter_content(decode_unicode=True):
    if chunk:
        print(chunk, end='')

Gesprek samenvatting

Genereer een AI-samenvatting van een chatsessie.

curl "https://denkchat.nl/api/chat/summary?sessionId=SESSION_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Response:

{
  "summary": "De bezoeker vroeg naar openingstijden en retourbeleid. De agent heeft beide vragen correct beantwoord. Sentiment: positief."
}

Agent configuratie ophalen

curl "https://denkchat.nl/api/embed/config?agentId=JOUW_AGENT_ID"

Response:

{
  "name": "Klantenservice Bot",
  "welcomeMessage": "Hoi! Hoe kan ik je helpen?",
  "primaryColor": "#E54D2E",
  "position": "bottom-right"
}

Rate limits

PlanBerichten/dag
Free50
Hobby500
Standard4.000
Pro15.000
Enterprise100.000

Bij overschrijding ontvang je een 429 Too Many Requests response.

On this page