API
最終更新日:
Quickchat AI は、AI アシスタントのナレッジベース、会話、AI アクションなどにプログラムからアクセスするための REST API を提供しています。
すべての API エンドポイントは Bearer トークン認証を使用します。すべてのリクエストの Authorization ヘッダーに API トークンを含めてください:
Authorization: Bearer <API_TOKEN>トークンは Quickchat ダッシュボード の Integrations > API で作成できます。各トークンは scenario_id を含む JWT であるため、追加の識別子ヘッダーは不要です。
- トークン有効期間:作成から 52 週間
- トークンはダッシュボードからいつでも 無効化 できます
- 各トークンは単一の AI アシスタント(シナリオ)にスコープされます
ベース URL
Section titled “ベース 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/ |
レート制限はトークンごと、エンドポイントごとに適用されます。
| Tier | Limit | Applies To |
|---|---|---|
| READ | 120 requests/min | GET およびリスト操作 |
| WRITE | 60 requests/min | POST、PATCH、PUT、DELETE |
| HEAVY | 20 requests/min | ファイルアップロード、インポート、スクレイピング |
レート制限を超過すると、API は HTTP 429 Too Many Requests を返します。
ページネーション
Section titled “ページネーション”リストエンドポイントはクエリパラメータによるページネーションをサポートしています:
| Parameter | Type | Description |
|---|---|---|
limit | integer | 1 ページあたりのアイテム数 |
offset | integer | スキップするアイテム数 |
ページネーションレスポンスの構造は以下の通りです:
{ "items": [], "offset": 0, "count": 100}エラーハンドリング
Section titled “エラーハンドリング”すべてのエラーは以下の形式の JSON で返されます:
{ "errors": { "root": [ { "message": "Description of the error", "code": "ERROR_CODE" } ] }}| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | 不正な入力または必須フィールドの欠落 |
| 401 | PERMISSION_DENIED | 無効、期限切れ、または無効化されたトークン |
| 402 | PAYMENT_REQUIRED | 有効なサブスクリプションが必要 |
| 404 | NOT_FOUND | リソースが見つかりません |
| 409 | CONFLICT | 競合する操作(例:同時変更) |
| 422 | VALIDATION_ERROR | リクエストボディがスキーマバリデーションに失敗 |
| 429 | TOO_MANY_REQUESTS | レート制限超過 |
| 500 | UNKNOWN | 内部サーバーエラー |
| 503 | SERVICE_UNAVAILABLE | 一時的な利用不可 |
チャット(レガシー認証)
Section titled “チャット(レガシー認証)”Chat エンドポイントは、リクエストボディ内の api_key と scenario_id を使用するレガシー認証を使用します。Bearer トークンは 使用しません。
メッセージ送信
Section titled “メッセージ送信”POST https://chat.quickchat.ai/chat
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | Yes | ダッシュボードから取得した API キー |
scenario_id | string | Yes | AI アシスタントの ID |
text | string | Yes | ユーザーの入力メッセージ |
conv_id | string | No | 会話 ID。省略すると新しい会話を開始します |
message_context | string | No | AI に渡されるメッセージごとの追加コンテキスト |
client_metadata | object | No | メッセージに付与するカスタムキーバリューペア(最大 5 キー) |
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()レスポンス 200 OK
{ "ord_number": 236, "conv_id": "abcd1234", "reply": "Hey there!"}| Field | Type | Description |
|---|---|---|
ord_number | integer | 会話内の連番メッセージ番号 |
conv_id | string | 会話識別子(会話を継続するために使用) |
reply | string | AI アシスタントの応答 |
ナレッジベース
Section titled “ナレッジベース”ナレッジベースの設定を取得します。
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()レスポンス 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 | ナレッジベースの短いラベル |
short_description | string | AI アシスタントの目的の説明 |
ai_commands | array of strings | AI へのカスタム指示 |
retrain_state | string or null | 現在のトレーニング状態 |
PATCH https://app.quickchat.ai/v1/api/knowledge_base/
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
one_word_description | string | No | ナレッジベースの短いラベル |
short_description | string | No | AI アシスタントの目的の説明 |
ai_commands | array of strings | No | 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()レスポンス 200 OK — 更新されたナレッジベース設定を返します(設定の取得 と同じスキーマ)。
POST https://app.quickchat.ai/v1/api/knowledge_base/articles/
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | Yes | 記事の内容 |
type | string | No | "Article"(デフォルト)または "Paragraph" |
title | string | No | 記事のタイトル |
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()レスポンス 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"}記事一覧の取得
Section titled “記事一覧の取得”GET https://app.quickchat.ai/v1/api/knowledge_base/articles/
クエリパラメータ
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | 1 ページあたりのアイテム数 |
offset | integer | No | スキップするアイテム数 |
types | string | No | タイプでフィルタ:Article、Paragraph |
tags | string | No | タグでフィルタ |
url | string | No | URL でフィルタ |
title | string | No | タイトルでフィルタ |
query | string | No | 内容で検索 |
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()レスポンス 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}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()レスポンス 200 OK — 記事の完全なオブジェクトを返します(記事の作成 レスポンスと同じスキーマ)。
PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
content | string | No | 更新された記事内容 |
title | string | No | 更新されたタイトル |
tags | array of strings | No | 更新されたタグ |
save_mode | string | No | "draft"(デフォルト)または "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()レスポンス 200 OK — 更新された記事オブジェクトを返します。
ID を指定して 1 つまたは複数の記事を削除します。
DELETE https://app.quickchat.ai/v1/api/knowledge_base/articles/
リクエストボディ — 記事 ID の JSON 配列。
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],)レスポンス 200 OK
テキストマッチングで記事内容を検索します。
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/search
クエリパラメータ
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | 検索クエリ |
is_case_insensitive | boolean | No | 大文字小文字を区別しない検索(デフォルト:true) |
with_title_url_and_tags | boolean | No | タイトル/URL/タグも検索対象に含める(デフォルト:true) |
strict_search | boolean | No | 完全一致を要求(デフォルト:false) |
num_of_display_articles | integer | No | 表示する記事数(デフォルト:5) |
num_of_data_articles | integer | No | 検索対象の記事数(デフォルト: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()レスポンス 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 }}パラグラフ一覧の取得
Section titled “パラグラフ一覧の取得”ナレッジベース内のすべてのパラグラフ(チャンク化されたコンテンツ)を一覧表示します。
GET https://app.quickchat.ai/v1/api/knowledge_base/articles/paragraphs
クエリパラメータ
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | 1 ページあたりのアイテム数 |
offset | integer | No | スキップするアイテム数 |
query | string | No | 内容でフィルタ |
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()レスポンス 200 OK
{ "items": [ { "id": 1, "content": "Our return policy allows returns within 30 days." } ], "offset": 0, "count": 1}記事の言語別 URL
Section titled “記事の言語別 URL”記事の言語別 URL を管理します。これらの URL を使用して、記事をローカライズ版のコンテンツにリンクできます。
言語別 URL の取得
Section titled “言語別 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()レスポンス 200 OK
{ "url": "https://example.com/en/return-policy"}言語別 URL の作成
Section titled “言語別 URL の作成”POST https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | 言語別バージョンの URL |
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()レスポンス 200 OK
{ "url": "https://example.com/en/return-policy"}言語別 URL の更新
Section titled “言語別 URL の更新”PATCH https://app.quickchat.ai/v1/api/knowledge_base/articles/{article_id}/lang_urls/{language}
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | 更新された URL |
レスポンス 200 OK — 更新された URL オブジェクトを返します。
言語別 URL の削除
Section titled “言語別 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>"},)レスポンス 200 OK
タグ一覧の取得
Section titled “タグ一覧の取得”ナレッジベースの記事で使用されているすべてのタグを取得します。
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()レスポンス 200 OK
["policies", "faq", "product-info"]ファイルアップロード
Section titled “ファイルアップロード”ファイルをアップロードして処理し、ナレッジベースに記事として追加します。
PDF のアップロード
Section titled “PDF のアップロード”POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/pdf
PDF ファイルをアップロードします。内容が抽出され、記事として追加されます。
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()レスポンス 200 OK
{ "status": "success", "message": "File processed successfully.", "article": { "id": 1234, "title": "document.pdf" }}| Field | Type | Description |
|---|---|---|
status | string | 処理状態 |
message | string | 人間が読める結果メッセージ |
article | object | 作成された記事 |
ファイルのアップロード
Section titled “ファイルのアップロード”POST https://app.quickchat.ai/v1/api/knowledge_base/file_upload_api/
対応ファイル(PDF、DOCX)をアップロードします。内容が抽出され、記事として追加されます。
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()レスポンス 200 OK — PDF のアップロード と同じスキーマ。
外部コンテンツのインポート
Section titled “外部コンテンツのインポート”外部ソースからナレッジベースにコンテンツをインポートします。これらのエンドポイントはコンテンツを非同期で処理します。
ウェブサイトのスクレイピング
Section titled “ウェブサイトのスクレイピング”単一のウェブページまたはウェブサイト全体をスクレイピングしてコンテンツをインポートします。
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/website
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | スクレイピング対象の URL |
mode | string | No | "individual"(デフォルト)、"site_wide"、または "individual_with_summary" |
phrases | array of strings | No | 抽出するキーフレーズ |
html_selector | string | No | 特定コンテンツを対象とする CSS セレクタ |
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()レスポンス 200 OK
{ "status": "success", "url": "https://example.com/docs", "article": {}}YouTube トランスクリプトのインポート
Section titled “YouTube トランスクリプトのインポート”YouTube 動画のトランスクリプトをインポートします。
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/youtube
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | YouTube 動画の URL |
toast_process_uuid | string | Yes | インポートプロセス追跡用の UUID v4 |
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()), },)レスポンス 202 Accepted — トランスクリプトは非同期で処理されます。
サイトマップのインポート
Section titled “サイトマップのインポート”XML サイトマップ内のすべてのリンクからコンテンツをインポートします。
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/site-map
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
site_map | string | Yes | XML サイトマップの URL |
link_filter_regex | string | No | インポートするリンクをフィルタする正規表現(デフォルト:".*") |
html_selector | string | No | 特定コンテンツを対象とする CSS セレクタ |
summarize | boolean | No | インポートしたコンテンツを要約するかどうか(デフォルト: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()レスポンス 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}リンクリストのスクレイピング
Section titled “リンクリストのスクレイピング”指定した URL リストからコンテンツをインポートします。
POST https://app.quickchat.ai/v1/api/knowledge_base/import_external/scrape-list
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
links | array of strings | Yes | スクレイピング対象の URL リスト(空でないこと) |
tags | array of strings | No | インポートした記事に適用するタグ |
html_selector | string | No | 特定コンテンツを対象とする CSS セレクタ |
summarize | boolean | No | インポートしたコンテンツを要約するかどうか(デフォルト: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()レスポンス 200 OK
{ "status": "success", "links": ["https://example.com/page1", "https://example.com/page2"]}外部コンテンツソース(例:Intercom、Shopify)を管理し、ナレッジベースに記事を同期します。
{source} パスパラメータは "intercom"、"shopify" などの値を受け付けます。
ソース記事のインポート
Section titled “ソース記事のインポート”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()レスポンス 200 OK — インポートされた記事スナップショットのリストを返します。
ソース記事の削除
Section titled “ソース記事の削除”POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/delete
指定したソースからインポートされたすべての記事を削除します。
レスポンス 204 No Content
ソース記事の差分
Section titled “ソース記事の差分”ローカルの記事と外部ソースを比較して変更を検出します。
POST https://app.quickchat.ai/v1/api/knowledge_base/sources/{source}/articles_diff
レスポンス 200 OK
[ { "internal_article_diff": "CHANGED", "external_article_diff": "UNCHANGED", "article_snapshot": {} }]| Field | Type | Description |
|---|---|---|
internal_article_diff | string | "CHANGED" または "UNCHANGED" |
external_article_diff | string | "CHANGED"、"UNCHANGED"、または "REMOVED" |
article_snapshot | object | 記事スナップショットデータ |
Intercom ナレッジベース
Section titled “Intercom ナレッジベース”Intercom ナレッジベース連携を管理する専用エンドポイントです。
Intercom 記事の更新
Section titled “Intercom 記事の更新”既存の記事について Intercom からコンテンツを再取得します。
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/refresh_articles
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
article_ids | array of integers | No | 更新する特定の記事 ID(デフォルト:すべて) |
fetch_new_articles | boolean | No | 新しい記事を取得するかどうか(デフォルト:true) |
レスポンス 204 No Content
Intercom 記事のインポート
Section titled “Intercom 記事のインポート”Intercom からすべての記事をインポートします。
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/import
レスポンス 200 OK — インポートされた記事スナップショットのリストを返します。
Intercom 記事の削除
Section titled “Intercom 記事の削除”ナレッジベースから Intercom ソースのすべての記事を削除します。
POST https://app.quickchat.ai/v1/api/knowledge_base/intercom/delete
レスポンス 204 No Content
Intercom 記事の差分
Section titled “Intercom 記事の差分”ローカルの記事と Intercom を比較して変更を検出します。
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()レスポンス 200 OK — 記事差分オブジェクトのリストを返します(ソース記事の差分 と同じスキーマ)。
会話一覧の取得
Section titled “会話一覧の取得”GET https://app.quickchat.ai/v1/api_core/conversations
クエリパラメータ
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | No | 1 ページあたりのアイテム数 |
offset | integer | No | スキップするアイテム数 |
query | string | No | 注文番号、UUID、またはメッセージテキストで検索 |
assignee_type | string | No | "ai_assistant"、"human_operator"、または "unassigned" |
source | string | No | "widget"、"slack"、"telegram"、"whatsapp" など |
resolution_status | string | No | "open" または "resolved" |
created_timestamp_start_date | datetime | No | 作成日でフィルタ(開始) |
created_timestamp_end_date | datetime | No | 作成日でフィルタ(終了) |
last_message_at_start_date | datetime | No | 最終メッセージ日でフィルタ(開始) |
last_message_at_end_date | datetime | No | 最終メッセージ日でフィルタ(終了) |
most_frequent_language | string | No | 検出された言語でフィルタ |
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()レスポンス 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}会話の詳細取得
Section titled “会話の詳細取得”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()レスポンス 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}会話メタデータ
Section titled “会話メタデータ”会話のカスタムメタデータを保存・取得します。ダッシュボードで JSON スキーマが設定されている場合、メタデータはそのスキーマに対してバリデーションされます。
メタデータの取得
Section titled “メタデータの取得”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()レスポンス 200 OK
{ "metadata": { "ticket_id": "T-1234", "priority": "high" }}メタデータの設定
Section titled “メタデータの設定”会話のメタデータを作成または更新します。
POST https://app.quickchat.ai/v1/api_core/conversations/{conv_id}/metadata
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
metadata | object | Yes | 保存するキーバリューメタデータ |
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()レスポンス 200 OK
{ "metadata": { "ticket_id": "T-1234", "priority": "high" }}AI アクション
Section titled “AI アクション”KB AI アクションの作成
Section titled “KB AI アクションの作成”新しいナレッジベース AI アクションを作成します。KB AI アクションにより、トリガー時にナレッジベースのタグ付きサブセットを AI が検索できるようになります。
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()レスポンス 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 アクション識別子 |
name | string | 表示名(最大 100 文字) |
description | string | アクションがトリガーされるタイミングの説明(最大 1000 文字) |
icon | string or null | アイコン識別子 |
icon_color | string or null | アイコンの色 |
is_active | boolean | アクションが有効かどうか |
is_valid | boolean | アクションが正しく設定されているかどうか |
tag | string or null | 記事をフィルタするナレッジベースタグ(最大 255 文字) |
parameter_description | string | AI が抽出するパラメータの説明(最大 500 文字) |
type | string | 常に "knowledge_base" |
KB AI アクションの取得
Section titled “KB AI アクションの取得”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()レスポンス 200 OK — AI アクションオブジェクトを返します(KB AI アクションの作成 レスポンスと同じスキーマ)。
KB AI アクションの更新
Section titled “KB AI アクションの更新”PUT https://app.quickchat.ai/v1/api/ai_actions/{action_id}/knowledge_base
リクエストボディ
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | 表示名(最大 100 文字) |
description | string | Yes | アクションがトリガーされるタイミング(最大 1000 文字) |
parameter_description | string | Yes | パラメータの説明(最大 500 文字) |
tag | string | Yes | フィルタ対象のナレッジベースタグ(最大 255 文字) |
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()レスポンス 200 OK — 更新された AI アクションオブジェクトを返します。