Articles are the building blocks of your Knowledge Base. Create, list, update, and delete the content your AI Agent uses to answer questions.
Este conteúdo não está disponível em sua língua ainda.
Articles are the building blocks of your AI Agent’s Knowledge Base. Each article represents a piece of knowledge — a help page, FAQ entry, product description, or any content your AI should know about.
There are three article types: Articles (full documents with title and body), Paragraphs (short standalone text entries), and URL articles (automatically created when importing web content). You can create articles manually via the API, import them from websites using Import External Content, upload files via File Upload, or sync from Intercom.
After creating or updating articles, remember to retrain the Knowledge Base for changes to take effect.
Create Article
Section titled “Create Article”POST https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body
| Parameter | Description |
|---|---|
content string, required | Article content |
type string | "Article" (default) or "Paragraph" |
title string | Article title |
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", "deploy_state": "draft", "version": null, "max_available_version": null, "url": null, "tags": [], "created_timestamp": "2026-01-15", "last_modified_timestamp": "2026-01-15", "downloaded_timestamp": "2026-01-15", "last_updated_timestamp": "2026-01-15", "last_updated_from_external_source_timestamp": null}| Field | Description |
|---|---|
id integer | Article numeric ID. This is the canonical identifier used in all URL paths |
article_id string | Legacy string identifier. May be empty — use id instead |
type string | "Article", "Paragraph", or "URL" |
title string | Article title |
description string | Article description |
content string | Article content |
deploy_state string | "draft" or "published" — controls article visibility |
state string | Internal processing status (see note below) |
version integer or null | Current version number |
max_available_version integer or null | Highest available version |
url string or null | Source URL (for URL-type articles) |
tags array of strings | Associated tags |
created_timestamp string | Creation date |
last_modified_timestamp string | Last modification date |
downloaded_timestamp string | Download date |
last_updated_timestamp string | Last update date |
last_updated_from_external_source_timestamp string or null | Last external source update |
List Articles
Section titled “List Articles”GET https://app.quickchat.ai/v1/api/knowledge_base/articles/
Query Parameters
| Parameter | Description |
|---|---|
limit integer | Items per page |
offset integer | Items to skip |
types string | Filter by type: Article, Paragraph, URL |
tags string | Filter by tag |
url string | Filter by URL |
title string | Filter by title |
query string | Search by content |
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", "deploy_state": "published", "version": 1, "max_available_version": 1, "url": null, "tags": ["policies"], "created_timestamp": "2026-01-15", "last_modified_timestamp": "2026-01-15", "downloaded_timestamp": "2026-01-15", "last_updated_timestamp": "2026-01-15", "last_updated_from_external_source_timestamp": null } ], "offset": 0, "limit": 10, "count": 1}Get Article
Section titled “Get Article”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 — Returns the full article object (same schema as Create Article response), including the content field.
Update Article
Section titled “Update Article”PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
Request Body
| Parameter | Description |
|---|---|
content string | Updated article content |
title string | Updated title |
tags array of strings | Updated tags |
save_mode string | "draft" (default) or "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 — Returns the updated article object.
Delete Articles
Section titled “Delete Articles”Delete one or more articles by ID.
Scope: write_allDELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body — JSON array of article IDs.
curl -X DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/ \ -H 'Authorization: Bearer <API_TOKEN>' \ -H 'Content-Type: application/json' \ -d '[1234, 5678]'import requests
response = requests.delete( url="https://app.quickchat.ai/v1/api/knowledge_base/articles/", headers={"Authorization": "Bearer <API_TOKEN>"}, json=[1234, 5678],)Response 200 OK
Search Articles
Section titled “Search Articles”Search through article content with text matching.
Scope: read_allGET https://app.quickchat.ai/v1/api/knowledge_base/articles/search
Query Parameters
| Parameter | Description |
|---|---|
query string, required | Search query |
is_case_insensitive boolean | Case-insensitive search (default: true) |
with_title_url_and_tags boolean | Include title/URL/tags in search (default: true) |
strict_search boolean | Require exact match (default: false) |
num_of_display_articles integer | Number of articles to display (default: 5) |
num_of_data_articles integer | Number of articles to search (default: 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 }}List Paragraphs
Section titled “List Paragraphs”List all Paragraph-type articles. Paragraphs are short standalone text entries without a title — as opposed to full Articles which have both a title and content body.
Scope: read_allGET https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs
Query Parameters
| Parameter | Description |
|---|---|
limit integer | Items per page |
offset integer | Items to skip |
query string | Filter by content |
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}