Les articles sont les éléments de base de votre Knowledge Base. Créez, listez, mettez à jour et supprimez le contenu que votre AI Agent utilise pour répondre aux questions.
Les articles sont les éléments de base de la Knowledge Base de votre AI Agent. Chaque article représente une unité de connaissance — une page d’aide, une entrée de FAQ, une description de produit ou tout contenu que votre IA doit connaître.
Il existe trois types d’articles : Articles (documents complets avec titre et corps), Paragraphs (courtes entrées de texte autonomes) et URL articles (créés automatiquement lors de l’import de contenu web). Vous pouvez créer des articles manuellement via l’API, les importer depuis des sites web via Import External Content, téléverser des fichiers via File Upload, ou synchroniser depuis Intercom.
Il n’y a aucune étape de réentraînement. Chaque article que vous créez, mettez à jour ou supprimez est traité automatiquement en arrière-plan et prend effet dès que c’est terminé — généralement en quelques secondes. Suivez-le avec le champ embed_state ci-dessous, ou avec pending_embed_count dans Get Knowledge Base Settings.
Vérifications facultatives sur des exemples
Section intitulée « Vérifications facultatives sur des exemples »-
Prévisualiser une requête d’Action API. Complétez un modèle de requête fourni avec des valeurs synthétiques sans l’envoyer. Omettez les en-têtes contenant des identifiants.
-
Prévisualiser les correspondances JSONPath. Vérifiez des chemins racine, champ, index de tableau et joker dans le JSON fourni. Aucune Action n’est exécutée et la mémoire de conversation n’est pas modifiée.
Create Article
Section intitulée « Create Article »POST https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body
| Parameter | Description |
|---|---|
content string, required | Contenu de l’article |
type string | "Article" (par défaut) ou "Paragraph" |
title string | Titre de l’article |
"Article"— Un document complet de la knowledge base avec titre et contenu. À utiliser pour les entrées de FAQ, les articles d’aide, les descriptions de produits."Paragraph"— Une courte entrée de texte autonome sans titre. À utiliser pour des faits brefs, des réponses en une ligne, des données de référence rapides."URL"(lecture seule) — Créé automatiquement lorsque du contenu est importé depuis un site web. Contient le contenu de la page scrapée avec l’URL source. Ne peut pas être défini à la création.
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", "embed_state": "pending", "refresh_failure_reason": "", "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 | ID numérique de l’article. C’est l’identifiant canonique utilisé dans tous les chemins d’URL |
article_id string | Identifiant chaîne hérité. Peut être vide — utilisez id à la place |
type string | "Article", "Paragraph", ou "URL" |
title string | Titre de l’article |
description string | Description de l’article |
content string | Contenu de l’article |
deploy_state string | "draft" ou "published" — un simple libellé (voir la note ci-dessous) |
embed_state string or null | Indique si l’article est en ligne : "pending", "embedding", "embedded", ou "failed" (voir la note ci-dessous) |
state string | Statut de traitement interne (voir la note ci-dessous) |
refresh_failure_reason string | Raison de l’échec de la dernière actualisation de l’URL. Vide lorsqu’aucun échec d’actualisation classifié n’est enregistré |
version integer or null | Numéro de version actuel |
max_available_version integer or null | Version la plus élevée disponible |
url string or null | URL source (pour les articles de type URL) |
tags array of strings | Tags associés |
created_timestamp string | Date de création |
last_modified_timestamp string | Date de dernière modification |
downloaded_timestamp string | Date de téléchargement |
last_updated_timestamp string | Date de dernière mise à jour |
last_updated_from_external_source_timestamp string or null | Dernière mise à jour depuis une source externe |
Les articles ont trois champs d’état. Un seul d’entre eux indique si votre AI Agent utilise l’article :
embed_state: Celui qui compte."pending"et"embedding"signifient que l’article est encore en cours de traitement ;"embedded"signifie qu’il est en ligne et que votre AI Agent l’utilise ;"failed"signifie que le traitement n’a pas abouti et que l’article n’est pas utilisé. C’est le champ à interroger après une écriture.deploy_state:"draft"ou"published". Un simple libellé pour votre propre organisation — il n’a aucune incidence sur l’utilisation de l’article par l’IA.state: Statut interne de récupération du contenu. Pour la plupart des utilisateurs de l’API, il peut être ignoré. Pour un article URL,"refresh_failed"signifie que la dernière actualisation n’a pas remplacé le contenu enregistré.refresh_failure_reason: Une catégorie stable pour un échec classifié de l’actualisation d’une URL :"http_error","soft_404","off_domain_redirect","auth_wall","error_page","empty_content"ou"thin_content". Ce champ peut être vide si la récupération a échoué avant que Quickchat puisse classifier la page. Le dernier contenu enregistré reste en ligne, sauf siembed_stateest également"failed".
List Articles
Section intitulée « List Articles »GET https://app.quickchat.ai/v1/api/knowledge_base/articles/
Query Parameters
| Parameter | Description |
|---|---|
limit integer | Éléments par page |
offset integer | Éléments à ignorer |
types string | Filtre par type : Article, Paragraph, URL |
tags string | Filtre par tag |
url string | Filtre par URL |
title string | Filtre par titre |
query string | Recherche par contenu |
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", "embed_state": "embedded", "refresh_failure_reason": "", "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}La réponse de liste n’inclut pas le champ content. Utilisez Get Article pour récupérer le contenu complet d’un article spécifique.
Get Article
Section intitulée « 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 — Retourne l’objet article complet (même schéma que la réponse de Create Article), y compris le champ content.
Update Article
Section intitulée « Update Article »PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
Request Body
| Parameter | Description |
|---|---|
content string | Contenu de l’article mis à jour |
title string | Titre mis à jour |
tags array of strings | Tags mis à jour |
save_mode string | "draft" (par défaut) ou "publish" |
L’option save_mode: "draft" ne fait que définir le flag deploy_state — elle ne retient pas le contenu vis-à-vis de l’IA. Un article en brouillon est traité et utilisé exactement comme un article publié. Ne comptez pas dessus pour préparer du contenu en attente ; n’écrivez un article que lorsque vous êtes prêt à le mettre en ligne.
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 — Retourne l’objet article mis à jour.
Delete Articles
Section intitulée « Delete Articles »Supprimez un ou plusieurs articles par ID.
Portée: write_allDELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/
Request Body — Tableau JSON d’IDs d’articles.
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 intitulée « Search Articles »Recherchez dans le contenu des articles avec correspondance textuelle.
Portée: read_allGET https://app.quickchat.ai/v1/api/knowledge_base/articles/search
Query Parameters
| Parameter | Description |
|---|---|
query string, required | Requête de recherche |
is_case_insensitive boolean | Recherche insensible à la casse (par défaut : true) |
with_title_url_and_tags boolean | Inclure titre/URL/tags dans la recherche (par défaut : true) |
strict_search boolean | Exiger une correspondance exacte (par défaut : false) |
num_of_display_articles integer | Nombre d’articles à afficher (par défaut : 5) |
num_of_data_articles integer | Nombre d’articles à parcourir (par défaut : 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 intitulée « List Paragraphs »Listez tous les articles de type Paragraph. Les Paragraphs sont de courtes entrées de texte autonomes sans titre — par opposition aux Articles complets qui ont à la fois un titre et un corps de contenu.
Portée: read_allGET https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs
Query Parameters
| Parameter | Description |
|---|---|
limit integer | Éléments par page |
offset integer | Éléments à ignorer |
query string | Filtre par contenu |
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}