API v2-agents en -instellingen

Maak en beheer agents en lees of wijzig vervolgens hun instellingen voor AI, ontwerp, beveiliging, meldingen en training.

Gebruik deze endpoints om agents en hun instellingen te beheren. Elk endpoint op deze pagina vereist Authorization: Bearer YOUR_API_KEY. Routes die aan een agent zijn gekoppeld, geven 404 AGENT_NOT_FOUND terug als de agent niet bestaat of geen eigendom is van het account van de API-sleutel.

Geslaagde lijstresponses gebruiken een envelop met data en pagination. Responses met agentdetails en -instellingen zijn objecten zonder data-envelop. Zie de foutcatalogus voor gedeelde authenticatie- en validatiefouten.

Agentobject

VeldTypeOpmerkingen
idstringAgent-ID.
namestringNaam van de agent.
urlstring of nullBijbehorende website-URL.
createdAtinteger of nullUnix-tijdstempel in seconden.
settingsobjectOpgeslagen agentinstellingen.
{
  "id": "955f28f1-8515-40bb-802c-f3f730bf0343",
  "name": "Support Agent",
  "url": "https://example.com",
  "createdAt": 1784332800,
  "settings": {
    "ai": {
      "model": "openai/gpt-5.6-luna",
      "instructionsPreset": "ai-chatbot",
      "instructionsPrompt": "Be helpful, accurate, and conversational."
    },
    "title": "AI Assistant",
    "branding": {
      "appearance": "Light",
      "bubbleColor": "#e9e9e7",
      "primaryColor": "#0a0a0a",
      "primaryColorHeader": false
    },
    "position": "bottom-right",
    "conversation": {
      "defaultPrompts": {
        "enabled": false,
        "prompts": [],
        "keepShowing": false
      },
      "initialMessages": ["Hey! What can I help with?"],
      "messagePlaceholder": "Ask our chatbot a question...",
      "showInitialMessageBubble": true
    },
    "features": {
      "attachments": true
    },
    "notification": {
      "dailyConversations": true,
      "dailyEmails": true,
      "quotaAlerts": true
    }
  }
}

Agents weergeven

Pad: /api/v2/agents

GET /api/v2/agents

Authenticatie: Bearer API-sleutel.

QueryVereistBeperkingen
limitNeeGeheel getal van 1 tot en met 100; standaard 20.
cursorNeeOndoorzichtige cursor, teruggegeven door de voorgaande pagina. Geef deze ongewijzigd door.

Succes: 200 OK

curl 'https://your-domain.com/api/v2/agents?limit=20' \
  -H 'Authorization: Bearer YOUR_API_KEY'
{
  "data": [
    {
      "id": "955f28f1-8515-40bb-802c-f3f730bf0343",
      "name": "Support Agent",
      "url": "https://example.com/",
      "createdAt": 1784332800,
      "settings": {}
    }
  ],
  "pagination": {
    "cursor": null,
    "hasMore": false,
    "total": 1
  }
}

Ongeldige limieten of cursors geven 400 VALIDATION_INVALID_BODY terug.

Een agent aanmaken

POST /api/v2/agents

Authenticatie: Bearer API-sleutel.

BodyveldVereistType en beperkingen
nameJaString, getrimd, 1 tot en met 255 tekens.
urlNeeGeldige URL-string, een lege string, of null. Leeg, null en weglaten worden allemaal opgeslagen als null.
curl -X POST 'https://your-domain.com/api/v2/agents' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Support Agent","url":"https://example.com"}'

Succes: 201 Created, met een agentobject zonder envelop.

Een ongeldige body geeft 400 VALIDATION_INVALID_BODY terug. Als het agenttegoed van de werkruimte wordt overschreden, geeft de aanvraag 403 QUOTA_CHATBOT_LIMIT terug.

Een agent ophalen

Pad: /api/v2/agents/{agentId}

GET /api/v2/agents/{agentId}

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

Succes: 200 OK, met een agentobject zonder envelop.

curl 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Een agent bijwerken

PATCH /api/v2/agents/{agentId}

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

Er is minimaal één veld vereist.

BodyveldVereistType en beperkingen
nameNeeString, getrimd, 1 tot en met 255 tekens.
urlNeeGeldige URL-string, een lege string, of null. Een lege string en null wissen de URL.
curl -X PATCH 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"Customer Support"}'

Succes: 200 OK, met het bijgewerkte agentobject zonder envelop. Ongeldige of lege body's geven 400 VALIDATION_INVALID_BODY terug.

Een agent verwijderen

DELETE /api/v2/agents/{agentId}

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

curl -X DELETE 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Succes: 200 OK

{
  "deleted": true
}

Schema voor AI-instellingen

Pad: /api/v2/agents/{agentId}/settings/ai

Voor het bijwerken van AI-instellingen is minimaal één veld vereist.

BodyveldVereistType en beperkingen
modelNeeEen van openai/gpt-5.6-sol, openai/gpt-5.6-terra, openai/gpt-5.6-luna, anthropic/claude-opus-5, anthropic/claude-sonnet-5, anthropic/claude-haiku-4-5, google/gemini-3.7-flash, of google/gemini-3.1-pro-preview.
instructionsPresetNeeEen van custom, ai-chatbot, customer-support, sales-agent, language-tutor, coding-expert, of life-coach.
instructionsPromptNeeString.

Voor achterwaartse compatibiliteit accepteert model ook de uitgefaseerde slugs openai/gpt-5.5, openai/gpt-5.4, openai/gpt-5.4-mini, openai/gpt-5.4-nano, anthropic/claude-opus-4.7, anthropic/claude-opus-4-6, anthropic/claude-sonnet-4-6, google/gemini-3-flash-preview en google/gemini-3.6-flash. Bestaande agents kunnen deze waarden nog steeds opgeslagen hebben (en GET kan ze nog steeds teruggeven), zodat een rondje GET→PATCH altijd geldig is — maar ze worden niet meer aangeboden in de modelkiezer van het dashboard, en nieuwe integraties moeten de huidige catalogus hierboven gebruiken.

AI-instellingen ophalen

GET /api/v2/agents/{agentId}/settings/ai

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

Succes: 200 OK. Het object met AI-instellingen wordt zonder envelop geretourneerd; niet-ingestelde AI-instellingen leveren {} op.

{
  "model": "openai/gpt-5.6-luna",
  "instructionsPreset": "customer-support",
  "instructionsPrompt": "Answer using the support documentation."
}

AI-instellingen bijwerken

PATCH /api/v2/agents/{agentId}/settings/ai

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

curl -X PATCH 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343/settings/ai' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model":"openai/gpt-5.6-luna","instructionsPreset":"customer-support"}'

Succes: 200 OK, met het bijgewerkte object met AI-instellingen zonder envelop. Een niet-beschikbaar model geeft 403 CHAT_MODEL_NOT_ALLOWED terug; ongeldige of lege body's geven 400 VALIDATION_INVALID_BODY terug.

Schema voor ontwerpinstellingen

Pad: /api/v2/agents/{agentId}/settings/design

Voor het bijwerken van ontwerpinstellingen is minimaal één veld vereist.

BodyveldVereistType en beperkingen
titleNeeString.
languageNeeOndersteunde taalcode van de widget, of null. Regionale aliassen zoals en-US, pt-BR en zh-Hant worden genormaliseerd naar canonieke widgettaalcodes (en, pt en zh-tw); niet-ondersteunde waarden worden geweigerd, terwijl null de overschrijving wist en automatische taaldetectie herstelt.
appearanceNeeLight of Dark.
primaryColorNeeString.
bubbleColorNeeString.
primaryColorHeaderNeeBoolean.
positionNeebottom-left of bottom-right.
showInitialMessageBubbleNeeBoolean.
initialMessagesNeeArray van maximaal 5 strings, elk getrimd en maximaal 140 tekens; of een string met regels gescheiden door een nieuwe regel, met maximaal 5 niet-lege, getrimde regels van elk maximaal 140 tekens.
messagePlaceholderNeeGetrimde string, maximaal 100 tekens.
bubbleIconUrlNeeGeldige URL of null.
profilePictureUrlNeeGeldige URL of null.
hideBrandingNeeBoolean. Wordt alleen als true opgeslagen wanneer het abonnement van de werkruimte branding mag verwijderen.
keepShowingNeeBoolean die bepaalt of standaardprompts zichtbaar blijven.
promptsNeeArray van maximaal 4 strings, elk getrimd en maximaal 80 tekens. Lege prompts worden verwijderd.

Ontwerpinstellingen ophalen

GET /api/v2/agents/{agentId}/settings/design

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

Succes: 200 OK. De response is een object zonder envelop met de huidige groepen title, language, position, branding en conversation. Niet-ingestelde optionele sleutels worden weggelaten.

{
  "title": "AI Assistant",
  "language": "en",
  "position": "bottom-right",
  "branding": {
    "appearance": "Light",
    "bubbleColor": "#e9e9e7",
    "primaryColor": "#0a0a0a",
    "primaryColorHeader": false
  },
  "conversation": {
    "defaultPrompts": {
      "enabled": false,
      "prompts": [],
      "keepShowing": false
    },
    "initialMessages": ["Hey! What can I help with?"],
    "messagePlaceholder": "Ask our chatbot a question...",
    "showInitialMessageBubble": true
  }
}

Ontwerpinstellingen bijwerken

PATCH /api/v2/agents/{agentId}/settings/design

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

curl -X PATCH 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343/settings/design' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"title":"Support","language":"en-US","appearance":"Dark","prompts":["Track my order"]}'

Succes: 200 OK. Anders dan bij de GET-response voor ontwerp geeft PATCH het volledige instellingenobject zonder envelop terug. Dit kan, indien ingesteld, de volgende velden en groepen op het hoogste niveau bevatten: title, language, position, branding, ai, conversation, security, guardrails, notification, training, channels, en identityVerification. Taalcode-aliassen worden in canonieke vorm teruggegeven en opgeslagen. Ongeldige of lege body's geven 400 VALIDATION_INVALID_BODY terug.

Schema voor beveiligingsinstellingen

Pad: /api/v2/agents/{agentId}/settings/security

Voor het bijwerken van beveiligingsinstellingen is minimaal één veld op het hoogste niveau vereist.

BodyveldVereistType en beperkingen
isPrivateNeeBoolean.
rateLimitNeeObject. Als dit is opgegeven, zijn alle drie de onderstaande geneste velden vereist.
rateLimit.maxMessagesMet rateLimitGetal van 1 tot en met 100.
rateLimit.windowSecondsMet rateLimitGetal van 10 tot en met 3.600.
rateLimit.limitMessageMet rateLimitString van 1 tot en met 500 tekens.
allowedDomainsNeeObject met verplichte boolean enabled en verplichte array domains.
allowedDomains.domains[]Met allowedDomainsNiet-lege domeinexpressie in CSP-stijl, zoals https://example.com, https://*.example.com, example.com, of een waarde met een optionele poort/pad. Wanneer enabled op true staat, moet de array minimaal één domein bevatten.

Beveiligingsinstellingen ophalen

GET /api/v2/agents/{agentId}/settings/security

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

Succes: 200 OK. Het beveiligingsobject wordt zonder envelop geretourneerd; niet-ingestelde beveiligingsinstellingen leveren {} op.

{
  "isPrivate": false,
  "rateLimit": {
    "maxMessages": 20,
    "windowSeconds": 240,
    "limitMessage": "Too many messages in a row"
  },
  "allowedDomains": {
    "enabled": true,
    "domains": ["https://example.com"]
  }
}

Beveiligingsinstellingen bijwerken

PATCH /api/v2/agents/{agentId}/settings/security

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

curl -X PATCH 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343/settings/security' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"allowedDomains":{"enabled":true,"domains":["https://example.com"]}}'

Succes: 200 OK, met het bijgewerkte beveiligingsobject zonder envelop. Ongeldige of lege body's geven 400 VALIDATION_INVALID_BODY terug.

Schema voor meldingsinstellingen

Pad: /api/v2/agents/{agentId}/settings/notifications

Er is minimaal één veld vereist.

BodyveldVereistType en beperkingen
dailyConversationsNeeBoolean.
dailyEmailsNeeBoolean.
quotaAlertsNeeBoolean.

dailyConversations gedraagt zich als false (uitgeschakeld) wanneer weggelaten; dailyEmails en quotaAlerts gedragen zich als true (ingeschakeld) wanneer weggelaten. Het GET-antwoord bevat alleen expliciet ingestelde velden.

Meldingsinstellingen ophalen

GET /api/v2/agents/{agentId}/settings/notifications

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

Succes: 200 OK. Het meldingsobject wordt zonder envelop geretourneerd; niet-ingestelde meldingsinstellingen leveren {} op.

{
  "dailyConversations": true,
  "dailyEmails": true,
  "quotaAlerts": true
}

Meldingsinstellingen bijwerken

PATCH /api/v2/agents/{agentId}/settings/notifications

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

curl -X PATCH 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343/settings/notifications' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"dailyConversations":false}'

Succes: 200 OK, met het bijgewerkte meldingsobject zonder envelop. Ongeldige of lege body's geven 400 VALIDATION_INVALID_BODY terug.

Schema voor trainingsinstellingen

Pad: /api/v2/agents/{agentId}/settings/training

BodyveldVereistType en beperkingen
autoRetrainEnabledJaBoolean.

Trainingsinstellingen ophalen

GET /api/v2/agents/{agentId}/settings/training

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

Succes: 200 OK. Het object met trainingsinstellingen wordt zonder envelop geretourneerd; niet-ingestelde trainingsinstellingen leveren {} op.

{
  "autoRetrainEnabled": true
}

Trainingsinstellingen bijwerken

PATCH /api/v2/agents/{agentId}/settings/training

Authenticatie: Bearer API-sleutel met toegang tot {agentId}.

curl -X PATCH 'https://your-domain.com/api/v2/agents/955f28f1-8515-40bb-802c-f3f730bf0343/settings/training' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"autoRetrainEnabled":true}'

Succes: 200 OK, met het bijgewerkte object met trainingsinstellingen zonder envelop. Automatisch opnieuw trainen inschakelen zonder toegang via het abonnement geeft 403 SUBSCRIPTION_API_RESTRICTED_PLAN terug; ongeldige body's geven 400 VALIDATION_INVALID_BODY terug.

Gerelateerde referentie