API
Senast uppdaterad:
Quickchat AI tillhandahaller ett REST API for programmatisk atkomst till din AI-assistents kunskapsbas, konversationer, AI Actions med mera.
Autentisering
Section titled “Autentisering”Alla API-endpoints anvander Bearer-tokenautentisering. Inkludera din API-token i Authorization-headern i varje begaran:
Authorization: Bearer <API_TOKEN>Tokens skapas i Quickchat Dashboard under Integrations > API. Varje token ar en JWT som innehaller ditt scenario_id, sa inget ytterligare identifieringshuvud behovs.
- Tokens giltighet: 52 veckor fran skapandet
- Tokens kan aterkallas nar som helst fran Dashboard
- Varje token ar kopplad till en enskild AI-assistent (scenario)
Bas-URL
Section titled “Bas-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/ |
Hastighetsbegransningar
Section titled “Hastighetsbegransningar”Hastighetsbegransningar tillampas per token och endpoint.
| Niva | Grans | Galler for |
|---|---|---|
| READ | 120 begaran/min | GET- och listoperationer |
| WRITE | 60 begaran/min | POST, PATCH, PUT, DELETE |
| HEAVY | 20 begaran/min | Filuppladdningar, importer, skrapning |
Nar en hastighetsbegransning overskrides returnerar API:et HTTP 429 Too Many Requests.
Paginering
Section titled “Paginering”Listendpoints stoder paginering via frågeparametrar:
| Parameter | Type | Description |
|---|---|---|
limit | integer | Antal objekt per sida |
offset | integer | Antal objekt att hoppa over |
Paginerade svar foljer denna struktur:
{ "items": [], "offset": 0, "count": 100}Felhantering
Section titled “Felhantering”Alla fel returneras som JSON i foljande format:
{ "errors": { "root": [ { "message": "Description of the error", "code": "ERROR_CODE" } ] }}| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Ogiltig indata eller saknade obligatoriska falt |
| 401 | PERMISSION_DENIED | Ogiltig, utgangen eller aterkallad token |
| 402 | PAYMENT_REQUIRED | Aktiv prenumeration kravs |
| 404 | NOT_FOUND | Resursen hittades inte |
| 409 | CONFLICT | Konfliktande operation (t.ex. samtidig andring) |
| 422 | VALIDATION_ERROR | Begaran klarade inte schemavalidering |
| 429 | TOO_MANY_REQUESTS | Hastighetsbegransning overskriden |
| 500 | UNKNOWN | Internt serverfel |
| 503 | SERVICE_UNAVAILABLE | Tillfallig otillganglighet |
Chat (aldre autentisering)
Section titled “Chat (aldre autentisering)”Chat-endpointet anvander aldre autentisering med api_key och scenario_id i begaran. Det anvander inte Bearer-tokens.
Skicka meddelande
Section titled “Skicka meddelande”POST https://chat.quickchat.ai/chat
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | Yes | Din API-nyckel fran Dashboard |
scenario_id | string | Yes | ID for din AI-assistent |
text | string | Yes | Anvandarens meddelande |
conv_id | string | No | Konversations-ID. Utelamna for att starta en ny konversation |
message_context | string | No | Extra kontext per meddelande som skickas till AI:n |
client_metadata | object | No | Egna nyckel-varde-par (max 5 nycklar) kopplade till meddelanden |
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 | Sekventiellt meddelandenummer i konversationen |
conv_id | string | Konversationsidentifierare (anvand for att fortsatta konversationen) |
reply | string | AI-assistentens svar |
Kunskapsbas
Section titled “Kunskapsbas”Hamta installningar
Section titled “Hamta installningar”Hamta konfigurationen for din kunskapsbas.
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 | Kort etikett for kunskapsbasen |
short_description | string | Beskrivning av AI-assistentens syfte |
ai_commands | array of strings | Anpassade instruktioner for AI:n |
retrain_state | string or null | Aktuell traningsstatus |
Uppdatera installningar
Section titled “Uppdatera installningar”PATCH https://app.quickchat.ai/v1/api/knowledge_base/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
one_word_description | string | No | Kort etikett for kunskapsbasen |
short_description | string | No | Beskrivning av AI-assistentens syfte |
ai_commands | array of strings | No | Anpassade instruktioner for AI:n |
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 — Returnerar de uppdaterade kunskapsbasinstallningarna (samma schema som Hamta installningar).
Artiklar
Section titled “Artiklar”Skapa artikel
Section titled “Skapa artikel”POST https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | Yes | Artikelinnehall |
type | string | No | "Article" (standard) eller "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()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 artiklar
Section titled “Lista artiklar”GET https://app.quickchat.ai/v1/api/knowledge_base/articles/
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Antal objekt per sida |
offset | integer | No | Antal objekt att hoppa over |
types | string | No | Filtrera efter typ: Article, Paragraph |
tags | string | No | Filtrera efter tagg |
url | string | No | Filtrera efter URL |
title | string | No | Filtrera efter titel |
query | string | No | Sok efter innehall |
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}Hamta artikel
Section titled “Hamta artikel”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 — Returnerar det fullstandiga artikelobjektet (samma schema som svaret for Skapa artikel).
Uppdatera artikel
Section titled “Uppdatera artikel”PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | No | Uppdaterat artikelinnehall |
title | string | No | Uppdaterad titel |
tags | array of strings | No | Uppdaterade taggar |
save_mode | string | No | "draft" (standard) eller "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 — Returnerar det uppdaterade artikelobjektet.
Ta bort artiklar
Section titled “Ta bort artiklar”Ta bort en eller flera artiklar via ID.
DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body — JSON-array med artikel-ID:n.
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
Sok i artiklar
Section titled “Sok i artiklar”Sok igenom artikelinnehall med textmatchning.
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/search
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Sokfraga |
is_case_insensitive | boolean | No | Skiftlagesokanslig sokning (standard: true) |
with_title_url_and_tags | boolean | No | Inkludera titel/URL/taggar i sokningen (standard: true) |
strict_search | boolean | No | Krav exakt matchning (standard: false) |
num_of_display_articles | integer | No | Antal artiklar att visa (standard: 5) |
num_of_data_articles | integer | No | Antal artiklar att soka i (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()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 stycken
Section titled “Lista stycken”Lista alla stycken (uppdelat innehall) i kunskapsbasen.
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Antal objekt per sida |
offset | integer | No | Antal objekt att hoppa over |
query | string | No | Filtrera efter innehall |
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}Artikelsprak-URL:er
Section titled “Artikelsprak-URL:er”Hantera sprakspecifika URL:er for artiklar. Dessa URL:er gor det mojligt att lanka artiklar till lokaliserade versioner av innehallet.
Hamta sprak-URL
Section titled “Hamta sprak-URL”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"}Skapa sprak-URL
Section titled “Skapa sprak-URL”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 for den sprakspecifika versionen |
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"}Uppdatera sprak-URL
Section titled “Uppdatera sprak-URL”PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Uppdaterad URL |
Response 200 OK — Returnerar det uppdaterade URL-objektet.
Ta bort sprak-URL
Section titled “Ta bort sprak-URL”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
Taggar
Section titled “Taggar”Lista taggar
Section titled “Lista taggar”Hamta alla taggar som anvands i kunskapsbasens artiklar.
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"]Filuppladdning
Section titled “Filuppladdning”Ladda upp filer som bearbetas och laggs till i kunskapsbasen som artiklar.
Ladda upp PDF
Section titled “Ladda upp PDF”POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/pdf
Ladda upp en PDF-fil. Innehallet extraheras och laggs till som en artikel.
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 | Bearbetningsstatus |
message | string | Lasbart resultatmeddelande |
article | object | Den skapade artikeln |
Ladda upp fil
Section titled “Ladda upp fil”POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/
Ladda upp en fil som stods (PDF, DOCX). Innehallet extraheras och laggs till som en artikel.
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 — Samma schema som Ladda upp PDF.
Importera externt innehall
Section titled “Importera externt innehall”Importera innehall fran externa kallor till kunskapsbasen. Dessa endpoints bearbetar innehall asynkront.
Skrapa webbplats
Section titled “Skrapa webbplats”Skrapa en enskild webbsida eller en hel webbplats och importera innehallet.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/website
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | URL att skrapa |
mode | string | No | "individual" (standard), "site_wide" eller "individual_with_summary" |
phrases | array of strings | No | Nyckelfraser att extrahera |
html_selector | string | No | CSS-selektor for att rikta in specifikt innehall |
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": {}}Importera YouTube-transkription
Section titled “Importera YouTube-transkription”Importera transkriptionen fran en YouTube-video.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/youtube
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | YouTube-videons URL |
toast_process_uuid | string | Yes | UUID v4 for att spara importprocessen |
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 — Transkriptionen bearbetas asynkront.
Importera webbplatskarta
Section titled “Importera webbplatskarta”Importera innehall fran alla lankar i en XML-webbplatskarta.
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/site-map
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
site_map | string | Yes | URL till en XML-webbplatskarta |
link_filter_regex | string | No | Regex for att filtrera vilka lankar som importeras (standard: ".*") |
html_selector | string | No | CSS-selektor for att rikta in specifikt innehall |
summarize | boolean | No | Om importerat innehall ska sammanfattas (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()Response 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}Skrapa lista med lankar
Section titled “Skrapa lista med lankar”Importera innehall fran en specifik lista med URL:er.
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 med URL:er att skrapa (far inte vara tom) |
tags | array of strings | No | Taggar att tilldelaa importerade artiklar |
html_selector | string | No | CSS-selektor for att rikta in specifikt innehall |
summarize | boolean | No | Om importerat innehall ska sammanfattas (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()Response 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}Kallor
Section titled “Kallor”Hantera externa innehallskallor (t.ex. Intercom, Shopify) som synkroniserar artiklar till din kunskapsbas.
Sokvagparametern {source} accepterar varden som "intercom", "shopify" osv.
Importera kallartiklar
Section titled “Importera kallartiklar”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 — Returnerar en lista med importerade artikelogonblicksbilder.
Ta bort kallartiklar
Section titled “Ta bort kallartiklar”POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/delete
Tar bort alla artiklar som importerats fran den angivna kallan.
Response 204 No Content
Jamfor kallartiklar
Section titled “Jamfor kallartiklar”Jamfor lokala artiklar med den externa kallan for att upptacka andringar.
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" eller "UNCHANGED" |
external_article_diff | string | "CHANGED", "UNCHANGED" eller "REMOVED" |
article_snapshot | object | Artikelogonblicksbild |
Intercom-kunskapsbas
Section titled “Intercom-kunskapsbas”Dedikerade endpoints for hantering av Intercom-kunskapsbasintegrationen.
Uppdatera Intercom-artiklar
Section titled “Uppdatera Intercom-artiklar”Hamta om innehall fran Intercom for befintliga artiklar.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/refresh_articles
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
article_ids | array of integers | No | Specifika artikel-ID:n att uppdatera (standard: alla) |
fetch_new_articles | boolean | No | Om nya artiklar ska hamtas (standard: true) |
Response 204 No Content
Importera Intercom-artiklar
Section titled “Importera Intercom-artiklar”Importera alla artiklar fran Intercom.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/import
Response 200 OK — Returnerar en lista med importerade artikelogonblicksbilder.
Ta bort Intercom-artiklar
Section titled “Ta bort Intercom-artiklar”Ta bort alla artiklar fran Intercom ur kunskapsbasen.
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/delete
Response 204 No Content
Jamfor Intercom-artiklar
Section titled “Jamfor Intercom-artiklar”Jamfor lokala artiklar med Intercom for att upptacka andringar.
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 — Returnerar en lista med artikeldiff-objekt (samma schema som Jamfor kallartiklar).
Konversationer
Section titled “Konversationer”Lista konversationer
Section titled “Lista konversationer”GET https://app.quickchat.ai/v1/api_core/conversations
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Antal objekt per sida |
offset | integer | No | Antal objekt att hoppa over |
query | string | No | Sok efter ordningsnummer, UUID eller meddelandetext |
assignee_type | string | No | "ai_assistant", "human_operator" eller "unassigned" |
source | string | No | "widget", "slack", "telegram", "whatsapp" osv. |
resolution_status | string | No | "open" eller "resolved" |
created_timestamp_start_date | datetime | No | Filtrera efter skapandedatum (start) |
created_timestamp_end_date | datetime | No | Filtrera efter skapandedatum (slut) |
last_message_at_start_date | datetime | No | Filtrera efter senaste meddelandedatum (start) |
last_message_at_end_date | datetime | No | Filtrera efter senaste meddelandedatum (slut) |
most_frequent_language | string | No | Filtrera efter detekterat sprak |
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}Hamta konversationsdetaljer
Section titled “Hamta konversationsdetaljer”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}Konversationsmetadata
Section titled “Konversationsmetadata”Lagra och hamta anpassad metadata for konversationer. Metadata valideras mot ett JSON-schema om ett sadant ar konfigurerat i Dashboard.
Hamta metadata
Section titled “Hamta metadata”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" }}Ange metadata
Section titled “Ange metadata”Skapa eller uppdatera metadata for en konversation.
POST https://app.quickchat.ai/v1/api_core/conversations/{conv_id}/metadata
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
metadata | object | Yes | Nyckel-varde-metadata att lagra |
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" }}AI Actions
Section titled “AI Actions”Skapa KB AI Action
Section titled “Skapa KB AI Action”Skapa en ny Knowledge Base AI Action. KB AI Actions gor det mojligt for AI:n att soka i taggade delmangder av kunskapsbasen nar de utloses.
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 | AI Action-identifierare |
name | string | Visningsnamn (max 100 tecken) |
description | string | Beskrivning av nar aktionen ska utlosas (max 1000 tecken) |
icon | string or null | Ikonidentifierare |
icon_color | string or null | Ikonfarg |
is_active | boolean | Om aktionen ar aktiverad |
is_valid | boolean | Om aktionen ar korrekt konfigurerad |
tag | string or null | Kunskapsbastagg for att filtrera artiklar (max 255 tecken) |
parameter_description | string | Beskrivning av parametern som AI:n extraherar (max 500 tecken) |
type | string | Alltid "knowledge_base" |
Hamta KB AI Action
Section titled “Hamta KB AI Action”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 — Returnerar AI Action-objektet (samma schema som svaret for Skapa KB AI Action).
Uppdatera KB AI Action
Section titled “Uppdatera KB AI Action”PUT https://app.quickchat.ai/v1/api/ai_actions/{action_id}/knowledge_base
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Visningsnamn (max 100 tecken) |
description | string | Yes | Nar aktionen ska utlosas (max 1000 tecken) |
parameter_description | string | Yes | Parameterbeskrivning (max 500 tecken) |
tag | string | Yes | Kunskapsbastagg att filtrera pa (max 255 tecken) |
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 — Returnerar det uppdaterade AI Action-objektet.