API
Ostatnia aktualizacja:
Quickchat AI udostepnia REST API umozliwiajace programistyczny dostep do Bazy Wiedzy, Rozmow, Akcji AI i innych funkcji Twojego Asystenta AI.
Uwierzytelnianie
Dział zatytułowany „Uwierzytelnianie”Wszystkie endpointy API korzystaja z uwierzytelniania za pomoca tokena Bearer. Dolacz swoj token API w naglowku Authorization kazdego zadania:
Authorization: Bearer <API_TOKEN>Tokeny tworzy sie w Panelu Quickchat w sekcji Integrations > API. Kazdy token to JWT zawierajacy Twoje scenario_id, wiec nie jest potrzebny dodatkowy naglowek identyfikujacy.
- Waznosc tokena: 52 tygodnie od utworzenia
- Tokeny mozna odwolac w dowolnym momencie z Panelu
- Kazdy token jest przypisany do jednego Asystenta AI (scenariusza)
Bazowy URL
Dział zatytułowany „Bazowy 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/ |
Limity zapytan
Dział zatytułowany „Limity zapytan”Limity zapytan sa stosowane per token, per endpoint.
| Tier | Limit | Applies To |
|---|---|---|
| READ | 120 requests/min | Operacje GET i listowania |
| WRITE | 60 requests/min | POST, PATCH, PUT, DELETE |
| HEAVY | 20 requests/min | Przesylanie plikow, importy, scrapowanie |
Po przekroczeniu limitu zapytan API zwraca HTTP 429 Too Many Requests.
Paginacja
Dział zatytułowany „Paginacja”Endpointy listujace obsluguja paginacje za pomoca parametrow zapytania:
| Parameter | Type | Description |
|---|---|---|
limit | integer | Liczba elementow na strone |
offset | integer | Liczba elementow do pominiecia |
Odpowiedzi z paginacja maja nastepujaca strukture:
{ "items": [], "offset": 0, "count": 100}Obsluga bledow
Dział zatytułowany „Obsluga bledow”Wszystkie bledy sa zwracane jako JSON w nastepujacym formacie:
{ "errors": { "root": [ { "message": "Description of the error", "code": "ERROR_CODE" } ] }}| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Nieprawidlowe dane wejsciowe lub brakujace wymagane pola |
| 401 | PERMISSION_DENIED | Nieprawidlowy, wygasly lub odwolany token |
| 402 | PAYMENT_REQUIRED | Wymagana aktywna subskrypcja |
| 404 | NOT_FOUND | Zasob nie znaleziony |
| 409 | CONFLICT | Konflikt operacji (np. rownolegle modyfikacje) |
| 422 | VALIDATION_ERROR | Tresc zadania nie przeszla walidacji schematu |
| 429 | TOO_MANY_REQUESTS | Przekroczono limit zapytan |
| 500 | UNKNOWN | Wewnetrzny blad serwera |
| 503 | SERVICE_UNAVAILABLE | Tymczasowa niedostepnosc |
Chat (stare uwierzytelnianie)
Dział zatytułowany „Chat (stare uwierzytelnianie)”Endpoint Chat uzywa starszego uwierzytelniania z api_key i scenario_id w tresci zadania. Nie uzywa tokenow Bearer.
Wyslij wiadomosc
Dział zatytułowany „Wyslij wiadomosc”POST https://chat.quickchat.ai/chat
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | Yes | Twoj klucz API z Panelu |
scenario_id | string | Yes | ID Twojego Asystenta AI |
text | string | Yes | Wiadomosc od uzytkownika |
conv_id | string | No | ID rozmowy. Pomin, aby rozpoczac nowa rozmowe |
message_context | string | No | Dodatkowy kontekst per wiadomosc przekazywany do AI |
client_metadata | object | No | Niestandardowe pary klucz-wartosc (maks. 5 kluczy) dolaczane do wiadomosci |
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()Response 200 OK
{ "ord_number": 236, "conv_id": "abcd1234", "reply": "Hey there!"}| Field | Type | Description |
|---|---|---|
ord_number | integer | Kolejny numer wiadomosci w rozmowie |
conv_id | string | Identyfikator rozmowy (uzyj do kontynuowania rozmowy) |
reply | string | Odpowiedz Asystenta AI |
Baza Wiedzy
Dział zatytułowany „Baza Wiedzy”Pobierz ustawienia
Dział zatytułowany „Pobierz ustawienia”Pobierz konfiguracje Bazy Wiedzy.
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()Response 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 | Krotka etykieta Bazy Wiedzy |
short_description | string | Opis przeznaczenia Asystenta AI |
ai_commands | array of strings | Niestandardowe instrukcje dla AI |
retrain_state | string or null | Aktualny status trenowania |
Zaktualizuj ustawienia
Dział zatytułowany „Zaktualizuj ustawienia”PATCH https://app.quickchat.ai/v1/api/knowledge_base/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
one_word_description | string | No | Krotka etykieta Bazy Wiedzy |
short_description | string | No | Opis przeznaczenia Asystenta AI |
ai_commands | array of strings | No | Niestandardowe instrukcje dla AI |
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()Response 200 OK — Zwraca zaktualizowane ustawienia Bazy Wiedzy (ten sam schemat co Pobierz ustawienia).
Artykuly
Dział zatytułowany „Artykuly”Utworz artykul
Dział zatytułowany „Utworz artykul”POST https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Tresc artykulu |
type | string | No | "Article" (domyslnie) lub "Paragraph" |
title | string | No | Tytul artykulu |
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()Response 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"}Lista artykulow
Dział zatytułowany „Lista artykulow”GET https://app.quickchat.ai/v1/api/knowledge_base/articles/
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Elementow na strone |
offset | integer | No | Elementow do pominiecia |
types | string | No | Filtruj po typie: Article, Paragraph |
tags | string | No | Filtruj po tagu |
url | string | No | Filtruj po URL |
title | string | No | Filtruj po tytule |
query | string | No | Szukaj po tresci |
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()Response 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}Pobierz artykul
Dział zatytułowany „Pobierz artykul”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()Response 200 OK — Zwraca pelny obiekt artykulu (ten sam schemat co odpowiedz Utworz artykul).
Zaktualizuj artykul
Dział zatytułowany „Zaktualizuj artykul”PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | No | Zaktualizowana tresc artykulu |
title | string | No | Zaktualizowany tytul |
tags | array of strings | No | Zaktualizowane tagi |
save_mode | string | No | "draft" (domyslnie) lub "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()Response 200 OK — Zwraca zaktualizowany obiekt artykulu.
Usun artykuly
Dział zatytułowany „Usun artykuly”Usun jeden lub wiecej artykulow po ID.
DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body — Tablica JSON z ID artykulow.
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],)Response 200 OK
Wyszukaj artykuly
Dział zatytułowany „Wyszukaj artykuly”Wyszukuj w tresci artykulow za pomoca dopasowania tekstowego.
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/search
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Zapytanie wyszukiwania |
is_case_insensitive | boolean | No | Wyszukiwanie bez rozrozniania wielkosci liter (domyslnie: true) |
with_title_url_and_tags | boolean | No | Uwzglednij tytul/URL/tagi w wyszukiwaniu (domyslnie: true) |
strict_search | boolean | No | Wymagaj dokladnego dopasowania (domyslnie: false) |
num_of_display_articles | integer | No | Liczba artykulow do wyswietlenia (domyslnie: 5) |
num_of_data_articles | integer | No | Liczba artykulow do przeszukania (domyslnie: 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()Response 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 }}Lista akapitow
Dział zatytułowany „Lista akapitow”Lista wszystkich akapitow (podzielonej tresci) w Bazie Wiedzy.
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Elementow na strone |
offset | integer | No | Elementow do pominiecia |
query | string | No | Filtruj po tresci |
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()Response 200 OK
{ "items": [ { "id": 1, "content": "Our return policy allows returns within 30 days." } ], "offset": 0, "count": 1}Adresy URL artykulow w roznych jezykach
Dział zatytułowany „Adresy URL artykulow w roznych jezykach”Zarzadzaj adresami URL artykulow specyficznymi dla danego jezyka. Pozwalaja one na linkowanie artykulow do zlokalizowanych wersji tresci.
Pobierz URL jezykowy
Dział zatytułowany „Pobierz URL jezykowy”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()Response 200 OK
{ "url": "https://example.com/en/return-policy"}Utworz URL jezykowy
Dział zatytułowany „Utworz URL jezykowy”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 wersji jezykowej |
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()Response 200 OK
{ "url": "https://example.com/en/return-policy"}Zaktualizuj URL jezykowy
Dział zatytułowany „Zaktualizuj URL jezykowy”PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Zaktualizowany URL |
Response 200 OK — Zwraca zaktualizowany obiekt URL.
Usun URL jezykowy
Dział zatytułowany „Usun URL jezykowy”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>"},)Response 200 OK
Lista tagow
Dział zatytułowany „Lista tagow”Pobierz wszystkie tagi uzywane w artykulach Bazy Wiedzy.
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()Response 200 OK
["policies", "faq", "product-info"]Przesylanie plikow
Dział zatytułowany „Przesylanie plikow”Przesylaj pliki, ktore zostana przetworzone i dodane do Bazy Wiedzy jako artykuly.
Przeslij PDF
Dział zatytułowany „Przeslij PDF”POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/pdf
Przeslij plik PDF. Tresc zostanie wyekstrahowana i dodana jako artykul.
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()Response 200 OK
{ "status": "success", "message": "File processed successfully.", "article": { "id": 1234, "title": "document.pdf" }}| Field | Type | Description |
|---|---|---|
status | string | Status przetwarzania |
message | string | Czytelny dla czlowieka komunikat wyniku |
article | object | Utworzony artykul |
Przeslij plik
Dział zatytułowany „Przeslij plik”POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/
Przeslij obslugiwany plik (PDF, DOCX). Tresc zostanie wyekstrahowana i dodana jako artykul.
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()Response 200 OK — Ten sam schemat co Przeslij PDF.
Import tresci zewnetrznych
Dział zatytułowany „Import tresci zewnetrznych”Importuj tresc ze zrodel zewnetrznych do Bazy Wiedzy. Te endpointy przetwarzaja tresc asynchronicznie.
Scrapowanie strony internetowej
Dział zatytułowany „Scrapowanie strony internetowej”Scrapuj pojedyncza strone lub cala witryne i zaimportuj tresc.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/website
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL do scrapowania |
mode | string | No | "individual" (domyslnie), "site_wide" lub "individual_with_summary" |
phrases | array of strings | No | Kluczowe frazy do wyekstrahowania |
html_selector | string | No | Selektor CSS do wybrania konkretnej tresci |
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()Response 200 OK
{ "status": "success", "url": "https://example.com/docs", "article": {}}Importuj transkrypcje YouTube
Dział zatytułowany „Importuj transkrypcje YouTube”Importuj transkrypcje z filmu na YouTube.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/youtube
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL filmu na YouTube |
toast_process_uuid | string | Yes | UUID v4 do sledzenia procesu importu |
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()), },)Response 202 Accepted — Transkrypcja jest przetwarzana asynchronicznie.
Importuj mape witryny
Dział zatytułowany „Importuj mape witryny”Importuj tresc ze wszystkich linkow w mapie witryny XML.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/site-map
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
site_map | string | Yes | URL do mapy witryny XML |
link_filter_regex | string | No | Wyrazenie regularne do filtrowania importowanych linkow (domyslnie: ".*") |
html_selector | string | No | Selektor CSS do wybrania konkretnej tresci |
summarize | boolean | No | Czy podsumowac importowana tresc (domyslnie: 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()Response 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}Scrapuj liste linkow
Dział zatytułowany „Scrapuj liste linkow”Importuj tresc z okreslonej listy adresow URL.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/scrape-list
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
links | array of strings | Yes | Lista adresow URL do scrapowania (niepusta) |
tags | array of strings | No | Tagi do przypisania zaimportowanym artykulom |
html_selector | string | No | Selektor CSS do wybrania konkretnej tresci |
summarize | boolean | No | Czy podsumowac importowana tresc (domyslnie: 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()Response 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}Zarzadzaj zewnetrznymi zrodlami tresci (np. Intercom, Shopify), ktore synchronizuja artykuly z Twoja Baza Wiedzy.
Parametr sciezki {source} przyjmuje wartosci takie jak "intercom", "shopify" itp.
Importuj artykuly ze zrodla
Dział zatytułowany „Importuj artykuly ze zrodla”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()Response 200 OK — Zwraca liste zaimportowanych migawek artykulow.
Usun artykuly ze zrodla
Dział zatytułowany „Usun artykuly ze zrodla”POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/delete
Usuwa wszystkie artykuly zaimportowane z danego zrodla.
Response 204 No Content
Porownaj artykuly ze zrodla
Dział zatytułowany „Porownaj artykuly ze zrodla”Porownaj lokalne artykuly ze zrodlem zewnetrznym w celu wykrycia zmian.
POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/articles_diff
Response 200 OK
[ { "internal_article_diff": "CHANGED", "external_article_diff": "UNCHANGED", "article_snapshot": {} }]| Field | Type | Description |
|---|---|---|
internal_article_diff | string | "CHANGED" lub "UNCHANGED" |
external_article_diff | string | "CHANGED", "UNCHANGED" lub "REMOVED" |
article_snapshot | object | Dane migawki artykulu |
Baza Wiedzy Intercom
Dział zatytułowany „Baza Wiedzy Intercom”Dedykowane endpointy do zarzadzania integracja z Baza Wiedzy Intercom.
Odswiez artykuly Intercom
Dział zatytułowany „Odswiez artykuly Intercom”Ponownie pobierz tresc z Intercom dla istniejacych artykulow.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/refresh_articles
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
article_ids | array of integers | No | Konkretne ID artykulow do odswiezenia (domyslnie: wszystkie) |
fetch_new_articles | boolean | No | Czy pobierac nowe artykuly (domyslnie: true) |
Response 204 No Content
Importuj artykuly Intercom
Dział zatytułowany „Importuj artykuly Intercom”Importuj wszystkie artykuly z Intercom.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/import
Response 200 OK — Zwraca liste zaimportowanych migawek artykulow.
Usun artykuly Intercom
Dział zatytułowany „Usun artykuly Intercom”Usun wszystkie artykuly pochodzace z Intercom z Bazy Wiedzy.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/delete
Response 204 No Content
Porownaj artykuly Intercom
Dział zatytułowany „Porownaj artykuly Intercom”Porownaj lokalne artykuly z Intercom w celu wykrycia zmian.
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()Response 200 OK — Zwraca liste obiektow roznic artykulow (ten sam schemat co Porownaj artykuly ze zrodla).
Rozmowy
Dział zatytułowany „Rozmowy”Lista rozmow
Dział zatytułowany „Lista rozmow”GET https://app.quickchat.ai/v1/api_core/conversations
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Elementow na strone |
offset | integer | No | Elementow do pominiecia |
query | string | No | Szukaj po numerze porzadkowym, UUID lub tresci wiadomosci |
assignee_type | string | No | "ai_assistant", "human_operator" lub "unassigned" |
source | string | No | "widget", "slack", "telegram", "whatsapp" itp. |
resolution_status | string | No | "open" lub "resolved" |
created_timestamp_start_date | datetime | No | Filtruj po dacie utworzenia (poczatek) |
created_timestamp_end_date | datetime | No | Filtruj po dacie utworzenia (koniec) |
last_message_at_start_date | datetime | No | Filtruj po dacie ostatniej wiadomosci (poczatek) |
last_message_at_end_date | datetime | No | Filtruj po dacie ostatniej wiadomosci (koniec) |
most_frequent_language | string | No | Filtruj po wykrytym jezyku |
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()Response 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}Pobierz szczegoly rozmowy
Dział zatytułowany „Pobierz szczegoly rozmowy”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()Response 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}Metadane rozmowy
Dział zatytułowany „Metadane rozmowy”Przechowuj i pobieraj niestandardowe metadane rozmow. Metadane sa walidowane wedlug schematu JSON, jesli taki jest skonfigurowany w Panelu.
Pobierz metadane
Dział zatytułowany „Pobierz metadane”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()Response 200 OK
{ "metadata": { "ticket_id": "T-1234", "priority": "high" }}Ustaw metadane
Dział zatytułowany „Ustaw metadane”Utworz lub zaktualizuj metadane rozmowy.
POST https://app.quickchat.ai/v1/api_core/conversations/{conv_id}/metadata
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
metadata | object | Yes | Metadane klucz-wartosc do zapisania |
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()Response 200 OK
{ "metadata": { "ticket_id": "T-1234", "priority": "high" }}Akcje AI
Dział zatytułowany „Akcje AI”Utworz Akcje AI Bazy Wiedzy
Dział zatytułowany „Utworz Akcje AI Bazy Wiedzy”Utworz nowa Akcje AI Bazy Wiedzy. Akcje AI Bazy Wiedzy pozwalaja AI przeszukiwac otagowane podzbiory Bazy Wiedzy po ich wyzwoleniu.
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()Response 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 | Identyfikator Akcji AI |
name | string | Nazwa wyswietlana (maks. 100 znakow) |
description | string | Opis kiedy akcja powinna sie uruchomic (maks. 1000 znakow) |
icon | string or null | Identyfikator ikony |
icon_color | string or null | Kolor ikony |
is_active | boolean | Czy akcja jest wlaczona |
is_valid | boolean | Czy akcja jest prawidlowo skonfigurowana |
tag | string or null | Tag Bazy Wiedzy do filtrowania artykulow (maks. 255 znakow) |
parameter_description | string | Opis parametru wyodrebnianego przez AI (maks. 500 znakow) |
type | string | Zawsze "knowledge_base" |
Pobierz Akcje AI Bazy Wiedzy
Dział zatytułowany „Pobierz Akcje AI Bazy Wiedzy”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()Response 200 OK — Zwraca obiekt Akcji AI (ten sam schemat co odpowiedz Utworz Akcje AI Bazy Wiedzy).
Zaktualizuj Akcje AI Bazy Wiedzy
Dział zatytułowany „Zaktualizuj Akcje AI Bazy Wiedzy”PUT https://app.quickchat.ai/v1/api/ai_actions/{action_id}/knowledge_base
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Nazwa wyswietlana (maks. 100 znakow) |
description | string | Yes | Kiedy akcja powinna sie uruchomic (maks. 1000 znakow) |
parameter_description | string | Yes | Opis parametru (maks. 500 znakow) |
tag | string | Yes | Tag Bazy Wiedzy do filtrowania (maks. 255 znakow) |
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()Response 200 OK — Zwraca zaktualizowany obiekt Akcji AI.