API v2

Nutzen Sie die REST-API v2 für Agent-Verwaltung, Streaming-Chat, Unterhaltungen, Feedback, Quellen, Kontakte, Leads und Einstellungen.

API v2 ist eine strukturierte REST-API zur Verwaltung von Agenten und zum Erstellen individueller Chat-Erlebnisse. Sie ergänzt Agent-Verwaltung, Streaming-Chat, Unterhaltungsverlauf, Nachrichten-Feedback, Kontakte, Leads, Quellen, Einstellungen und Trainings-Endpunkte.

Für den API-Zugriff ist mindestens der Hobby-Tarif mit aktiver Abrechnung erforderlich.

Basis-URL

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

Authentifizierung

Außer beim Health-Check senden Sie Ihren Workspace-API-Schlüssel als Bearer-Token:

Authorization: Bearer YOUR_API_KEY

Erstellen und widerrufen Sie API-Schlüssel unter Einstellungen > API-Schlüssel.

Antwortformat

Die meisten erfolgreichen Antworten liefern entweder ein Ressourcenobjekt oder einen data-Umschlag zurück:

{
  "data": []
}

Listen-Endpunkte enthalten eine Cursor-Paginierung:

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

Fehler verwenden ein strukturiertes error-Objekt:

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

Jede v2-Antwort enthält einen x-request-id-Header. Geben Sie diesen Wert an, wenn Sie sich bezüglich einer API-Anfrage an den Support wenden.

Umfang der Unterhaltungen

Schreibgeschützte Unterhaltungs-Endpunkte verwenden standardmäßig source=api_v2. Setzen Sie source=widget, um Widget- und Playground-Unterhaltungen zurückzugeben; Playground-Datensätze werden mit der Quelle widget gespeichert. Setzen Sie source=all, um API-v2-, Widget- und Playground-Unterhaltungen zurückzugeben. Die Ergebnisse bleiben stets auf den Agenten des authentifizierten Kontos beschränkt. Ein ungültiger source-Wert oder mehr als ein source-Abfrageparameter führt zu 400 VALIDATION_INVALID_BODY. Chat-Fortsetzung, Wiederholung, Feedback, Nachrichtenauflistung und nutzerbezogene Abfragen bleiben auf API-v2-Unterhaltungen beschränkt.

Health-Check

GET /api/v2/health

Der Health-Check erfordert keine Authentifizierung.

Erfolg: 200 OK

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

timestamp ist der aktuelle Unix-Zeitstempel in Sekunden.

Chat

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

Anfrage:

{
  "message": "What plans do you offer?",
  "conversationId": "optional-existing-conversation-id",
  "userId": "optional-user-id",
  "stream": true
}
FieldRequiredNotes
messageJa1 bis 32.000 Zeichen.
conversationIdNeinSetzt eine API-v2-Unterhaltung fort. Unbekannte IDs führen zu 404.
userIdNeinStabile Endnutzer-ID zum Gruppieren von API-Unterhaltungen. Erlaubt sind Buchstaben, Zahlen, ., _ und -.
streamNeinStandardmäßig true. Setzen Sie false für eine einzelne JSON-Antwort.

Streaming-Antworten verwenden Server-Sent Events. Der Stream enthält die Ereignisse message-start, text-start, text-delta, text-end, message-metadata, finish und [DONE]. Bei einem Fehler im Stream oder im Completion-Hook wird ein error-Ereignis mit error.code gleich CHAT_STREAMING_ERROR gesendet; dieser nur für SSE geltende Protokollcode ist unabhängig vom strukturierten REST-Fehlerkatalog. message-metadata enthält bei erfolgreicher Persistierung die ID der Assistant-Nachricht sowie die Unterhaltungs-ID, die Nutzer-ID, den Abschlussgrund und die Nutzungsangaben. Der Wert messageId ist null, wenn keine Assistant-Nachricht persistiert wurde. Wenn die Antwort bei einer clientseitigen Aktion pausiert, sendet der Stream zusätzlich ein tool-call-Ereignis mit { "id", "name", "arguments" }; übermitteln Sie das Ergebnis an den Tool-Result-Endpunkt, um die Unterhaltung fortzusetzen — die Antwort auf diese Anfrage streamt die Fortsetzung.

Antworten ohne Streaming liefern:

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

Bei Antworten ohne Streaming sind data.id und metadata.userMessageId numerische Nachrichten-IDs, die als Strings serialisiert werden, oder null, wenn die zugehörige Nachricht nicht persistiert wurde. metadata.userId ist die übergebene bzw. gespeicherte Nutzer-ID oder null. pendingToolCall ist null, es sei denn, die Antwort wurde bei einem clientseitigen Tool-Aufruf pausiert; in diesem Fall enthält es { "id", "name", "arguments" } für den Tool-Result-Endpunkt.

Endpunktübersicht

MethodEndpointDescriptionReference
GET/api/v2/healthAPI-Status prüfen.Health-Check
GET/api/v2/agentsAgenten auflisten.Agenten und Einstellungen
POST/api/v2/agentsAgenten erstellen.Agenten und Einstellungen
GET/api/v2/agents/{agentId}Agenten abrufen.Agenten und Einstellungen
PATCH/api/v2/agents/{agentId}Namen oder URL des Agenten aktualisieren.Agenten und Einstellungen
DELETE/api/v2/agents/{agentId}Agenten löschen.Agenten und Einstellungen
POST/api/v2/agents/{agentId}/chatChat-Nachricht senden.Chat
GET/api/v2/agents/{agentId}/conversationsUnterhaltungen nach Quelle auflisten.Unterhaltungen
GET/api/v2/agents/{agentId}/conversations/exportUnterhaltungen mit Nachrichten exportieren.Unterhaltungen
GET/api/v2/agents/{agentId}/conversations/{conversationId}Eine Unterhaltung nach Quelle abrufen.Unterhaltungen
GET/api/v2/agents/{agentId}/conversations/{conversationId}/messagesNachrichten einer API-v2-Unterhaltung auflisten.Unterhaltungen
POST/api/v2/agents/{agentId}/conversations/{conversationId}/retryAntwort einer API-v2-Assistant-Nachricht wiederholen.Unterhaltungen
POST/api/v2/agents/{agentId}/conversations/{conversationId}/tool-resultClientseitiges Tool-Ergebnis übermitteln.Unterhaltungen
PATCH/api/v2/agents/{agentId}/conversations/{conversationId}/messages/{messageId}/feedbackFeedback zu einer Assistant-Nachricht setzen oder entfernen.Unterhaltungen
GET/api/v2/agents/{agentId}/users/{userId}/conversationsAPI-v2-Unterhaltungen eines Endnutzers auflisten.Unterhaltungen
GET/api/v2/agents/{agentId}/sourcesTrainingsquellen auflisten.Quellen und Training
POST/api/v2/agents/{agentId}/sources/textTextquelle hinzufügen.Quellen und Training
POST/api/v2/agents/{agentId}/sources/qnaQ&A-Quelle hinzufügen.Quellen und Training
POST/api/v2/agents/{agentId}/sources/urlURL-Quelle hinzufügen oder neu trainieren.Quellen und Training
POST/api/v2/agents/{agentId}/sources/file/upload-urlSignierte URLs für direkte Datei-Uploads erstellen.Quellen und Training
POST/api/v2/agents/{agentId}/sources/fileHochgeladene Dateien registrieren und Verarbeitung starten.Quellen und Training
DELETE/api/v2/agents/{agentId}/sources/{documentId}Quelle löschen.Quellen und Training
GET/api/v2/agents/{agentId}/contactsKontakte auflisten.Kontakte
POST/api/v2/agents/{agentId}/contactsEinen Kontakt anhand der externen ID erstellen oder aktualisieren.Kontakte
POST/api/v2/agents/{agentId}/contacts/importKontakte im Bulk anlegen oder aktualisieren.Kontakte
GET/api/v2/agents/{agentId}/leadsErfasste Leads auflisten.Kontakte und Leads
GET/PATCH/api/v2/agents/{agentId}/settings/aiKI-Einstellungen lesen oder aktualisieren.Agenten und Einstellungen
GET/PATCH/api/v2/agents/{agentId}/settings/designDesign-Einstellungen lesen oder aktualisieren.Agenten und Einstellungen
GET/PATCH/api/v2/agents/{agentId}/settings/securitySicherheitseinstellungen lesen oder aktualisieren.Agenten und Einstellungen
GET/PATCH/api/v2/agents/{agentId}/settings/notificationsBenachrichtigungseinstellungen lesen oder aktualisieren.Agenten und Einstellungen
GET/PATCH/api/v2/agents/{agentId}/settings/trainingTrainingseinstellungen lesen oder aktualisieren.Agenten und Einstellungen
GET/api/v2/agents/{agentId}/channels/instagramInstagram-Verbindung, Automatisierungen und Unterhaltungsstarter abrufen.Instagram-Kanal
GET/PATCH/api/v2/agents/{agentId}/channels/instagram/automations/{key}Eine Instagram-Automatisierung lesen oder aktualisieren.Instagram-Kanal
GET/PATCH/api/v2/agents/{agentId}/channels/instagram/conversation-startersInstagram-Unterhaltungsstarter lesen oder aktualisieren.Instagram-Kanal
GET/api/v2/agents/{agentId}/trainTrainingsstatus abrufen.Quellen und Training
POST/api/v2/agents/{agentId}/trainNeutraining von Web-Quellen starten.Quellen und Training

Feedback

Mit Feedback markieren Sie API-v2-Assistant-Nachrichten als positive, negative oder null. Das Anfrageschema, die Antwort und das Fehlerverhalten finden Sie unter Unterhaltungen, Nachrichten und Feedback.

Paginierung

Behandeln Sie Cursor als von der API zurückgegebene, undurchsichtige Tokens. Übergeben Sie den Wert pagination.cursor bei der nächsten Anfrage unverändert; konstruieren oder dekodieren Sie ihn nicht selbst.

QueryNotes
limitStandardmäßig 20. Muss eine Ganzzahl von 1 bis 100 sein, sofern ein Endpunkt kein niedrigeres Maximum dokumentiert; der Unterhaltungsexport hat ein Maximum von 20.
cursorUndurchsichtiger Cursor aus der vorherigen Seite. Ungültige Cursor führen zu 400 VALIDATION_INVALID_BODY.

Kontakte akzeptieren zusätzlich search. Leads akzeptieren die inklusiven ISO-8601-Datumsfilter createdAfter und createdBefore. Quellen akzeptieren sourceType mit web_crawl, file_upload, text_snippet oder qna_entry.

Cursor-Formate sind ein internes Implementierungsdetail. Clients müssen jeden Cursor als undurchsichtig behandeln und ihn unverändert übergeben, ohne ihn zu konstruieren oder zu dekodieren.

Häufige Fehler

CodeMeaning
AUTH_INVALID_API_KEYDer Bearer-API-Schlüssel kann nicht validiert werden.
SUBSCRIPTION_PLAN_REQUIREDDer Workspace-Tarif enthält keinen API-Zugriff.
AGENT_NOT_FOUNDDer Agent existiert nicht oder gehört nicht zum Konto des API-Schlüssels.
VALIDATION_INVALID_BODYEin Anfragetext, Pfadwert, Query-Parameter, Limit oder Cursor hat die Validierung nicht bestanden.

Den vollständigen API-v2-Fehlerkatalog mit allen 27 deklarierten Codes, HTTP-Status, Auslösern und reservierten Codes finden Sie dort.

Referenz

Nächste Schritte