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
}
| Veld | Vereist | Opmerkingen |
|---|---|---|
message | Ja | 1 tot 32.000 tekens. |
conversationId | Nee | Zet een bestaand API v2-gesprek voort. Onbekende ID's geven 404 terug. |
userId | Nee | Stabiele eindgebruikers-ID om API-gesprekken te groeperen. Letters, cijfers, ., _ en - zijn toegestaan. |
stream | Nee | Standaard 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
| Methode | Endpoint | Omschrijving | Referentie |
|---|---|---|---|
| GET | /api/v2/health | API-status controleren. | Health-check |
| GET | /api/v2/agents | Agents weergeven. | Agents en instellingen |
| POST | /api/v2/agents | Een 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}/chat | Een chatbericht versturen. | Chat |
| GET | /api/v2/agents/{agentId}/conversations | Gesprekken per bron weergeven. | Gesprekken |
| GET | /api/v2/agents/{agentId}/conversations/export | Gesprekken 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}/messages | Berichten in een API v2-gesprek weergeven. | Gesprekken |
| POST | /api/v2/agents/{agentId}/conversations/{conversationId}/retry | Een API v2-assistantantwoord opnieuw proberen. | Gesprekken |
| POST | /api/v2/agents/{agentId}/conversations/{conversationId}/tool-result | Een client-side toolresultaat indienen. | Gesprekken |
| PATCH | /api/v2/agents/{agentId}/conversations/{conversationId}/messages/{messageId}/feedback | Feedback op een assistant-bericht instellen of wissen. | Gesprekken |
| GET | /api/v2/agents/{agentId}/users/{userId}/conversations | API v2-gesprekken voor een eindgebruiker weergeven. | Gesprekken |
| GET | /api/v2/agents/{agentId}/sources | Trainingsbronnen weergeven. | Bronnen en training |
| POST | /api/v2/agents/{agentId}/sources/text | Een tekstbron toevoegen. | Bronnen en training |
| POST | /api/v2/agents/{agentId}/sources/qna | Een Q&A-bron toevoegen. | Bronnen en training |
| POST | /api/v2/agents/{agentId}/sources/url | Eén URL-bron toevoegen of opnieuw trainen. | Bronnen en training |
| POST | /api/v2/agents/{agentId}/sources/file/upload-url | Ondertekende URL's voor directe bestandsuploads aanmaken. | Bronnen en training |
| POST | /api/v2/agents/{agentId}/sources/file | Geü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}/contacts | Contacten weergeven. | Contacten |
| POST | /api/v2/agents/{agentId}/contacts | Eén contact aanmaken of bijwerken op basis van extern ID. | Contacten |
| POST | /api/v2/agents/{agentId}/contacts/import | Contacten in bulk aanmaken of bijwerken. | Contacten |
| GET | /api/v2/agents/{agentId}/leads | Vastgelegde leads weergeven. | Contacten en leads |
| GET/PATCH | /api/v2/agents/{agentId}/settings/ai | AI-instellingen lezen of bijwerken. | Agents en instellingen |
| GET/PATCH | /api/v2/agents/{agentId}/settings/design | Designinstellingen lezen of bijwerken. | Agents en instellingen |
| GET/PATCH | /api/v2/agents/{agentId}/settings/security | Beveiligingsinstellingen lezen of bijwerken. | Agents en instellingen |
| GET/PATCH | /api/v2/agents/{agentId}/settings/notifications | Meldingsinstellingen lezen of bijwerken. | Agents en instellingen |
| GET/PATCH | /api/v2/agents/{agentId}/settings/training | Trainingsinstellingen lezen of bijwerken. | Agents en instellingen |
| GET | /api/v2/agents/{agentId}/channels/instagram | De 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-starters | Instagram-gespreksstarters lezen of bijwerken. | Instagram-kanaal |
| GET | /api/v2/agents/{agentId}/train | Trainingsstatus ophalen. | Bronnen en training |
| POST | /api/v2/agents/{agentId}/train | Training 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.
| Query | Opmerkingen |
|---|---|
limit | Standaard 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. |
cursor | Ongeldige 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
| Code | Betekenis |
|---|---|
AUTH_INVALID_API_KEY | De bearer-API-sleutel kan niet worden gevalideerd. |
SUBSCRIPTION_PLAN_REQUIRED | Het werkruimteabonnement bevat geen API-toegang. |
AGENT_NOT_FOUND | De agent bestaat niet of hoort niet bij het account van de API-sleutel. |
VALIDATION_INVALID_BODY | Een 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
- Foutcatalogus
- Agents en instellingen
- Gesprekken, berichten, retries en feedback
- Bronnen en training
- Contacten en leads
- Instagram-kanaal