Knowledge Base API
Ihre Wissensdatenbank ist die Grundlage, aus der die KI liest. Sie besteht aus zwei Teilen, die beide auf dieser Seite behandelt werden:
- Wissensquellen (
/kb-sources) — die Webseiten und hochgeladenen Dokumente, die Sie der Plattform zur Verfügung stellen. Jede Quelle wird gelesen, in Abschnitte unterteilt und in FAQs umgewandelt, die Ihre KI beantworten kann. - Wissensgruppen (
/kb-groups) — benannte Bündel von FAQs, die Sie mit einem einzigen Aufruf auf einen Agenten oder eine Kampagne anwenden können, sodass bereits kuratiertes Wissen für den nächsten Agenten, den Sie erstellen, wiederverwendet werden kann.
Die FAQs, die eine Quelle erzeugt, landen in derselben Bibliothek wie die von Ihnen manuell erstellten. Sobald ein Import abgeschlossen ist, können Sie diese mit der FAQs API lesen, bearbeiten und verknüpfen.
Alle unten aufgeführten Endpunkte beziehen sich auf die Basis-URL https://api.youraiconnector.com/v1. Jede Anfrage muss authentifiziert sein – siehe API-Zugriff und Authentifizierung. Der API-Zugriff ist eine kostenpflichtige Funktion; ohne diesen werden Anfragen mit einem 403 abgelehnt.
Der Import kostet Credits. Das Lesen einer Seite oder eines Dokuments und das Erstellen von FAQs daraus verbraucht Credits, ungefähr proportional zur Inhaltsmenge. Verwenden Sie Import schätzen, bevor Sie einen großen Crawl starten.
Funktionsweise eines Imports
Der Import ist ein Hintergrundprozess und kein Vorgang, der sofort abgeschlossen ist. Jeder Import-Endpunkt antwortet sofort mit einer source_id, und Sie fragen diese Quelle ab, bis sie fertig ist:
- Import starten —
POST /kb-sources/url(eine Seite),POST /kb-sources/file(ein hochgeladenes Dokument) oderPOST /kb-sources/bulk-import(bis zu 100 Seiten). Sie erhalten eine Quellen-ID und einestatus: "queued"zurück. - Abfragen —
GET /kb-sources/{sourceId}, bisstatusnicht mehrqueuedoderprocessingist. - FAQs lesen — wenn der Status
readylautet, befinden sich die erzeugten Einträge in Ihrer FAQ-Bibliothek:GET /faqs.
Jede Quelle meldet einen dieser Statuswerte:
| Status | Bedeutung |
|---|---|
queued |
Wartet darauf, gelesen zu werden. Es wurden noch keine Kosten berechnet. |
processing |
Wird gerade gelesen und in FAQs umgewandelt. |
ready |
Abgeschlossen. Die FAQs befinden sich in Ihrer Bibliothek. |
failed |
Konnte nicht importiert werden. error_message gibt den Grund an. |
cancelled |
Gestoppt, bevor der Lesevorgang abgeschlossen war (siehe Import stoppen). |
paused |
Gestoppt, weil Ihr eigener KI-Schlüssel während des Imports fehlgeschlagen ist (siehe Pausierten Import fortsetzen). |
deleting |
Eine Massenlöschung wird gerade verarbeitet. |
unknown |
Der Datensatz hat keinen Status. Behandeln Sie ihn als nicht bereit. |
Beim Import zuweisen. Übergeben Sie
autoLinkToAgentIdan einem beliebigen Import-Endpunkt, und die Quelle – sowie alle daraus erzeugten FAQs – werden mit demselben Aufruf dem Wissen des Agenten hinzugefügt, ohne dass ein weiterer Verknüpfungsschritt erforderlich ist.autoLinkToCampaignIdbewirkt dasselbe für eine klassische Kampagne. Die Verknüpfung erfolgt nach dem Best-Effort-Prinzip: Eine ID, die nicht existiert oder zu einem anderen Konto gehört, wird stillschweigend übersprungen und der Import läuft weiter. Überprüfen Sie die Verknüpfung daher, indem Sie den Agenten erneut abrufen.
Webseite importieren
POST /kb-sources/url
Fügt Ihrer Wissensdatenbank eine Webseite hinzu.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
url |
Ja | Vollständige http- oder https-Adresse der Seite. |
autoLinkToAgentId |
Nein | ID eines KI-Agenten, dem die importierte Quelle zugeordnet werden soll. |
autoLinkToCampaignId |
Nein | Veraltet. ID einer Kampagne, der die importierte Quelle zugeordnet werden soll. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/url?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/pricing",
"autoLinkToAgentId": "ag7HkQ2ZpLxR3mNb"
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/kb-sources/url", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://example.com/pricing",
autoLinkToAgentId: "ag7HkQ2ZpLxR3mNb",
}),
});
const { source_id } = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/kb-sources/url",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"url": "https://example.com/pricing",
"autoLinkToAgentId": "ag7HkQ2ZpLxR3mNb",
},
)
source_id = res.json().get("source_id")
Antwort — 202 Accepted
{
"success": true,
"source_id": "kb_src_abc123",
"status": "queued",
"batch_id": "batch_9f2a"
}
Fragen Sie source_id mit Quelle prüfen ab, bis der Status ready oder failed lautet.
Wenn dieselbe Seite bereits in Ihrer Wissensdatenbank vorhanden ist, wird nichts Neues in die Warteschlange gestellt und Sie erhalten stattdessen eine 200 — und falls Sie eine automatische Verknüpfung angefordert haben, wird die bestehende Quelle ohnehin für Sie verknüpft:
{
"success": true,
"status": "exists",
"skipped_duplicate": 1
}
Ein fehlender url oder eine Angabe, die keine gültige http/https-Adresse ist, führt zu 400.
Hochgeladenes Dokument importieren
POST /kb-sources/file
Fügt ein Dokument, das sich bereits im Dateispeicher Ihres Kontos befindet, als Wissensquelle hinzu. Unterstützte Formate: PDF, DOCX, TXT, MD, CSV und XLSX.
Dieser Endpunkt überträgt die Datei nicht. Es gibt keinen Multipart-Upload, keinen Base64-Body und keinen Download von einer URL: Sie senden den Speicherort einer Datei, die bereits existiert, und diese muss sich in Ihrem eigenen Upload-Ordner befinden (
storage_pathmuss mitusers/{your user id}/uploads/beginnen), andernfalls wird die Anfrage mit403abgelehnt. Das Dashboard legt Dateien dort ab, wenn Sie sie hineinziehen. Wenn Sie keine Möglichkeit haben, eine Datei dort abzulegen, importieren Sie stattdessen eine Webseite über Webseite importieren.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
storage_path |
Ja | Speicherort der hochgeladenen Datei. Muss mit users/{your user id}/uploads/ beginnen. |
filename |
Ja | Ursprünglicher Dateiname inklusive Erweiterung – daran wird der Dateityp erkannt. |
mime_type |
Ja | MIME-Typ der Datei, zum Beispiel application/pdf. |
autoLinkToAgentId |
Nein | ID eines KI-Agenten, dem das Dokument zugeordnet werden soll. |
autoLinkToCampaignId |
Nein | Veraltet. ID einer Kampagne, der das Dokument zugeordnet werden soll. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/file?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"storage_path": "users/abc123uid/uploads/handbook.pdf",
"filename": "handbook.pdf",
"mime_type": "application/pdf",
"autoLinkToAgentId": "ag7HkQ2ZpLxR3mNb"
}'
Antwort — 202 Accepted
{
"success": true,
"source_id": "kb_src_abc123",
"status": "queued"
}
| Status | Wann |
|---|---|
400 |
Ein erforderliches Feld fehlt oder der Dateityp kann nicht gelesen werden. |
403 |
storage_path befindet sich außerhalb Ihres eigenen Upload-Ordners. |
Quelle prüfen
GET /kb-sources/{sourceId}
Die Abfrage, die auf jeden Import und jede Aktualisierung folgt. Wiederholen Sie diese, bis der Status ready oder failed lautet.
cURL
curl "https://api.youraiconnector.com/v1/kb-sources/kb_src_abc123?apiKey=YOUR_API_KEY"
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/kb-sources/kb_src_abc123",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const source = await res.json();
Python
import requests
res = requests.get(
"https://api.youraiconnector.com/v1/kb-sources/kb_src_abc123",
headers={"X-API-Key": "YOUR_API_KEY"},
)
source = res.json()
Antwort
{
"success": true,
"source_id": "kb_src_abc123",
"status": "ready",
"faq_count": 24,
"section_count": 31,
"error_message": null
}
| Feld | Typ | Beschreibung |
|---|---|---|
status |
string | Wo sich die Quelle in der Pipeline befindet (siehe die Statustabelle). |
faq_count |
integer | Wie viele FAQs bisher aus dieser Quelle generiert wurden. |
section_count |
integer | In wie viele Inhaltsabschnitte die Quelle unterteilt wurde. |
error_message |
string | null | Warum der Import fehlgeschlagen ist, wenn der Status failed ist. Ansonsten null. |
Eine Quelle löschen
DELETE /kb-sources/{sourceId}
Entfernt eine Wissensquelle. Standardmäßig bleiben die daraus erstellten FAQs erhalten – fügen Sie delete_faqs=true hinzu, um diese ebenfalls zu entfernen.
Abfrageparameter
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
delete_faqs |
Nein | Auf true setzen, um auch alle FAQs zu löschen, die diese Quelle erstellt hat. Standardwert ist false. |
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/kb-sources/kb_src_abc123?delete_faqs=true&apiKey=YOUR_API_KEY"
Antwort
{
"success": true,
"faqs_deleted": 24
}
faqs_deleted ist 0, es sei denn, Sie haben delete_faqs=true angefordert.
Viele Seiten auf einmal importieren
POST /kb-sources/bulk-import
Fügt bis zu 100 Webseiten in einem Aufruf hinzu. Ihr Konto kann bis zu 5.000 Seiten gleichzeitig für den Import bereithalten (das Import-Limit Ihres Kontos), wobei bereits in der Warteschlange befindliche oder gerade gelesene Seiten mitgezählt werden. Ein Aufruf, der dieses Limit überschreiten würde, wird mit 400 und error_code: kb_import_page_limit abgelehnt, und nichts aus diesem Aufruf wird in die Warteschlange eingereiht. Importe von mehr als 5.000 Seiten erfordern eine Genehmigung. Kontaktieren Sie daher den Support, um das Limit erhöhen zu lassen. Dies ist der übliche nächste Schritt nach Seiten auf einer Website entdecken oder Neue Seiten auf einer Website finden. Seiten, die sich bereits in Ihrer Wissensdatenbank befinden, werden übersprungen, anstatt sie zu duplizieren (und sind weiterhin mit dem Agenten verknüpft, wenn Sie dies angefordert haben).
Ein Import, den Ihr Konto nicht bezahlen kann, wird abgelehnt, bevor etwas in die Warteschlange eingereiht wird, mit 402 und error_code: kb_import_insufficient_credits (die Antwort enthält außerdem required_credits, available_credits und waiting_pages). Jede Seite zählt bei dieser Prüfung als mindestens ein Chunk, und Seiten, die bereits auf den Import warten, zählen ebenfalls mit, da sie erst bei der Verarbeitung berechnet werden. Konten mit eingerichtetem automatischen Aufladen werden aufgrund ihres Guthabens nicht abgelehnt. Konten, die ihren eigenen KI-Schlüssel verwenden, werden ebenfalls nicht abgelehnt, es sei denn, sie laufen auf der Max-Stufe, die in Credits abgerechnet wird. Für ein Unterkonto ist available_credits gleich null.
Der Import von mehr als 100 Seiten erfordert mehrere Aufrufe. Senden Sie die Größe der gesamten Auswahl als plannedTotal beim ersten Aufruf. Das Seitenlimit und die Credit-Prüfung decken dann bei diesem Aufruf die gesamte Auswahl ab, sodass ein Import, der nicht abgeschlossen werden kann, abgelehnt wird, bevor eine Seite in die Warteschlange eingereiht wird, anstatt mitten im Prozess zu stoppen. Wenn der erste Aufruf akzeptiert wird, enthält seine Antwort eine import_session: Senden Sie diese als importSession bei jedem weiteren Aufruf derselben Auswahl zurück. Diese Aufrufe überspringen dann die Vorab-Credit-Prüfung für bis zu die genehmigte Anzahl an Seiten für eine Stunde. Das Seitenlimit gilt weiterhin, und jede Seite wird bei der Verarbeitung berechnet.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
urls |
Ja | Zu importierende Adressen. Mindestens 1, maximal 100 pro Aufruf. |
autoLinkToAgentId |
Nein | ID eines KI-Agenten, dem jede importierte Seite zugeordnet werden soll. |
autoLinkToCampaignId |
Nein | Veraltet. ID einer Kampagne, der jede importierte Seite zugeordnet werden soll. |
plannedTotal |
Nein | Erster Aufruf einer Auswahl, die auf mehrere Aufrufe aufgeteilt ist: wie viele Seiten die gesamte Auswahl umfasst. |
importSession |
Nein | Die import_session, die vom ersten Aufruf dieser Auswahl zurückgegeben wurde. Senden Sie sie bei den zweiten und weiteren Aufrufen mit. Ohne sie (oder sobald sie abgelaufen ist oder ihre genehmigten Seiten aufgebraucht sind) erhält jeder Aufruf die normale Credit-Prüfung. Das ältere continuesImport-Flag wird ignoriert. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/bulk-import?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": ["https://example.com/pricing", "https://example.com/faq"],
"autoLinkToAgentId": "ag7HkQ2ZpLxR3mNb"
}'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/kb-sources/bulk-import", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
urls: ["https://example.com/pricing", "https://example.com/faq"],
autoLinkToAgentId: "ag7HkQ2ZpLxR3mNb",
}),
});
const { queued_source_ids } = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/kb-sources/bulk-import",
headers={"X-API-Key": "YOUR_API_KEY"},
json={
"urls": ["https://example.com/pricing", "https://example.com/faq"],
"autoLinkToAgentId": "ag7HkQ2ZpLxR3mNb",
},
)
queued_source_ids = res.json()["queued_source_ids"]
Antwort — 202 Accepted
{
"success": true,
"batch_id": "batch_9f2a",
"queued": 2,
"skipped_duplicate": 0,
"queued_source_ids": ["kb_src_abc123", "kb_src_def456"]
}
Fragen Sie jede ID in queued_source_ids mit Eine Quelle prüfen ab. Das Senden eines leeren urls-Arrays, eines Eintrags, der kein String ist, oder von mehr als 100 Einträgen gibt 400 zurück.
Viele Quellen auf einmal löschen
POST /kb-sources/bulk-delete
Entfernt bis zu 2.000 Wissensquellen in einem Aufruf. Der Löschvorgang läuft im Hintergrund und Sie erhalten eine E-Mail, sobald er abgeschlossen ist.
Beim Massenlöschen werden auch die FAQs entfernt. Im Gegensatz zu Quelle löschen, bei dem die FAQs erhalten bleiben, sofern Sie nichts anderes angeben, löscht dieser Endpunkt jede Quelle zusammen mit den daraus erstellten FAQs. Es gibt keine Option, diese beizubehalten.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
sourceIds |
Ja | IDs der zu entfernenden Quellen. Mindestens 1, maximal 2.000 pro Aufruf. |
domainLabel |
Nein | Ein benutzerfreundlicher Name für diese Bereinigung. Wird nur in der Abschluss-E-Mail verwendet. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/bulk-delete?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sourceIds": ["kb_src_abc123", "kb_src_def456"],
"domainLabel": "example.com"
}'
Antwort — 202 Accepted
{
"success": true,
"batch_id": "del_batch_31a",
"queued": 2
}
Seiten auf einer Website entdecken
POST /kb-sources/discover-pages
Durchsucht eine Website von einer Startadresse aus und listet die auf derselben Domain gefundenen Seiten auf, jeweils mit einer Einschätzung, ob sich ein Import lohnt. Es wird nichts importiert und nichts für Sie ausgewählt — dies ist der Schritt „Was befindet sich auf dieser Website“, den Sie ausführen, bevor Sie entscheiden, was an Viele Seiten auf einmal importieren gesendet werden soll.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
url |
Ja | Adresse, von der aus die Erkundung gestartet werden soll, normalerweise die Startseite der Website. |
maxPages |
Nein | Obergrenze für die Anzahl der zurückzugebenden Seiten. Standardmäßig das Import-Limit Ihres Kontos (5.000 Seiten) und kann nicht höher sein. Ein höherer Wert wird mit 400 und error_code: kb_import_page_limit abgelehnt. Die Erkundung geht nie über 10.000 Seiten hinaus. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/discover-pages?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://example.com", "maxPages": 100 }'
Antwort
{
"success": true,
"source_type": "sitemap",
"pages": [
{
"url": "https://example.com/pricing",
"title": "Pricing",
"depth": 1,
"score": 95,
"recommendation": "add",
"reason_key": "core_page"
}
]
}
| Feld | Typ | Beschreibung |
|---|---|---|
source_type |
string | Wie die Seiten gefunden wurden — sitemap (die eigene Sitemap der Website) oder link_discovery (durch Folgen von Links). |
max_pages |
integer | Das Import-Limit Ihres Kontos: die maximale Anzahl an Seiten, die gleichzeitig auf den Import warten können. |
limit_reached |
boolean | true, wenn die Website mehr Seiten hat als max_pages. Nur die ersten max_pages werden zurückgegeben. |
limit_notice |
string | Eine Erklärung in einfacher Sprache, nur vorhanden, wenn limit_reached gleich true ist. |
url |
string | Vollständige Adresse der Seite. |
title |
string | null | Seitentitel, sofern dieser gelesen werden konnte. |
depth |
integer | Wie viele Links von der Startseite entfernt diese Seite gefunden wurde. |
score |
integer | Wie nützlich die Seite als Wissen erscheint, von 0 bis 100. |
recommendation |
string | add (eindeutig einen Import wert, Punktzahl 90 oder höher), maybe (grenzwertig) oder skip (Inhalte, die einem Assistenten selten helfen – Änderungsprotokolle, rechtliche Seiten, doppelte Übersetzungen). |
reason_key |
string | Ein stabiler, maschinenlesbarer Grund für die Empfehlung, zum Beispiel core_page, changelog_history, legal_page oder locale_duplicate. |
Die Erkundung erfolgt nach bestem Bemühen. Wenn die Website nicht gelesen werden kann, ist die Antwort dennoch
200, mitsuccess: false, einer leerenpages-Liste und einererror-Nachricht. Überprüfen Siesuccess, bevor Siepageslesen.
Ein fehlendes url gibt 400 zurück.
Kosten eines Imports schätzen
POST /kb-sources/estimate-cost
Berechnet, wie viele Credits ein geplanter Import verbrauchen würde, bevor Sie sich dazu verpflichten. Seiten werden abgerufen und Dokumente gelesen, um ihre Größe zu messen, aber es wird nichts importiert und die Schätzung selbst verbraucht keine Credits.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
urls |
Nein | Seitenadressen, die Sie für einen Import in Betracht ziehen. |
files |
Nein | Bereits hochgeladene Dateien, die Sie in Betracht ziehen. Jeder Eintrag benötigt storage_path, filename und mime_type. |
tier |
Nein | Die KI-Qualitätsstufe, auf der der Import ausgeführt wird, damit die Schätzung mit dem übereinstimmt, was Ihnen tatsächlich berechnet wird. Lassen Sie es für den Standardtarif weg. |
prior_chunks |
Nein | Wenn Sie eine Auswahl in mehreren Aufrufen schätzen, die Chunks, die Ihre früheren Aufrufe ergeben haben. Sie werden nur für affordable addiert, damit die Antwort die gesamte Auswahl abdeckt. |
Senden Sie urls, files oder beides.
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/estimate-cost?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "urls": ["https://example.com/pricing"] }'
Antwort
{
"success": true,
"estimates": [
{ "ref": "https://example.com/pricing", "chunks": 7, "credits": 7 }
],
"total_chunks": 7,
"total_credits": 7,
"affordable": true,
"required_credits": 7,
"available_credits": 120,
"checked_chunks": 7,
"waiting_pages": 0,
"max_affordable_chunks": 120
}
Jede Zeile spiegelt die URL oder den Speicherpfad in ref wider, sodass Sie sie Ihrer Eingabe zuordnen können. Eine Seite oder Datei, die nicht gelesen werden konnte, erhält dennoch eine Zeile, die als ein Chunk gezählt wird, mit einem error darauf.
affordable gibt an, ob Ihr Konto für diese Schätzung bezahlen kann, wobei die Seiten gezählt werden, die bereits auf den Import warten (waiting_pages). max_affordable_chunks ist die maximale Anzahl weiterer Chunks, die bezahlt werden können, sodass Sie eine laufende Summe vergleichen können, wenn Sie eine große Auswahl in mehreren Aufrufen schätzen. Es ist null, wenn Ihr Guthaben Sie nicht einschränkt (automatisches Aufladen eingerichtet oder Ihr eigener KI-Schlüssel unter der Max-Stufe) und immer null für ein Unterkonto, das nur affordable erhält (senden Sie prior_chunks, damit es die gesamte Auswahl abdeckt) und ein null available_credits.
Einen Import stoppen
POST /kb-sources/cancel-import
Stoppt Seiten, die noch in der Importwarteschlange warten – die Schaltfläche „Import stoppen“ für einen Crawl, der sich als größer herausgestellt hat als erwartet. Das Abbrechen einer wartenden Seite kostet nichts, da sie noch nicht gelesen wurde.
Seiten, die bereits verarbeitet werden, werden nicht gestoppt: Ihre Bearbeitung läuft bereits und wird in jedem Fall berechnet, daher werden sie fertiggestellt. Die Antwort gibt an, wie viele das waren.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
host |
Nein | Stoppt nur wartende Seiten auf dieser Website (zum Beispiel docs.example.com). Lassen Sie es weg, um jeden wartenden Import im Konto zu stoppen. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/cancel-import?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "host": "docs.example.com" }'
Antwort
{
"success": true,
"cancelled": 412,
"in_flight": 3
}
Einen pausierten Import fortsetzen
POST /kb-sources/resume-import
Startet einen Import neu, der pausiert wurde, weil Ihr eigener KI-Schlüssel nicht mehr funktionierte.
Dieser Aufruf ist Ihre Zustimmung, den Import mit dem Schlüssel abzuschließen, der jetzt aktiv ist – was bedeuten kann, dass Plattform-Credits verbraucht werden, falls Ihr eigener Schlüssel immer noch nicht funktioniert.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
host |
Nein | Setzt nur pausierte Seiten auf dieser Website fort. Lassen Sie es weg, um alles Pausierte fortzusetzen. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/resume-import?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Antwort
{
"success": true,
"resumed": 58
}
Neue Seiten auf einer Website finden
POST /kb-sources/refresh-domain
Durchsucht eine Website, von der Sie bereits importiert haben, und meldet nur die Seiten, die noch nicht in Ihrer Wissensdatenbank enthalten sind, jeweils mit derselben Empfehlung wie bei der Seitenerkennung. Es wird nichts importiert und nichts geändert.
Die beiden Folgeaktionen sind bewusst separate Aufrufe, daher kostet es nichts, diesen hier abzubrechen:
- importieren Sie die neuen Seiten, die Sie möchten, mit Importieren Sie viele Seiten auf einmal;
- lesen Sie die Seiten, die Sie bereits haben, erneut mit Aktualisieren Sie jede Seite auf einer Website.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
baseUrl |
Ja | Beliebige Adresse auf der Website oder nur der Host. |
maxPages |
Nein | Obergrenze für die Anzahl der zu erkundenden Seiten. Standardmäßig das Import-Limit Ihres Kontos (5.000 Seiten) und kann nicht höher sein. Ein höherer Wert wird mit 400 und error_code: kb_import_page_limit abgelehnt. Die Erkundung geht nie über 10.000 Seiten hinaus. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/refresh-domain?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "baseUrl": "https://example.com" }'
Antwort
{
"success": true,
"source_type": "sitemap",
"discovered": 249,
"new_pages": [
{
"url": "https://example.com/new-guide",
"score": 95,
"recommendation": "add",
"reason_key": "core_page"
}
],
"new_urls_queued": 0,
"existing_refresh_queued": 249
}
| Feld | Typ | Beschreibung |
|---|---|---|
discovered |
integer | Wie viele Seiten insgesamt auf der Website gefunden wurden. |
new_pages |
array | Seiten, die noch nicht in Ihrer Wissensdatenbank enthalten sind. Es wird nichts für Sie in die Warteschlange eingereiht – importieren Sie die gewünschten Seiten. |
new_urls_queued |
integer | Immer 0. Aus Gründen der Abwärtskompatibilität beibehalten; dieser Endpunkt reiht nie etwas in die Warteschlange ein. |
existing_refresh_queued |
integer | Wie viele Seiten, die Sie bereits von dieser Website importiert haben, als bereit zum erneuten Lesen gefunden wurden. Durch diesen Aufruf wird nichts in die Warteschlange eingereiht. |
batch_id |
string | Nur vorhanden, wenn ein Batch erstellt wurde. |
max_pages, limit_reached, limit_notice |
Identisch mit Seitenerkundung: die Website hatte mehr Seiten als Ihr Import-Limit, wenn limit_reached gleich true ist. |
Wie die Erkennung schlägt dies sanft fehl: Eine Website, die nicht gelesen werden kann, gibt immer noch 200 zurück, mit success: false, einem leeren new_pages und einem error. Ein fehlendes oder leeres baseUrl gibt 400 zurück.
Aktualisieren Sie jede Seite auf einer Website
POST /kb-sources/trigger-domain-refresh
Liest jede Seite, die Sie bereits von einer Website importiert haben, erneut, sodass deren FAQs dem aktuellen Inhalt der Website entsprechen: Geänderte Abschnitte werden aktualisiert, neue Abschnitte hinzugefügt und entfernte Abschnitte gelöscht.
Dies stellt die Arbeit in die Warteschlange und kehrt sofort zurück. Folgen Sie dem mit Verfolgen Sie eine Website-Aktualisierung und stoppen Sie es mit Stoppen Sie eine Website-Aktualisierung.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
baseUrl |
Ja | Jede Adresse auf der Website oder nur der Host. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/trigger-domain-refresh?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "baseUrl": "https://example.com" }'
Antwort
{
"success": true,
"queued": 249
}
Verfolgen Sie eine Website-Aktualisierung
GET /kb-sources/domain-refresh-status
Wie weit eine Website-Aktualisierung fortgeschritten ist, damit Sie den Fortschritt wie “221 von 249” anzeigen können.
Abfrageparameter
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
baseUrl |
Ja | Jede Adresse auf der Website oder nur der Host. |
cURL
curl "https://api.youraiconnector.com/v1/kb-sources/domain-refresh-status?baseUrl=https://example.com&apiKey=YOUR_API_KEY"
Antwort
{
"success": true,
"job": {
"domainBatchId": "job_7c1e",
"host": "example.com",
"total": 249,
"pending": 28,
"succeeded": 219,
"failed": 2,
"skippedDuplicate": 0,
"status": "refreshing",
"startedAtIso": "2026-06-15T09:00:00.000Z"
}
}
job ist null, wenn keine Aktualisierung für diese Website läuft. Die bisher fertiggestellten Seiten sind total minus pending. Der Job status ist einer von refreshing (arbeitet noch Seiten ab), deduplicating (der Bereinigungsdurchlauf am Ende) oder der endgültige completed, failed und cancelled. Behalten Sie domainBatchId – dies ist das, was Sie an den Abbruch-Endpunkt übergeben.
Ein fehlendes oder leeres baseUrl gibt 400 zurück.
Website-Aktualisierung stoppen
POST /kb-sources/refresh-domain/cancel
Stoppt eine Website-Aktualisierung, die noch Seiten verarbeitet. Bereits fertiggestellte Seiten behalten ihre aktualisierten Inhalte; nicht begonnene Seiten werden verworfen, und Seiten, die gerade erneut eingelesen wurden, kehren in ihren vorherigen Zustand zurück.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
jobId |
Ja | Die domainBatchId, die von Website-Aktualisierung verfolgen zurückgegeben wurde. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/refresh-domain/cancel?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "jobId": "job_7c1e" }'
Antwort
{
"success": true,
"status": "cancelled",
"cancelled_units": 28,
"sources_reset": 3,
"sources_cancelled": 25
}
| Feld | Typ | Beschreibung |
|---|---|---|
status |
string | Status der Aktualisierung nach diesem Aufruf: cancelled, deduplicating, completed oder failed. |
cancelled_units |
integer | Wie viel Arbeit noch ausstand, als der Abbruch erfolgte. 0 bei einem wiederholten Abbruch. |
sources_reset |
integer | Seiten, die aus der Verarbeitung genommen und auf ready zurückgesetzt wurden. |
sources_cancelled |
integer | Brandneue Seiten dieser Aktualisierung, die noch in der Warteschlange standen und nun abgebrochen wurden. |
Ein zweimaliger Abbruch ist harmlos – der zweite Aufruf meldet denselben Endzustand. Sobald die Aktualisierung in den Bereinigungsschritt übergegangen ist, kann sie nicht mehr gestoppt werden, und die Antwort erfolgt mit success: false und reason: "already_finalizing". Eine fehlende jobId gibt 400 zurück, und ein Job, der sich nicht in Ihrem Konto befindet, gibt 404 zurück.
Eine einzelne Quelle aktualisieren
POST /kb-sources/{sourceId}/refresh
Liest eine bereits importierte Webseite erneut ein und gleicht deren FAQs mit dem aktuellen Inhalt der Seite ab: Geänderte Abschnitte werden aktualisiert, neue hinzugefügt und entfernte gelöscht.
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/kb_src_abc123/refresh?apiKey=YOUR_API_KEY"
Antwort — 202 Accepted
{
"success": true,
"source_id": "kb_src_abc123",
"status": "queued"
}
Fragen Sie die Quelle ab, bis ihr Status queued und processing verlässt. Eine Quellen-ID, die sich nicht in Ihrem Konto befindet, gibt 404 zurück.
Die relevantesten Seiten auswählen
POST /kb-sources/select-relevant-pages
Bittet die KI, aus einer Liste von Kandidaten die fünf Seiten auszuwählen, die ein Unternehmen am besten beschreiben – wird verwendet, wenn ein Kampagnen-Playbook von einer Website generiert wird. Dies verbraucht Credits.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
urls |
Ja | Kandidaten-Seitenadressen zur Auswahl, normalerweise aus der Seitenerkennung. |
homeUrl |
Ja | Die Startseite der Website, die als Kontext für die Auswahl verwendet wird. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-sources/select-relevant-pages?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"homeUrl": "https://example.com",
"urls": ["https://example.com/about", "https://example.com/pricing"]
}'
Antwort
{
"success": true,
"pages": [
{ "url": "https://example.com/pricing", "title": "Pricing", "type": "pricing" }
]
}
Dies ist ein Hilfsprogramm, keine Ressource: Im Fehlerfall antwortet es dennoch mit 200, mit success: false, einer leeren pages-Liste und einer error-Nachricht.
Wissensgruppen
Eine Wissensgruppe ist ein benanntes Bündel von FAQs – „Versand und Rücksendungen“, „Onboarding“ –, das Sie mit einem einzigen Aufruf auf einen Agenten oder eine Kampagne anwenden können. Die Gruppe enthält Referenzen, keine Kopien: Die FAQs selbst verbleiben in Ihrer zentralen Bibliothek. Wenn Sie also eine FAQ über die FAQs-API bearbeiten, wird sie überall dort aktualisiert, wo sie verwendet wird.
Das Anwenden einer Gruppe fügt immer nur das hinzu, was fehlt. Daher ist das zweimalige Anwenden derselben Gruppe harmlos und added_count wird beim zweiten Mal als 0 zurückgegeben.
Wissensgruppe erstellen
POST /kb-groups
Erstellt eine Gruppe. Sie ist anfangs leer – fügen Sie ihr FAQs mit FAQ zu einer Gruppe hinzufügen hinzu.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
name |
Ja | Name der Gruppe. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-groups?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Shipping and returns" }'
JavaScript
const res = await fetch("https://api.youraiconnector.com/v1/kb-groups", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ name: "Shipping and returns" }),
});
const { group_id } = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/kb-groups",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"name": "Shipping and returns"},
)
group_id = res.json()["group_id"]
Antwort — 201 Created
{
"success": true,
"group_id": "kbg_abc123"
}
Wissensgruppe umbenennen
PUT /kb-groups/{groupId}
Ändert den Namen einer Gruppe. Die enthaltenen FAQs bleiben unverändert.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
name |
Ja | Neuer Name für die Gruppe. |
cURL
curl -X PUT "https://api.youraiconnector.com/v1/kb-groups/kbg_abc123?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Shipping, returns and refunds" }'
Antwort
{
"success": true,
"group_id": "kbg_abc123",
"name": "Shipping, returns and refunds"
}
Wissensgruppe löschen
DELETE /kb-groups/{groupId}
Löscht die Gruppe. Nur das Bündel wird entfernt – die darin enthaltenen FAQs verbleiben in Ihrer Bibliothek, und alles, worauf die Gruppe bereits angewendet wurde, behält diese FAQs bei.
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/kb-groups/kbg_abc123?apiKey=YOUR_API_KEY"
Antwort
{
"success": true
}
FAQ zu einer Gruppe hinzufügen
POST /kb-groups/{groupId}/faqs
Fügt eine bestehende FAQ zu einer Gruppe hinzu. Dies ändert nur das Paket – es verknüpft die FAQ nicht von selbst mit einem Agenten; wenden Sie dafür die Gruppe an.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
faq_id |
Ja | ID der hinzuzufügenden FAQ. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-groups/kbg_abc123/faqs?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "faq_id": "aBcD1234eFgH5678" }'
Antwort
{
"success": true,
"group_id": "kbg_abc123",
"faq_id": "aBcD1234eFgH5678"
}
FAQ aus einer Gruppe entfernen
DELETE /kb-groups/{groupId}/faqs/{faqId}
Entfernt eine FAQ aus einer Gruppe. Die FAQ selbst wird nicht gelöscht, und Agenten, auf die die Gruppe bereits angewendet wurde, behalten sie.
cURL
curl -X DELETE "https://api.youraiconnector.com/v1/kb-groups/kbg_abc123/faqs/aBcD1234eFgH5678?apiKey=YOUR_API_KEY"
Antwort
{
"success": true,
"group_id": "kbg_abc123",
"faq_id": "aBcD1234eFgH5678"
}
Eine Gruppe auf einen Agenten anwenden
POST /kb-groups/{groupId}/apply-to-agent
Fügt jede FAQ in der Gruppe mit einem einzigen Aufruf zum Wissen eines KI-Agenten hinzu – der schnelle Weg, einem neuen Agenten einen bereits kuratierten Wissensbestand zu geben.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
agent_id |
Ja | ID des KI-Agenten, auf den die Gruppe angewendet werden soll. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-groups/kbg_abc123/apply-to-agent?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_id": "ag7HkQ2ZpLxR3mNb" }'
JavaScript
const res = await fetch(
"https://api.youraiconnector.com/v1/kb-groups/kbg_abc123/apply-to-agent",
{
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ agent_id: "ag7HkQ2ZpLxR3mNb" }),
}
);
const { added_count } = await res.json();
Python
import requests
res = requests.post(
"https://api.youraiconnector.com/v1/kb-groups/kbg_abc123/apply-to-agent",
headers={"X-API-Key": "YOUR_API_KEY"},
json={"agent_id": "ag7HkQ2ZpLxR3mNb"},
)
added_count = res.json()["added_count"]
Antwort
{
"success": true,
"group_id": "kbg_abc123",
"agent_id": "ag7HkQ2ZpLxR3mNb",
"added_count": 12
}
added_count gibt an, wie viele FAQs tatsächlich hinzugefügt wurden – 0, wenn die Gruppe leer ist oder bereits angewendet wurde.
Eine Gruppe auf eine Kampagne anwenden
POST /kb-groups/{groupId}/apply-to-campaign
Die Classic-Campaign-Version des obigen Aufrufs. Verwenden Sie bei einem Agenten-basierten Konto stattdessen Eine Gruppe auf einen Agenten anwenden.
Anfragefelder
| Feld | Erforderlich | Beschreibung |
|---|---|---|
campaign_id |
Ja | ID der Kampagne, auf die die Gruppe angewendet werden soll. |
cURL
curl -X POST "https://api.youraiconnector.com/v1/kb-groups/kbg_abc123/apply-to-campaign?apiKey=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "campaign_id": "campaign123" }'
Antwort
{
"success": true,
"group_id": "kbg_abc123",
"campaign_id": "campaign123",
"added_count": 12
}
Fehler der Knowledge Base API
Diese Endpunkte geben den Standard-Fehler-Envelope zurück:
{
"success": false,
"error": "Knowledge base source not found."
}
| Status | Wenn es bei einem Knowledge-Base-Endpunkt auftritt |
|---|---|
400 |
Ein erforderliches Feld fehlt oder ist ungültig – ein leeres url, ein fehlendes baseUrl oder jobId, mehr als 100 URLs bei einem Massenimport, mehr als 2.000 IDs bei einer Massenlöschung oder ein Dateityp, den wir nicht lesen können. |
402 |
Nicht genügend Credits, um den Import auszuführen. Laden Sie Ihr Guthaben auf und versuchen Sie es erneut. |
403 |
Ein storage_path außerhalb Ihres eigenen Upload-Ordners – oder Ihr Plan beinhaltet keinen API-Zugriff. |
404 |
Die Quelle, Gruppe, FAQ, der Agent, die Kampagne oder der Aktualisierungsauftrag wurde nicht gefunden – entweder existiert er nicht oder er gehört zu einem anderen Konto. |
Soft-Failures sind keine Fehler. Discovery (
discover-pages,refresh-domain) und der Seiten-Auswahl-Helfer antworten bei200mitsuccess: falseund einererror-Nachricht, wenn die Website nicht gelesen werden kann, anstatt die Anfrage fehlschlagen zu lassen. Überprüfen Sie immersuccess, bevor Sie die Daten lesen.
Die gemeinsamen Codes, die jeder Endpunkt zurückgeben kann — 401, 403 (Ihr Plan beinhaltet keinen API-Zugriff), 429 (Ratenbegrenzung) und 500 — sind zusammen mit Hinweisen zur Wiederholung unter Fehler & Paginierung aufgeführt.
Verwandte Themen
- FAQs API – Lesen, Bearbeiten und Verknüpfen der FAQs, die Ihre Quellen erzeugen.
- FAQs verwalten – dieselbe Knowledge Base im Dashboard.
- KI-Agenten – die Agenten, denen Sie Quellen und Gruppen zuweisen.
- API-Zugriff – Generieren Sie Ihren API-Schlüssel.
- Authentifizierung – alle Möglichkeiten, Ihren Schlüssel zu übermitteln.