API v2

Gebruik de v2 REST API voor agentbeheer, streaming chat, gesprekken, feedback, bronnen, contacten, leads en instellingen.

API v2 is een gestructureerde REST API voor het beheren van agents en het bouwen van eigen chatervaringen. Het voegt agentbeheer, streaming chat, gespreksgeschiedenis, berichtfeedback, contacten, leads, bronnen, instellingen en trainingsendpoints toe.

Voor API-toegang heb je minimaal het Hobby-abonnement nodig, met actieve facturering.

Basis-URL

https://your-domain.com/api/v2

Authenticatie

Behalve voor de statuscontrole stuur je je werkruimte-API-sleutel mee als bearer-token:

Authorization: Bearer YOUR_API_KEY

Maak of trek API-sleutels in via Instellingen > API-sleutels.

Responsformaat

De meeste succesvolle responses geven een resource-object of een data-envelop terug:

{
  "data": []
}

Lijstendpoints bevatten cursorpaginering:

{
  "data": [],
  "pagination": {
    "cursor": null,
    "hasMore": false,
    "total": 0
  }
}

Fouten gebruiken een gestructureerd error-object:

{
  "error": {
    "code": "VALIDATION_INVALID_BODY",
    "message": "Invalid request body"
  }
}

Elke v2-respons bevat een x-request-id-header. Vermeld deze waarde wanneer je contact opneemt met support over een API-aanvraag.

Bereik van gesprekken

Alleen-lezen gespreksendpoints gebruiken standaard source=api_v2. Zet source=widget om widget- en Playground-gesprekken terug te geven; Playground-rijen worden opgeslagen met de bron widget. Zet source=all om API v2-, widget- en Playground-gesprekken terug te geven. Resultaten blijven altijd beperkt tot de agent van het geauthenticeerde account. Een ongeldige source-waarde of meer dan één source-queryparameter geeft 400 VALIDATION_INVALID_BODY terug. Chat-vervolg, retry, feedback, berichtenlijsten en per-gebruikersreads blijven beperkt tot API v2-gesprekken.

Health-check

GET /api/v2/health

De health-check vereist geen authenticatie.

Succes: 200 OK

{
  "status": "ok",
  "timestamp": 1784332800
}

timestamp is de huidige Unix-tijdstempel in seconden.

Chat

POST /api/v2/agents/{agentId}/chat

Aanvraag:

{
  "message": "What plans do you offer?",
  "conversationId": "optional-existing-conversation-id",
  "userId": "optional-user-id",
  "stream": true
}
VeldVereistOpmerkingen
messageJa1 tot 32.000 tekens.
conversationIdNeeZet een bestaand API v2-gesprek voort. Onbekende ID's geven 404 terug.
userIdNeeStabiele eindgebruikers-ID om API-gesprekken te groeperen. Letters, cijfers, ., _ en - zijn toegestaan.
streamNeeStandaard true. Zet op false voor één JSON-respons.

Streamingresponses gebruiken Server-Sent Events. De stream bevat de events message-start, text-start, text-delta, text-end, message-metadata, finish en [DONE]. Bij een fout in de stream of in de voltooiingshook wordt een error-event uitgezonden met error.code op CHAT_STREAMING_ERROR; deze SSE-only protocolcode staat los van de gestructureerde REST-foutcatalogus. message-metadata bevat het assistant-bericht-ID wanneer opslag lukt, plus het gespreks-ID, gebruikers-ID, finish reason en gebruik. messageId is null wanneer er geen assistant-bericht is opgeslagen. Wanneer het antwoord pauzeert op een client-side actie, zendt de stream ook een tool-call-event uit met { "id", "name", "arguments" }; dien het resultaat in bij het tool-result-endpoint om het gesprek te hervatten — de response op dat verzoek streamt het vervolg.

Niet-streamingresponses geven het volgende terug:

{
  "data": {
    "id": "123",
    "role": "assistant",
    "parts": [{ "type": "text", "text": "..." }],
    "pendingToolCall": null,
    "metadata": {
      "userMessageId": "122",
      "conversationId": "abc123",
      "userId": "user_123",
      "finishReason": "stop",
      "usage": { "credits": 1 }
    }
  }
}

De waarden van data.id en metadata.userMessageId zijn numerieke bericht-ID's, geserialiseerd als strings, of null wanneer het bijbehorende bericht niet is opgeslagen. metadata.userId is het meegegeven/opgeslagen gebruikers-ID, of null. pendingToolCall is null, tenzij het antwoord is gepauzeerd op een client-side tool-aanroep; in dat geval bevat het { "id", "name", "arguments" } voor het tool-result-endpoint.

Overzicht van endpoints

MethodeEndpointOmschrijvingReferentie
GET/api/v2/healthAPI-status controleren.Health-check
GET/api/v2/agentsAgents weergeven.Agents en instellingen
POST/api/v2/agentsEen agent aanmaken.Agents en instellingen
GET/api/v2/agents/{agentId}Een agent ophalen.Agents en instellingen
PATCH/api/v2/agents/{agentId}Naam of URL van agent bijwerken.Agents en instellingen
DELETE/api/v2/agents/{agentId}Een agent verwijderen.Agents en instellingen
POST/api/v2/agents/{agentId}/chatEen chatbericht versturen.Chat
GET/api/v2/agents/{agentId}/conversationsGesprekken per bron weergeven.Gesprekken
GET/api/v2/agents/{agentId}/conversations/exportGesprekken met berichten exporteren.Gesprekken
GET/api/v2/agents/{agentId}/conversations/{conversationId}Eén gesprek per bron ophalen.Gesprekken
GET/api/v2/agents/{agentId}/conversations/{conversationId}/messagesBerichten in een API v2-gesprek weergeven.Gesprekken
POST/api/v2/agents/{agentId}/conversations/{conversationId}/retryEen API v2-assistantantwoord opnieuw proberen.Gesprekken
POST/api/v2/agents/{agentId}/conversations/{conversationId}/tool-resultEen client-side toolresultaat indienen.Gesprekken
PATCH/api/v2/agents/{agentId}/conversations/{conversationId}/messages/{messageId}/feedbackFeedback op een assistant-bericht instellen of wissen.Gesprekken
GET/api/v2/agents/{agentId}/users/{userId}/conversationsAPI v2-gesprekken voor een eindgebruiker weergeven.Gesprekken
GET/api/v2/agents/{agentId}/sourcesTrainingsbronnen weergeven.Bronnen en training
POST/api/v2/agents/{agentId}/sources/textEen tekstbron toevoegen.Bronnen en training
POST/api/v2/agents/{agentId}/sources/qnaEen Q&A-bron toevoegen.Bronnen en training
POST/api/v2/agents/{agentId}/sources/urlEén URL-bron toevoegen of opnieuw trainen.Bronnen en training
POST/api/v2/agents/{agentId}/sources/file/upload-urlOndertekende URL's voor directe bestandsuploads aanmaken.Bronnen en training
POST/api/v2/agents/{agentId}/sources/fileGeüploade bestanden registreren en verwerking starten.Bronnen en training
DELETE/api/v2/agents/{agentId}/sources/{documentId}Een bron verwijderen.Bronnen en training
GET/api/v2/agents/{agentId}/contactsContacten weergeven.Contacten
POST/api/v2/agents/{agentId}/contactsEén contact aanmaken of bijwerken op basis van extern ID.Contacten
POST/api/v2/agents/{agentId}/contacts/importContacten in bulk aanmaken of bijwerken.Contacten
GET/api/v2/agents/{agentId}/leadsVastgelegde leads weergeven.Contacten en leads
GET/PATCH/api/v2/agents/{agentId}/settings/aiAI-instellingen lezen of bijwerken.Agents en instellingen
GET/PATCH/api/v2/agents/{agentId}/settings/designDesigninstellingen lezen of bijwerken.Agents en instellingen
GET/PATCH/api/v2/agents/{agentId}/settings/securityBeveiligingsinstellingen lezen of bijwerken.Agents en instellingen
GET/PATCH/api/v2/agents/{agentId}/settings/notificationsMeldingsinstellingen lezen of bijwerken.Agents en instellingen
GET/PATCH/api/v2/agents/{agentId}/settings/trainingTrainingsinstellingen lezen of bijwerken.Agents en instellingen
GET/api/v2/agents/{agentId}/channels/instagramDe Instagram-verbinding, automatiseringen en gespreksstarters ophalen.Instagram-kanaal
GET/PATCH/api/v2/agents/{agentId}/channels/instagram/automations/{key}Eén Instagram-automatisering lezen of bijwerken.Instagram-kanaal
GET/PATCH/api/v2/agents/{agentId}/channels/instagram/conversation-startersInstagram-gespreksstarters lezen of bijwerken.Instagram-kanaal
GET/api/v2/agents/{agentId}/trainTrainingsstatus ophalen.Bronnen en training
POST/api/v2/agents/{agentId}/trainTraining van webbronnen starten.Bronnen en training

Feedback

Gebruik feedback om API v2-assistantberichten te markeren als positive, negative, of null. Zie Gesprekken, berichten en feedback voor het aanvraagschema, de respons en het foutgedrag.

Paginering

Behandel cursors als ondoorzichtige tokens die door de API worden geretourneerd. Geef de waarde van pagination.cursor ongewijzigd door bij de volgende aanvraag; construeer of decodeer deze niet.

QueryOpmerkingen
limitStandaard 20. Moet een geheel getal zijn van 1 tot 100, tenzij een endpoint een lager maximum documenteert; het exporteren van gesprekken heeft een maximum van 20.
cursorOngeldige cursors geven 400 VALIDATION_INVALID_BODY terug.

Contacten accepteren ook search. Leads accepteren de inclusieve ISO 8601-datumfilters createdAfter en createdBefore. Bronnen accepteren sourceType met web_crawl, file_upload, text_snippet, of qna_entry.

Cursorformaten zijn een intern implementatiedetail. Clients moeten elke cursor als ondoorzichtig behandelen en ongewijzigd doorgeven, zonder deze te construeren of te decoderen.

Veelvoorkomende fouten

CodeBetekenis
AUTH_INVALID_API_KEYDe bearer-API-sleutel kan niet worden gevalideerd.
SUBSCRIPTION_PLAN_REQUIREDHet werkruimteabonnement bevat geen API-toegang.
AGENT_NOT_FOUNDDe agent bestaat niet of hoort niet bij het account van de API-sleutel.
VALIDATION_INVALID_BODYEen aanvraagtekst, padwaarde, queryparameter, limiet of cursor voldoet niet aan de validatie.

Zie de volledige API v2-foutcatalogus voor alle 27 gedeclareerde codes, HTTP-statussen, triggers en gereserveerde codes.

Referentie

Volgende stappen