Zum Inhalt springen

REST-API-Referenz für die Quickchat-AI-Plattform — Authentifizierung, Basis-URL, Rate-Limits, Paginierung und Fehlerbehandlung.

Quickchat AI stellt eine REST-API für den programmatischen Zugriff auf die Konfiguration Ihres KI-Agenten, die Wissensdatenbank, Konversationen, AI Actions und mehr bereit.

Alle API-Endpunkte verwenden Bearer-Token-Authentifizierung. Fügen Sie Ihren API-Token im Authorization-Header jeder Anfrage ein:

Authorization: Bearer <API_TOKEN>

Tokens werden im Quickchat Dashboard unter External Apps > API erstellt. Jeder Token ist ein JWT, das Ihre scenario_id enthält, sodass kein zusätzlicher Identifier-Header erforderlich ist.

  • Token-Gültigkeit: 52 Wochen ab Erstellung
  • Tokens können jederzeit über das Dashboard widerrufen werden
  • Jeder Token ist auf einen einzelnen KI-Agenten (Szenario) beschränkt
  • Das Erstellen von Tokens erfordert den Business-Tarif oder höher; in niedrigeren Tarifen ist die Option deaktiviert und der Endpunkt liefert 402 Payment Required

API-Tokens werden mit einem von zwei Scopes erstellt:

ScopeAccess LevelDescription
read_allRead-onlyKann alle Ressourcen lesen, aber nicht erstellen, aktualisieren oder löschen
write_allRead + WriteVollzugriff auf alle Endpunkte, einschließlich Schreiboperationen
  • Tokens wird beim Erstellen im Dashboard unter External Apps > API ein Scope zugewiesen
  • Der Scope write_all umfasst automatisch alle read_all-Berechtigungen
  • Die Verwendung eines read_all-Tokens auf einem Schreib-Endpunkt liefert 403 mit "Insufficient token scope. Required: write_all"

Scope-Anforderungen nach Endpunktgruppe:

Endpoint GroupRead OperationsWrite Operations
Chatbot Settingsread_allwrite_all
Knowledge Base Settingsread_allwrite_all
Articlesread_allwrite_all
Article Language URLsread_allwrite_all
Tagsread_all
File Uploadwrite_all
Import External Contentwrite_all
Intercom Knowledge Baseread_allwrite_all
Widget Configurationread_allwrite_all
Conversationsread_all
Conversation Metadataread_allwrite_all
Handoff Configurationread_allwrite_all
Conversation Ratingread_allwrite_all
AI Actionsread_allwrite_all
Endpoint GroupBase URL
Knowledge Base, AI Actions, File Upload, Import, Chatbot Settings, Widget, Handoff, Conversation Ratinghttps://app.quickchat.ai/v1/api/
Conversationshttps://app.quickchat.ai/v1/api_core/
Realtime Chathttps://app.quickchat.ai/chat

Rate-Limits werden pro Token und pro Endpunkt angewendet.

TierLimitApplies To
READ120 Anfragen/MinGET- und List-Operationen
WRITE60 Anfragen/MinPOST, PATCH, PUT, DELETE
HEAVY20 Anfragen/MinDatei-Uploads, Importe, Scraping

Wenn ein Rate-Limit überschritten wird, gibt die API HTTP 429 Too Many Requests zurück.

Quickchat AI sendet keine ausgehenden Webhooks. Es gibt keine Möglichkeit, ein Ereignis zu abonnieren und sich von uns per POST an Ihren Endpunkt benachrichtigen zu lassen, wenn eine Nachricht eintrifft, eine Konversation übergeben wird oder eine Konversation geschlossen wird.

Um Daten in dem Moment herauszubekommen, in dem etwas passiert, nutzen Sie stattdessen eine dieser Optionen:

  • KI‑Aktionen: Die KI ruft mitten in der Konversation Ihre API auf. Das kommt einem Webhook am nächsten und funktioniert per Push, nicht per Polling: Ihr Endpunkt wird angesprochen, während die Konversation läuft. Ausgelöst wird die Aktion, wenn die KI entscheidet, dass sie zutrifft. Sie eignet sich damit besser für „mein System über diesen Lead informieren“ als für „mein System über jede Nachricht informieren“.
  • Google Sheets: hängt eine Zeile pro Ereignis an, ohne dass Sie einen Endpunkt bauen müssen.
  • Polling der Conversations API: für einen vollständigen Datensatz. Beachten Sie dabei das oben genannte READ-Limit.

Der API-Zugriff erfordert den Business-Tarif, siehe Tarife & Limits.

Listen-Endpunkte unterstützen Paginierung über Query-Parameter:

ParameterDescription
limit
integer
Anzahl der Elemente pro Seite
offset
integer
Anzahl der zu überspringenden Elemente

Paginierte Antworten folgen dieser Struktur:

{
"items": [],
"offset": 0,
"limit": 10,
"count": 100
}

Alle Fehler werden als JSON im folgenden Format zurückgegeben:

{
"errors": {
"root": [
{
"message": "Description of the error",
"code": "ERROR_CODE"
}
]
}
}
StatusCodeDescription
400BAD_REQUESTUngültige Eingabe oder fehlende Pflichtfelder
401PERMISSION_DENIEDUngültiger, abgelaufener oder widerrufener Token
402PAYMENT_REQUIREDAktives Abonnement erforderlich
403PERMISSION_DENIEDDem Token fehlt der für diese Operation erforderliche Scope
404NOT_FOUNDRessource nicht gefunden
409CONFLICTKonflikt bei der Operation (z. B. gleichzeitige Änderung)
422VALIDATION_ERRORRequest-Body hat die Schema-Validierung nicht bestanden
429TOO_MANY_REQUESTSRate-Limit überschritten
500UNKNOWNInterner Serverfehler
503SERVICE_UNAVAILABLEVorübergehende Nichtverfügbarkeit

Zuletzt aktualisiert: