ドキュメントを再インデックス
選択した各ドキュメントについて、現在のファイルからインデックスを再構築するインデックスタスクをキューに追加します。これらのタスクをまとめて追跡するための一括タスク ID を返します。
all: true と documentIds のどちらか一方だけを指定する必要があります。
ファイルは再アップロードされません。各タスクは compilation_job.id を使って インデックスタスクを取得 で、リクエスト全体は 一括タスクを取得 で追跡します。
再インデックスの流れについては、再インデックスとインデックス処理の追跡 を参照してください。
1 min read
post/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex
Request example
curl --request POST \
--url https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex \
--header 'Authorization: Bearer <token>' \
--header 'Idempotency-Key: <string>' \
--header 'Content-Type: application/json' \
--data '{
"all": true
}'import requests
url = "https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex"
headers = {
"Authorization": "Bearer <token>",
"Idempotency-Key": "<string>",
"Content-Type": "application/json",
}
payload = {
"all": True
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text)const response = await fetch('https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex', {
method: 'POST',
headers: {
'Authorization': 'Bearer <token>',
'Idempotency-Key': '<string>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"all": true
})
});
const data = await response.json();
console.log(data);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{
"all": true
}',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer <token>',
'Idempotency-Key: <string>',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
url := "https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex"
payload := strings.NewReader("{\n \"all\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Idempotency-Key", "<string>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex"))
.header("Authorization", "Bearer <token>")
.header("Idempotency-Key", "<string>")
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("{\n \"all\": true\n}"))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());require 'uri'
require 'net/http'
url = URI('https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'
request = Net::HTTP::Post.new(url)
request['Authorization'] = 'Bearer <token>'
request['Idempotency-Key'] = '<string>'
request['Content-Type'] = 'application/json'
request.body = '{
"all": true
}'
response = http.request(request)
puts response.read_bodyResponse
{
"bulk_job_id": "5a1c2e3d-7b8f-4a9c-8d1e-2f3a4b5c6d7e",
"items": [
{
"asset": {
"created_at": "2026-09-03T10:02:11Z",
"filename": "handbook.pdf",
"id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"metadata": {},
"mime_type": "application/pdf",
"object_key": "1a7c9e40-2b3d-4f56-8a90-b1c2d3e4f506/spaces/9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b/documents/6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b/handbook.pdf",
"parser_status": "parsed",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"size_bytes": 482113,
"source_id": null,
"updated_at": null,
"version": 1
},
"code": null,
"compilation_job": {
"id": "e4a1f0b2-7c3d-4e5f-9a1b-2c3d4e5f6a7b",
"stage": "queued"
},
"document_id": null,
"error": null,
"status": "queued",
"status_url": "/knowledge-spaces/9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b/documents/3d2f1c0b-9a8e-4d7c-b6a5-4f3e2d1c0b9a/processing-tasks/e4a1f0b2-7c3d-4e5f-9a1b-2c3d4e5f6a7b"
},
{
"asset": null,
"code": null,
"compilation_job": null,
"document_id": "8f14e45f-ceea-467a-9575-62c9a2d3e6b1",
"error": null,
"status": "not_found",
"status_url": null
}
],
"total": 2
}{
"code": "knowledge_fs_invalid_request",
"message": "Agent Knowledge Base request is invalid.",
"status": 400,
"violations": [
{
"field": [
"documentIds"
],
"type": "too_long"
}
]
}{
"code": "knowledge_fs_invalid_request",
"failure": {
"category": "validation",
"code": "KNOWLEDGE_FS_INVALID_REQUEST",
"message": "The Agent Knowledge Base request is invalid.",
"retryPolicy": "never",
"traceId": "7f3c1a90-2e64-4b7d-8a51-6c0d9e2f4b83"
},
"message": "The Agent Knowledge Base request is invalid.",
"status": 400
}{
"code": "knowledge_fs_invalid_credential",
"message": "Invalid Agent Knowledge Base service credential.",
"status": 401
}{
"code": "unauthorized",
"message": "Access token is invalid",
"status": 401
}{
"code": "forbidden",
"message": "Sorry, you have reached the knowledge base request rate limit of your subscription.",
"status": 403
}{
"code": "knowledge_fs_access_denied",
"message": "Agent Knowledge Base operation is not allowed.",
"status": 403
}{
"code": "knowledge_fs_access_denied",
"failure": {
"action": "contact_admin",
"category": "authorization",
"code": "KNOWLEDGE_FS_ACCESS_DENIED",
"message": "You do not have permission to perform this Agent Knowledge Base operation.",
"retryPolicy": "never",
"traceId": "7f3c1a90-2e64-4b7d-8a51-6c0d9e2f4b83"
},
"message": "You do not have permission to perform this Agent Knowledge Base operation.",
"status": 403
}{
"code": "knowledge_fs_resource_not_found",
"failure": {
"category": "not_found",
"code": "KNOWLEDGE_FS_NOT_FOUND",
"message": "The requested Agent Knowledge Base resource was not found.",
"retryPolicy": "never",
"traceId": "7f3c1a90-2e64-4b7d-8a51-6c0d9e2f4b83"
},
"message": "The requested Agent Knowledge Base resource was not found.",
"status": 404
}{
"code": "not_found",
"message": "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.",
"status": 404
}{
"code": "knowledge_fs_conflict",
"failure": {
"action": "retry",
"category": "conflict",
"code": "KNOWLEDGE_FS_CONFLICT",
"message": "The Agent Knowledge Base operation conflicts with the current resource state.",
"retryPolicy": "manual",
"traceId": "7f3c1a90-2e64-4b7d-8a51-6c0d9e2f4b83"
},
"message": "The Agent Knowledge Base operation conflicts with the current resource state.",
"status": 409
}{
"code": "knowledge_fs_request_too_large",
"failure": {
"category": "validation",
"code": "KNOWLEDGE_FS_INVALID_REQUEST",
"message": "The Agent Knowledge Base request is invalid.",
"retryPolicy": "never",
"traceId": "7f3c1a90-2e64-4b7d-8a51-6c0d9e2f4b83"
},
"message": "The Agent Knowledge Base request is invalid.",
"status": 413
}{
"code": "knowledge_fs_request_too_large",
"message": "Agent Knowledge Base request is too large.",
"status": 413
}{
"code": "knowledge_fs_upstream_unavailable",
"failure": {
"action": "contact_admin",
"category": "internal",
"code": "KNOWLEDGE_FS_INTERNAL_ERROR",
"message": "Agent Knowledge Base could not complete the operation. Try again, or contact an administrator with the error reference.",
"retryPolicy": "manual",
"traceId": "5e2a9c17-3b4d-4f60-8a1b-2c3d4e5f6a7b"
},
"message": "Agent Knowledge Base could not complete the operation. Try again, or contact an administrator with the error reference.",
"status": 502
}{
"code": "knowledge_fs_upstream_unavailable",
"message": "Agent Knowledge Base is unavailable.",
"status": 502
}{
"code": "knowledge_fs_operation_unavailable",
"message": "Agent Knowledge Base operation is not available.",
"status": 503
}{
"code": "knowledge_fs_operation_unavailable",
"failure": {
"action": "retry",
"category": "dependency",
"code": "KNOWLEDGE_FS_UNAVAILABLE",
"message": "A service required by Agent Knowledge Base is temporarily unavailable.",
"retryPolicy": "manual",
"traceId": "5e2a9c17-3b4d-4f60-8a1b-2c3d4e5f6a7b"
},
"message": "A service required by Agent Knowledge Base is temporarily unavailable.",
"status": 503
}post/knowledge-fs/spaces/{knowledge_base_id}/documents/reindex
Authorization
すべてのリクエストは API キーで認証します:Authorization: Bearer {API_KEY}。アプリのエンドポイントにはアプリの API キーを、ナレッジのエンドポイントにはナレッジベースの API キーを使用します(Dify API クイックスタート)。
キーはサーバーサイドで保管し、クライアントコードには決して埋め込まないでください。キーが欠落または無効なリクエストは HTTP 401(unauthorized)で失敗します。
Path parameters
ナレッジベース ID です。ナレッジベースの API アクセス ダイアログに表示されるサービス API エンドポイントの最後のセグメント(
…/knowledge-fs/spaces/<knowledge base ID>)です。アドレスバーでは /datasets/new/ の後のセグメントです。Headers
毎回の呼び出しでキーを送信してください。キーがあれば、呼び出しを安全に再試行できます。前後に空白を含まない、8〜255 文字の印字可能な ASCII 文字を使用してください。キーの形式が正しくない場合は 400 が返ります。
同じキーと同じボディを再送信すると、新しいインデックスタスクは開始されず、元の一括タスクが返されます。異なるボディ、別の API キー、別のナレッジベース、または別の操作で同じキーを再利用すると 409 が返ります。
Length: 8–255
Body
application/jsonResponses
application/json
インデックスタスクがキューに追加されました。
送信した重複のない ID ごとに 1 エントリが、リクエストの順序で並びます。
all が true の場合は、その後に選択された各ファイルにつき 1 エントリが続きます。同じドキュメントファイルに解決される ID は、1 つのエントリを共有します。Show child attributesHide child attributes
再インデックス対象のドキュメントファイルです。
status が queued でない場合は null です。Show child attributesHide child attributes
ファイルが保存された日時(ISO 8601)です。
元のファイル名です。
ドキュメントファイル ID です。Dify でドキュメントを開いたときにアドレスバーに表示されるドキュメント ID とは異なります。
ナレッジベースの内部 ID です。パスのナレッジベース ID とは異なります。
ファイルのアップロード時またはインポート時に、ファイルとともに記録されたメタデータです。
ファイルの MIME タイプです。
オブジェクトストレージ内のファイルのキーです。この API には、ファイルの内容を返す操作はありません。
このバージョンのファイルの解析状態で、
pending、parsed、failed のいずれかです。解析はインデックス処理の 1 ステップです。parsed のファイルでも、アウトラインとチャンクがない場合があります。ファイル内容の SHA-256 ハッシュ(16 進数エンコード)です。
ファイルサイズ(バイト単位)です。
ファイルのインポート元のソース ID です。アップロードされたファイルでは
null です。ファイルレコードが最後に変更された日時(ISO 8601)です。作成後に変更されていない場合は
null です。このファイル ID では常に
1 です。ソースの同期を含め、内容を更新するとこの値は増えず、別のファイル ID が作成されます。ドキュメントのコンテンツのリビジョンとは別の値です。ドキュメントファイルを削除 に expectedRevision として送信します。status が failed の場合の失敗コードです。それ以外の場合は null です。インデックスタスクです。
status が queued でない場合は null です。Show child attributesHide child attributes
インデックスタスク ID です。インデックスタスクを取得 でポーリングします。
この時点では常に
queued です。送信したままの ID です。
all: true で選択された項目では、ドキュメントファイル ID です。status が disabled、not_found、failed、pending のいずれかの場合に設定されます。queued の項目では null で、そのドキュメントファイル ID は asset.id にあります。status が failed の場合の失敗メッセージです。それ以外の場合は null です。queued:インデックスタスクが開始され、asset、compilation_job、status_urlが設定されます。disabled:ドキュメントが無効化されているため何もキューに追加されず、一括タスクではキャンセル扱いになります。この API には、ドキュメントを有効化する操作はありません。not_found:ID に一致する、読み取り可能なドキュメントファイルがありません。failed:インデックスタスクは開始されませんでした。理由はcodeとerrorに示されます。pending:インデックスタスクが開始されたかどうかを確認できませんでした。
items のエントリ数です。