API
Zuletzt bearbeitet:
Quickchat AI bietet eine REST-API fuer den programmatischen Zugriff auf die Wissensbasis, Konversationen, KI-Aktionen und mehr Ihres KI-Assistenten.
Authentifizierung
Abschnitt betitelt „Authentifizierung“Alle API-Endpunkte verwenden Bearer-Token-Authentifizierung. Fuegen Sie Ihren API-Token im Authorization-Header jeder Anfrage ein:
Authorization: Bearer <API_TOKEN>Tokens werden im Quickchat Dashboard unter Integrations > API erstellt. Jeder Token ist ein JWT, das Ihre scenario_id enthaelt, sodass kein zusaetzlicher Identifier-Header erforderlich ist.
- Token-Gueltigkeit: 52 Wochen ab Erstellung
- Tokens koennen jederzeit ueber das Dashboard widerrufen werden
- Jeder Token ist auf einen einzelnen KI-Assistenten (Szenario) beschraenkt
Basis-URL
Abschnitt betitelt „Basis-URL“| Endpoint Group | Base URL |
|---|---|
| Knowledge Base, AI Actions, File Upload, Import | https://app.quickchat.ai/v1/api/ |
| Conversations | https://app.quickchat.ai/v1/api_core/ |
| Chat (Legacy) | https://chat.quickchat.ai/ |
Rate-Limits
Abschnitt betitelt „Rate-Limits“Rate-Limits werden pro Token und pro Endpunkt angewendet.
| Tier | Limit | Applies To |
|---|---|---|
| READ | 120 Anfragen/Min | GET- und List-Operationen |
| WRITE | 60 Anfragen/Min | POST, PATCH, PUT, DELETE |
| HEAVY | 20 Anfragen/Min | Datei-Uploads, Importe, Scraping |
Wenn ein Rate-Limit ueberschritten wird, gibt die API HTTP 429 Too Many Requests zurueck.
Paginierung
Abschnitt betitelt „Paginierung“Listen-Endpunkte unterstuetzen Paginierung ueber Query-Parameter:
| Parameter | Type | Description |
|---|---|---|
limit | integer | Anzahl der Elemente pro Seite |
offset | integer | Anzahl der zu ueberspringenden Elemente |
Paginierte Antworten folgen dieser Struktur:
{ "items": [], "offset": 0, "count": 100}Fehlerbehandlung
Abschnitt betitelt „Fehlerbehandlung“Alle Fehler werden als JSON im folgenden Format zurueckgegeben:
{ "errors": { "root": [ { "message": "Description of the error", "code": "ERROR_CODE" } ] }}| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Ungueltige Eingabe oder fehlende Pflichtfelder |
| 401 | PERMISSION_DENIED | Ungueltiger, abgelaufener oder widerrufener Token |
| 402 | PAYMENT_REQUIRED | Aktives Abonnement erforderlich |
| 404 | NOT_FOUND | Ressource nicht gefunden |
| 409 | CONFLICT | Konflikt bei der Operation (z. B. gleichzeitige Aenderung) |
| 422 | VALIDATION_ERROR | Request-Body hat die Schema-Validierung nicht bestanden |
| 429 | TOO_MANY_REQUESTS | Rate-Limit ueberschritten |
| 500 | UNKNOWN | Interner Serverfehler |
| 503 | SERVICE_UNAVAILABLE | Voruebergehende Nichtverfuegbarkeit |
Chat (Legacy-Auth)
Abschnitt betitelt „Chat (Legacy-Auth)“Der Chat-Endpunkt verwendet eine aeltere Authentifizierung mit api_key und scenario_id im Request-Body. Er verwendet keine Bearer-Tokens.
Nachricht senden
Abschnitt betitelt „Nachricht senden“POST https://chat.quickchat.ai/chat
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | Yes | Ihr API-Schluessel aus dem Dashboard |
scenario_id | string | Yes | ID Ihres KI-Assistenten |
text | string | Yes | Eingabenachricht des Nutzers |
conv_id | string | No | Konversations-ID. Weglassen, um eine neue Konversation zu starten |
message_context | string | No | Zusaetzlicher Pro-Nachricht-Kontext, der an die KI uebergeben wird |
client_metadata | object | No | Benutzerdefinierte Schluessel-Wert-Paare (max. 5 Schluessel), die Nachrichten angehaengt werden |
curl -X POST https://chat.quickchat.ai/chat \ -H 'Content-Type: application/json' \ -d '{ "api_key": "<API_KEY>", "scenario_id": "<SCENARIO_ID>", "text": "Hello!", "conv_id": "abcd1234"}'import requests
response = requests.post( url="https://chat.quickchat.ai/chat", json={ "api_key": "<API_KEY>", "scenario_id": "<SCENARIO_ID>", "text": "Hello!", "conv_id": "abcd1234", },)data = response.json()Antwort 200 OK
{ "ord_number": 236, "conv_id": "abcd1234", "reply": "Hey there!"}| Field | Type | Description |
|---|---|---|
ord_number | integer | Fortlaufende Nachrichtennummer in der Konversation |
conv_id | string | Konversations-Identifier (verwenden, um die Konversation fortzusetzen) |
reply | string | Antwort des KI-Assistenten |
Wissensbasis
Abschnitt betitelt „Wissensbasis“Einstellungen abrufen
Abschnitt betitelt „Einstellungen abrufen“Rufen Sie die Konfiguration Ihrer Wissensbasis ab.
GET https://app.quickchat.ai/v1/api/knowledge_base/
curl https://app.quickchat.ai/v1/api/knowledge_base/ \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Antwort 200 OK
{ "one_word_description": "Support Agent", "short_description": "A helpful customer support assistant.", "ai_commands": ["Be polite", "Stay on topic"], "retrain_state": null}| Field | Type | Description |
|---|---|---|
one_word_description | string | Kurzbezeichnung fuer die Wissensbasis |
short_description | string | Beschreibung des Zwecks des KI-Assistenten |
ai_commands | array of strings | Benutzerdefinierte Anweisungen fuer die KI |
retrain_state | string or null | Aktueller Trainingsstatus |
Einstellungen aktualisieren
Abschnitt betitelt „Einstellungen aktualisieren“PATCH https://app.quickchat.ai/v1/api/knowledge_base/
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
one_word_description | string | No | Kurzbezeichnung fuer die Wissensbasis |
short_description | string | No | Beschreibung des Zwecks des KI-Assistenten |
ai_commands | array of strings | No | Benutzerdefinierte Anweisungen fuer die KI |
curl -X PATCH https://app.quickchat.ai/v1/api/knowledge_base/ \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "one_word_description": "Sales Bot"}'import requests
response = requests.patch( url="https://app.quickchat.ai/v1/api/knowledge_base/", headers={"Authorization": "Bearer <API_TOKEN>"}, json={"one_word_description": "Sales Bot"},)data = response.json()Antwort 200 OK — Gibt die aktualisierten Wissensbasis-Einstellungen zurueck (gleiches Schema wie Einstellungen abrufen).
Artikel
Abschnitt betitelt „Artikel“Artikel erstellen
Abschnitt betitelt „Artikel erstellen“POST https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Artikelinhalt |
type | string | No | "Article" (Standard) oder "Paragraph" |
title | string | No | Artikeltitel |
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/articles/ \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "content": "Our return policy allows returns within 30 days.", "title": "Return Policy"}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "content": "Our return policy allows returns within 30 days.", "title": "Return Policy", },)data = response.json()Antwort 201 Created
{ "id": 1234, "article_id": "abc-123", "type": "Article", "title": "Return Policy", "description": "", "content": "Our return policy allows returns within 30 days.", "state": "draft", "url": null, "parent_id": null, "parent_type": null, "shortened": false, "tags": [], "created_timestamp": "2026-01-15", "last_modified_timestamp": "2026-01-15"}Artikel auflisten
Abschnitt betitelt „Artikel auflisten“GET https://app.quickchat.ai/v1/api/knowledge_base/articles/
Query-Parameter
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Elemente pro Seite |
offset | integer | No | Zu ueberspringende Elemente |
types | string | No | Nach Typ filtern: Article, Paragraph |
tags | string | No | Nach Tag filtern |
url | string | No | Nach URL filtern |
title | string | No | Nach Titel filtern |
query | string | No | Nach Inhalt suchen |
curl 'https://app.quickchat.ai/v1/api/knowledge_base/articles/?limit=10&offset=0' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"limit": 10, "offset": 0},)data = response.json()Antwort 200 OK
{ "items": [ { "id": 1234, "article_id": "abc-123", "type": "Article", "title": "Return Policy", "description": "", "state": "published", "url": null, "parent_id": null, "parent_type": null, "shortened": false, "tags": ["policies"], "created_timestamp": "2026-01-15", "last_modified_timestamp": "2026-01-15" } ], "offset": 0, "count": 1}Artikel abrufen
Abschnitt betitelt „Artikel abrufen“GET https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
curl https://app.quickchat.ai/v1/api/knowledge_base/articles/1234 \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/1234", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Antwort 200 OK — Gibt das vollstaendige Artikelobjekt zurueck (gleiches Schema wie die Antwort von Artikel erstellen).
Artikel aktualisieren
Abschnitt betitelt „Artikel aktualisieren“PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | No | Aktualisierter Artikelinhalt |
title | string | No | Aktualisierter Titel |
tags | array of strings | No | Aktualisierte Tags |
save_mode | string | No | "draft" (Standard) oder "publish" |
curl -X PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/1234 \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "title": "Updated Return Policy", "content": "Returns accepted within 60 days.", "save_mode": "publish"}'import requests
response = requests.patch( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/1234", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "title": "Updated Return Policy", "content": "Returns accepted within 60 days.", "save_mode": "publish", },)data = response.json()Antwort 200 OK — Gibt das aktualisierte Artikelobjekt zurueck.
Artikel loeschen
Abschnitt betitelt „Artikel loeschen“Einen oder mehrere Artikel anhand der ID loeschen.
DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request-Body — JSON-Array mit Artikel-IDs.
curl -X DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/ \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '[1234, 5678]'import requests
response = requests.delete( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/", headers={"Authorization": "Bearer <API_TOKEN>"}, json=[1234, 5678],)Antwort 200 OK
Artikel durchsuchen
Abschnitt betitelt „Artikel durchsuchen“Artikelinhalte mit Textabgleich durchsuchen.
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/search
Query-Parameter
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Suchanfrage |
is_case_insensitive | boolean | No | Gross-/Kleinschreibung ignorieren (Standard: true) |
with_title_url_and_tags | boolean | No | Titel/URL/Tags in die Suche einbeziehen (Standard: true) |
strict_search | boolean | No | Exakte Uebereinstimmung erfordern (Standard: false) |
num_of_display_articles | integer | No | Anzahl der anzuzeigenden Artikel (Standard: 5) |
num_of_data_articles | integer | No | Anzahl der zu durchsuchenden Artikel (Standard: 15) |
curl 'https://app.quickchat.ai/v1/api/knowledge_base/articles/search?query=return%20policy' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/search", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"query": "return policy"},)data = response.json()Antwort 200 OK
{ "article_snippets": [ { "article_id": 1234, "expository_sentence": "Our return policy allows returns within 30 days.", "query_words_ids": [ {"start_char": 4, "end_char": 10, "text": "return"} ] } ], "article_snapshots": { "items": [], "offset": 0, "count": 1 }}Absaetze auflisten
Abschnitt betitelt „Absaetze auflisten“Alle Absaetze (aufgeteilte Inhalte) in der Wissensbasis auflisten.
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs
Query-Parameter
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Elemente pro Seite |
offset | integer | No | Zu ueberspringende Elemente |
query | string | No | Nach Inhalt filtern |
curl 'https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs?limit=10' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"limit": 10},)data = response.json()Antwort 200 OK
{ "items": [ { "id": 1, "content": "Our return policy allows returns within 30 days." } ], "offset": 0, "count": 1}Artikel-Sprach-URLs
Abschnitt betitelt „Artikel-Sprach-URLs“Verwalten Sie sprachspezifische URLs fuer Artikel. Diese URLs ermoeglichen die Verknuepfung von Artikeln mit lokalisierten Versionen des Inhalts.
Sprach-URL abrufen
Abschnitt betitelt „Sprach-URL abrufen“GET https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
curl https://app.quickchat.ai/v1/api/knowledge_base/articles/1234/lang_urls/en \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/1234/lang_urls/en", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Antwort 200 OK
{ "url": "https://example.com/en/return-policy"}Sprach-URL erstellen
Abschnitt betitelt „Sprach-URL erstellen“POST https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL fuer die sprachspezifische Version |
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/articles/1234/lang_urls/en \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{"url": "https://example.com/en/return-policy"}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/1234/lang_urls/en", headers={"Authorization": "Bearer <API_TOKEN>"}, json={"url": "https://example.com/en/return-policy"},)data = response.json()Antwort 200 OK
{ "url": "https://example.com/en/return-policy"}Sprach-URL aktualisieren
Abschnitt betitelt „Sprach-URL aktualisieren“PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Aktualisierte URL |
Antwort 200 OK — Gibt das aktualisierte URL-Objekt zurueck.
Sprach-URL loeschen
Abschnitt betitelt „Sprach-URL loeschen“DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
curl -X DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/1234/lang_urls/en \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.delete( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/1234/lang_urls/en", headers={"Authorization": "Bearer <API_TOKEN>"},)Antwort 200 OK
Tags auflisten
Abschnitt betitelt „Tags auflisten“Alle in den Wissensbasis-Artikeln verwendeten Tags abrufen.
GET https://app.quickchat.ai/v1/api/knowledge_base/tags/
curl https://app.quickchat.ai/v1/api/knowledge_base/tags/ \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/tags/", headers={"Authorization": "Bearer <API_TOKEN>"},)tags = response.json()Antwort 200 OK
["policies", "faq", "product-info"]Datei-Upload
Abschnitt betitelt „Datei-Upload“Dateien hochladen, die verarbeitet und als Artikel zur Wissensbasis hinzugefuegt werden.
PDF hochladen
Abschnitt betitelt „PDF hochladen“POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/pdf
Eine PDF-Datei hochladen. Der Inhalt wird extrahiert und als Artikel hinzugefuegt.
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/pdf \ -H 'Authorization: Bearer <API_TOKEN>' \ -F 'pdf_file=@document.pdf'import requests
with open("document.pdf", "rb") as f: response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/pdf", headers={"Authorization": "Bearer <API_TOKEN>"}, files={"pdf_file": f}, )data = response.json()Antwort 200 OK
{ "status": "success", "message": "File processed successfully.", "article": { "id": 1234, "title": "document.pdf" }}| Field | Type | Description |
|---|---|---|
status | string | Verarbeitungsstatus |
message | string | Lesbare Ergebnisnachricht |
article | object | Der erstellte Artikel |
Datei hochladen
Abschnitt betitelt „Datei hochladen“POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/
Eine unterstuetzte Datei (PDF, DOCX) hochladen. Der Inhalt wird extrahiert und als Artikel hinzugefuegt.
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/ \ -H 'Authorization: Bearer <API_TOKEN>' \ -F 'file=@document.docx'import requests
with open("document.docx", "rb") as f: response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/", headers={"Authorization": "Bearer <API_TOKEN>"}, files={"file": f}, )data = response.json()Antwort 200 OK — Gleiches Schema wie PDF hochladen.
Externe Inhalte importieren
Abschnitt betitelt „Externe Inhalte importieren“Inhalte aus externen Quellen in die Wissensbasis importieren. Diese Endpunkte verarbeiten Inhalte asynchron.
Website scrapen
Abschnitt betitelt „Website scrapen“Eine einzelne Webseite oder eine gesamte Website scrapen und den Inhalt importieren.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/website
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Zu scrapende URL |
mode | string | No | "individual" (Standard), "site_wide" oder "individual_with_summary" |
phrases | array of strings | No | Zu extrahierende Schluesselphrasen |
html_selector | string | No | CSS-Selektor fuer bestimmte Inhalte |
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/website \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "url": "https://example.com/docs", "mode": "individual"}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/import_external/website", headers={"Authorization": "Bearer <API_TOKEN>"}, json={"url": "https://example.com/docs", "mode": "individual"},)data = response.json()Antwort 200 OK
{ "status": "success", "url": "https://example.com/docs", "article": {}}YouTube-Transkript importieren
Abschnitt betitelt „YouTube-Transkript importieren“Das Transkript eines YouTube-Videos importieren.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/youtube
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | YouTube-Video-URL |
toast_process_uuid | string | Yes | UUID v4 zur Nachverfolgung des Importvorgangs |
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/youtube \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "toast_process_uuid": "550e8400-e29b-41d4-a716-446655440000"}'import uuidimport requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/import_external/youtube", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "toast_process_uuid": str(uuid.uuid4()), },)Antwort 202 Accepted — Das Transkript wird asynchron verarbeitet.
Sitemap importieren
Abschnitt betitelt „Sitemap importieren“Inhalte von allen Links in einer XML-Sitemap importieren.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/site-map
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
site_map | string | Yes | URL einer XML-Sitemap |
link_filter_regex | string | No | Regex zum Filtern der zu importierenden Links (Standard: ".*") |
html_selector | string | No | CSS-Selektor fuer bestimmte Inhalte |
summarize | boolean | No | Ob importierte Inhalte zusammengefasst werden sollen (Standard: false) |
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/site-map \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "site_map": "https://example.com/sitemap.xml"}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/import_external/site-map", headers={"Authorization": "Bearer <API_TOKEN>"}, json={"site_map": "https://example.com/sitemap.xml"},)data = response.json()Antwort 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}Linkliste scrapen
Abschnitt betitelt „Linkliste scrapen“Inhalte von einer bestimmten Liste von URLs importieren.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/scrape-list
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
links | array of strings | Yes | Liste der zu scrapenden URLs (nicht leer) |
tags | array of strings | No | Tags, die importierten Artikeln zugewiesen werden |
html_selector | string | No | CSS-Selektor fuer bestimmte Inhalte |
summarize | boolean | No | Ob importierte Inhalte zusammengefasst werden sollen (Standard: false) |
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/scrape-list \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "links": ["https://example.com/page1", "https://example.com/page2"], "tags": ["imported"]}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/import_external/scrape-list", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "links": ["https://example.com/page1", "https://example.com/page2"], "tags": ["imported"], },)data = response.json()Antwort 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}Quellen
Abschnitt betitelt „Quellen“Externe Inhaltsquellen (z. B. Intercom, Shopify) verwalten, die Artikel mit Ihrer Wissensbasis synchronisieren.
Der Pfadparameter {source} akzeptiert Werte wie "intercom", "shopify" usw.
Quell-Artikel importieren
Abschnitt betitelt „Quell-Artikel importieren“POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/import
curl -X POST https://app.quickchat.ai/v1/api/knowledge_base/sources/intercom/import \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/knowledge_base/sources/intercom/import", headers={"Authorization": "Bearer <API_TOKEN>"}, json={},)data = response.json()Antwort 200 OK — Gibt eine Liste importierter Artikel-Snapshots zurueck.
Quell-Artikel loeschen
Abschnitt betitelt „Quell-Artikel loeschen“POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/delete
Entfernt alle von der angegebenen Quelle importierten Artikel.
Antwort 204 No Content
Quell-Artikel vergleichen
Abschnitt betitelt „Quell-Artikel vergleichen“Lokale Artikel mit der externen Quelle vergleichen, um Aenderungen zu erkennen.
POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/articles_diff
Antwort 200 OK
[ { "internal_article_diff": "CHANGED", "external_article_diff": "UNCHANGED", "article_snapshot": {} }]| Field | Type | Description |
|---|---|---|
internal_article_diff | string | "CHANGED" oder "UNCHANGED" |
external_article_diff | string | "CHANGED", "UNCHANGED" oder "REMOVED" |
article_snapshot | object | Artikel-Snapshot-Daten |
Intercom-Wissensbasis
Abschnitt betitelt „Intercom-Wissensbasis“Dedizierte Endpunkte zur Verwaltung der Intercom-Wissensbasis-Integration.
Intercom-Artikel aktualisieren
Abschnitt betitelt „Intercom-Artikel aktualisieren“Inhalte bestehender Artikel erneut von Intercom abrufen.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/refresh_articles
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
article_ids | array of integers | No | Bestimmte Artikel-IDs zum Aktualisieren (Standard: alle) |
fetch_new_articles | boolean | No | Ob neue Artikel abgerufen werden sollen (Standard: true) |
Antwort 204 No Content
Intercom-Artikel importieren
Abschnitt betitelt „Intercom-Artikel importieren“Alle Artikel von Intercom importieren.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/import
Antwort 200 OK — Gibt eine Liste importierter Artikel-Snapshots zurueck.
Intercom-Artikel loeschen
Abschnitt betitelt „Intercom-Artikel loeschen“Alle von Intercom stammenden Artikel aus der Wissensbasis entfernen.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/delete
Antwort 204 No Content
Intercom-Artikel vergleichen
Abschnitt betitelt „Intercom-Artikel vergleichen“Lokale Artikel mit Intercom vergleichen, um Aenderungen zu erkennen.
GET https://app.quickchat.ai/v1/api/knowledge_base/intercom/articles_diff
curl https://app.quickchat.ai/v1/api/knowledge_base/intercom/articles_diff \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/knowledge_base/intercom/articles_diff", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Antwort 200 OK — Gibt eine Liste von Artikel-Diff-Objekten zurueck (gleiches Schema wie Quell-Artikel vergleichen).
Konversationen
Abschnitt betitelt „Konversationen“Konversationen auflisten
Abschnitt betitelt „Konversationen auflisten“GET https://app.quickchat.ai/v1/api_core/conversations
Query-Parameter
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Elemente pro Seite |
offset | integer | No | Zu ueberspringende Elemente |
query | string | No | Nach Ordnungsnummer, UUID oder Nachrichtentext suchen |
assignee_type | string | No | "ai_assistant", "human_operator" oder "unassigned" |
source | string | No | "widget", "slack", "telegram", "whatsapp" usw. |
resolution_status | string | No | "open" oder "resolved" |
created_timestamp_start_date | datetime | No | Nach Erstellungsdatum filtern (Beginn) |
created_timestamp_end_date | datetime | No | Nach Erstellungsdatum filtern (Ende) |
last_message_at_start_date | datetime | No | Nach Datum der letzten Nachricht filtern (Beginn) |
last_message_at_end_date | datetime | No | Nach Datum der letzten Nachricht filtern (Ende) |
most_frequent_language | string | No | Nach erkannter Sprache filtern |
curl 'https://app.quickchat.ai/v1/api_core/conversations?limit=10&resolution_status=open' \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api_core/conversations", headers={"Authorization": "Bearer <API_TOKEN>"}, params={"limit": 10, "resolution_status": "open"},)data = response.json()Antwort 200 OK
{ "items": [ { "id": "conv-uuid-1234", "ord": 42, "created_at": "2026-01-15T10:30:00Z", "last_message_at": "2026-01-15T10:35:00Z", "title": "Return policy question", "source": "widget", "terminated": false, "resolution_status": "open", "has_unread_messages": true, "assignee": { "type": "ai_assistant" }, "visitor_name": "John", "visitor_email": "john@example.com", "visitor_phone_number": null, "visitor_label": null } ], "offset": 0, "count": 42}Konversationsdetails abrufen
Abschnitt betitelt „Konversationsdetails abrufen“GET https://app.quickchat.ai/v1/api_core/conversations/{conversation_id}/
curl https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/ \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Antwort 200 OK
{ "id": "conv-uuid-1234", "ord": 42, "created_at": "2026-01-15T10:30:00Z", "last_message_at": "2026-01-15T10:35:00Z", "title": "Return policy question", "source": "widget", "terminated": false, "resolution_status": "open", "has_unread_messages": true, "assignee": { "type": "ai_assistant" }, "url": null, "client_metadata": {"userId": 12}, "data_gathering": null, "last_visitor_message_at": "2026-01-15T10:34:00Z", "visitor_name": "John", "visitor_email": "john@example.com", "visitor_phone_number": null, "visitor_label": null}Konversations-Metadaten
Abschnitt betitelt „Konversations-Metadaten“Benutzerdefinierte Metadaten fuer Konversationen speichern und abrufen. Metadaten werden anhand eines JSON-Schemas validiert, sofern eines im Dashboard konfiguriert ist.
Metadaten abrufen
Abschnitt betitelt „Metadaten abrufen“GET https://app.quickchat.ai/v1/api_core/conversations/{conv_id}/metadata
curl https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/metadata \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/metadata", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Antwort 200 OK
{ "metadata": { "ticket_id": "T-1234", "priority": "high" }}Metadaten setzen
Abschnitt betitelt „Metadaten setzen“Metadaten fuer eine Konversation erstellen oder aktualisieren.
POST https://app.quickchat.ai/v1/api_core/conversations/{conv_id}/metadata
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
metadata | object | Yes | Schluessel-Wert-Metadaten zum Speichern |
curl -X POST https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/metadata \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "metadata": { "ticket_id": "T-1234", "priority": "high" }}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api_core/conversations/conv-uuid-1234/metadata", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "metadata": {"ticket_id": "T-1234", "priority": "high"} },)data = response.json()Antwort 200 OK
{ "metadata": { "ticket_id": "T-1234", "priority": "high" }}KI-Aktionen
Abschnitt betitelt „KI-Aktionen“KB-KI-Aktion erstellen
Abschnitt betitelt „KB-KI-Aktion erstellen“Eine neue Wissensbasis-KI-Aktion erstellen. KB-KI-Aktionen ermoeglichen es der KI, getaggte Teilmengen der Wissensbasis zu durchsuchen, wenn sie ausgeloest werden.
POST https://app.quickchat.ai/v1/api/ai_actions/knowledge_base
curl -X POST https://app.quickchat.ai/v1/api/ai_actions/knowledge_base \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{}'import requests
response = requests.post( url="https://app.quickchat.ai/v1/api/ai_actions/knowledge_base", headers={"Authorization": "Bearer <API_TOKEN>"}, json={},)data = response.json()Antwort 201 Created
{ "id": 1, "name": "", "description": "", "icon": null, "icon_color": null, "is_active": false, "is_valid": false, "tag": null, "parameter_description": "", "type": "knowledge_base"}| Field | Type | Description |
|---|---|---|
id | integer | KI-Aktions-Identifier |
name | string | Anzeigename (max. 100 Zeichen) |
description | string | Beschreibung, wann die Aktion ausgeloest werden soll (max. 1000 Zeichen) |
icon | string or null | Icon-Identifier |
icon_color | string or null | Icon-Farbe |
is_active | boolean | Ob die Aktion aktiviert ist |
is_valid | boolean | Ob die Aktion korrekt konfiguriert ist |
tag | string or null | Wissensbasis-Tag zum Filtern von Artikeln (max. 255 Zeichen) |
parameter_description | string | Beschreibung des Parameters, den die KI extrahiert (max. 500 Zeichen) |
type | string | Immer "knowledge_base" |
KB-KI-Aktion abrufen
Abschnitt betitelt „KB-KI-Aktion abrufen“GET https://app.quickchat.ai/v1/api/ai_actions/{action_id}/knowledge_base
curl https://app.quickchat.ai/v1/api/ai_actions/1/knowledge_base \ -H 'Authorization: Bearer <API_TOKEN>'import requests
response = requests.get( url="https://app.quickchat.ai/v1/api/ai_actions/1/knowledge_base", headers={"Authorization": "Bearer <API_TOKEN>"},)data = response.json()Antwort 200 OK — Gibt das KI-Aktions-Objekt zurueck (gleiches Schema wie die Antwort von KB-KI-Aktion erstellen).
KB-KI-Aktion aktualisieren
Abschnitt betitelt „KB-KI-Aktion aktualisieren“PUT https://app.quickchat.ai/v1/api/ai_actions/{action_id}/knowledge_base
Request-Body
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Anzeigename (max. 100 Zeichen) |
description | string | Yes | Wann die Aktion ausgeloest werden soll (max. 1000 Zeichen) |
parameter_description | string | Yes | Parameterbeschreibung (max. 500 Zeichen) |
tag | string | Yes | Wissensbasis-Tag zum Filtern (max. 255 Zeichen) |
curl -X PUT https://app.quickchat.ai/v1/api/ai_actions/1/knowledge_base \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '{ "name": "Search Returns", "description": "Search the return policy articles when customer asks about returns.", "parameter_description": "The return-related query from the customer", "tag": "returns"}'import requests
response = requests.put( url="https://app.quickchat.ai/v1/api/ai_actions/1/knowledge_base", headers={"Authorization": "Bearer <API_TOKEN>"}, json={ "name": "Search Returns", "description": "Search the return policy articles when customer asks about returns.", "parameter_description": "The return-related query from the customer", "tag": "returns", },)data = response.json()Antwort 200 OK — Gibt das aktualisierte KI-Aktions-Objekt zurueck.