ドキュメントを取得
ドキュメントを 1 件返します。ステータス、カスタムメタデータ、row_version、アクティブなリビジョン、最新のインデックスタスクを含みます。
ドキュメント ID とドキュメントファイル ID の関係については、ドキュメントとチャンクの参照 を参照してください。
1 min read
get/knowledge-fs/spaces/{knowledge_base_id}/logical-documents/{document_id}
Request example
curl --request GET \
--url https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/logical-documents/{document_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/logical-documents/{document_id}"
headers = {
"Authorization": "Bearer <token>",
}
response = requests.request("GET", url, headers=headers)
print(response.text)const response = await fetch('https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/logical-documents/{document_id}', {
method: 'GET',
headers: {
'Authorization': 'Bearer <token>'
}
});
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}/logical-documents/{document_id}',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer <token>',
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.dify.ai/v1/knowledge-fs/spaces/{knowledge_base_id}/logical-documents/{document_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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}/logical-documents/{document_id}"))
.header("Authorization", "Bearer <token>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.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}/logical-documents/{document_id}')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = url.scheme == 'https'
request = Net::HTTP::Get.new(url)
request['Authorization'] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyResponse
{
"active": {
"activated_at": "2026-10-20T08:16:05Z",
"content_hash": "4f7c2d9a1b3e5f60718293a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4",
"created_at": "2026-10-20T08:15:42Z",
"document_asset_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"document_asset_version": 1,
"document_id": "2f6b8d1a-7c3e-4a5b-9d0e-1f2a3b4c5d6e",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mime_type": "application/pdf",
"revision": 2,
"size_bytes": 482113,
"state": "active"
},
"active_revision": 2,
"created_at": "2026-09-03T10:02:11Z",
"disabled_at": null,
"disabled_by_subject_id": null,
"enabled": true,
"id": "2f6b8d1a-7c3e-4a5b-9d0e-1f2a3b4c5d6e",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"latest_task": {
"can_cancel": false,
"can_retry": false,
"completed_at": "2026-10-20T08:16:05Z",
"created_at": "2026-10-20T08:15:42Z",
"document_id": "2f6b8d1a-7c3e-4a5b-9d0e-1f2a3b4c5d6e",
"document_revision": 2,
"document_title": null,
"error_code": null,
"error_message": null,
"failure": null,
"failures": null,
"id": "c4e8a2f6-1b3d-4e5f-8a9b-0c1d2e3f4a5b",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"operation": "document_processing",
"progress_completed": 1,
"progress_failed": 0,
"progress_percent": 100,
"progress_total": 1,
"semantic_enrichment": {
"error_code": null,
"error_message": null,
"failure": null,
"nodes_completed": 0,
"nodes_total": null,
"provider_calls": null,
"provider_calls_maximum": null,
"state": "disabled",
"updated_at": null
},
"source_id": null,
"source_title": null,
"state": "completed",
"task_kind": "document",
"updated_at": "2026-10-20T08:16:05Z"
},
"provider_item_id": null,
"row_version": 4,
"source_id": null,
"status": "ready",
"title": "handbook.pdf",
"updated_at": "2026-10-20T08:16:05Z",
"user_metadata": {
"owner": "support-team",
"product_line": "billing",
"review_date": "2026-12-01T00:00:00Z"
}
}{
"code": "knowledge_fs_invalid_request",
"message": "Agent Knowledge Base request is invalid.",
"status": 400
}{
"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_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
}get/knowledge-fs/spaces/{knowledge_base_id}/logical-documents/{document_id}
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/ の後のセグメントです。ドキュメント ID です。ドキュメント一覧を取得 から取得します。
Responses
application/json
ドキュメントです。
アクティブなリビジョン、つまりナレッジベースが提供しているコンテンツです。その
revision を チャンク一覧を取得 に、document_asset_id を ドキュメントファイルを取得 に渡します。アクティブなリビジョンがない間は null です。Show child attributesHide child attributes
リビジョンがアクティブになった日時(ISO 8601)です。一度もアクティブになっていないリビジョンでは
null です。コンテンツの SHA-256 ハッシュ(16 進数エンコード)です。
リビジョンの作成日時(ISO 8601)です。
このリビジョンの元になったドキュメントファイルの ID です。ドキュメントファイルを取得 で使用します。
このリビジョンが作成された時点での、ドキュメントファイルの
version です。ナレッジベースの内部 ID です。パスのナレッジベース ID とは異なります。
ドキュメントファイルの MIME タイプです。
ドキュメントファイルのサイズ(バイト単位)です。
インデックス処理中のリビジョンは
candidate、ナレッジベースが提供しているリビジョンは active です。新しいリビジョンがアクティブになった後は superseded、インデックス処理に失敗した場合は failed になります。アクティブなリビジョンの番号です。アクティブなリビジョンがない間は
null です。ドキュメントの作成日時(ISO 8601)です。
Dify でドキュメントが無効化された日時(ISO 8601)です。
ドキュメントを無効化した操作者の内部 ID です。この API の呼び出しには不要です。
Dify でドキュメントが無効化されると
false になります。ドキュメントを再インデックス は、無効化されたドキュメントをスキップします。ドキュメント ID です。ドキュメントの内容を更新しても変わりません。
ナレッジベースの内部 ID です。パスのナレッジベース ID とは異なります。
ドキュメントのリビジョンを作成した最新のインデックスタスクで、
task_kind: document を持ちます。その id を指定して ドキュメントのインデックスタスクを取得 で追跡します。タスクがない場合は null です。ドキュメントメタデータを更新 のレスポンスでは常に null です。Show child attributesHide child attributes
タスクを現時点でキャンセルできるかどうかです。
task_kind: document の場合は、id を指定して インデックスタスクをキャンセル でキャンセルします。一括タスクには、can_cancel が true であっても、この API でキャンセルする操作はありません。タスクの終了日時(ISO 8601)です。実行中は
null です。タスクの作成日時(ISO 8601)です。
インデックスタスクのドキュメント ID です。一括タスクでは、対象ドキュメントが 1 件の場合にのみ設定されます。
インデックスタスクが構築するリビジョンです。
ドキュメントのタイトルです。対象ドキュメントが 1 件の一括タスクでのみ設定されます。
state が failed の場合のエラーコードです。error_code に対応するメッセージです。failure.message と異なる場合があります。state が failed の場合のエラー詳細です。それ以外の場合は null です。Show child attributesHide child attributes
推奨される次の対応です。ある場合は
configure_model、configure_parser、configure_source、contact_admin、reupload、retry のいずれかです。該当しない場合は null で、HTTP エラーのボディでは省略されます。失敗の種類で、
authorization、canceled、configuration、conflict、dependency、internal、not_found、rate_limit、timeout、validation のいずれかです。大文字のスネークケースで表される固定のエラーコードです(例:
KNOWLEDGE_FS_CONFLICT、SOURCE_CREDENTIAL_TEST_FAILED)。エラーコードまたは失敗の種類に対応する公開用メッセージです。プロバイダーのエラー詳細は公開されません。
失敗の内容を補足する最大 8 個の値です。キーは
attempt、currentRowVersion、documentCount、expectedRowVersion、fileSizeBytes、limit、maxFileSizeBytes、maxItems、modelType、providerKind、retryAfterSeconds、status のいずれかです。値がない場合は null で、HTTP エラーのボディでは省略されます。再試行で解決できるかどうかです。
automatic(サービスが自動で再試行)、manual(呼び出し側で再試行)、after_configuration(先に Dify でナレッジベースの設定を修正)、never(リクエストを変更)のいずれかです。失敗が発生した段階です(例:
query_generation、credential-test)。該当しない場合は null で、HTTP エラーのボディでは省略されます。管理者に問い合わせる際に伝える参照情報です。失敗の詳細を含む成功レスポンスでは
null になることがあり、HTTP エラーのボディでは省略されることがあります。一括タスクの場合、失敗したドキュメントごとに 1 つのエントリが入ります。ほかの種類では
null です。Show child attributesHide child attributes
ドキュメント ID です。
ドキュメントのタイトルです。
失敗のエラーコードです。
error_code に対応するメッセージです。Show child attributesHide child attributes
推奨される次の対応です。ある場合は
configure_model、configure_parser、configure_source、contact_admin、reupload、retry のいずれかです。該当しない場合は null で、HTTP エラーのボディでは省略されます。失敗の種類で、
authorization、canceled、configuration、conflict、dependency、internal、not_found、rate_limit、timeout、validation のいずれかです。大文字のスネークケースで表される固定のエラーコードです(例:
KNOWLEDGE_FS_CONFLICT、SOURCE_CREDENTIAL_TEST_FAILED)。エラーコードまたは失敗の種類に対応する公開用メッセージです。プロバイダーのエラー詳細は公開されません。
失敗の内容を補足する最大 8 個の値です。キーは
attempt、currentRowVersion、documentCount、expectedRowVersion、fileSizeBytes、limit、maxFileSizeBytes、maxItems、modelType、providerKind、retryAfterSeconds、status のいずれかです。値がない場合は null で、HTTP エラーのボディでは省略されます。再試行で解決できるかどうかです。
automatic(サービスが自動で再試行)、manual(呼び出し側で再試行)、after_configuration(先に Dify でナレッジベースの設定を修正)、never(リクエストを変更)のいずれかです。失敗が発生した段階です(例:
query_generation、credential-test)。該当しない場合は null で、HTTP エラーのボディでは省略されます。管理者に問い合わせる際に伝える参照情報です。失敗の詳細を含む成功レスポンスでは
null になることがあり、HTTP エラーのボディでは省略されることがあります。ドキュメントに対応するタスクの ID です(存在する場合)。
ナレッジベースの内部 ID です。パスのナレッジベース ID とは異なります。
タスクの処理内容です:
document_processing:インデックスタスクです。document_reindex、document_upload、document_delete:一括タスクです。一括アップロードと一括削除は Dify 上で実行されたものです。ドキュメントを削除 で削除した場合は、document_deleteタスクとしても表示されます。この API によるその他の削除では、削除ジョブだけが作成されます。source_sync、source_crawl_preview、source_crawl_import、source_online_document_import、source_online_drive_import:ソースの実行です。
完了したアイテム数です。インデックスタスクではそのドキュメント、一括タスクでは各ドキュメント、ソースの実行では各アイテムを数えます。
失敗したアイテム数です。数え方は
progress_completed と同じです。0 から 100 までの進捗です。インデックスタスクでは、タスクの段階に応じて進みます。
タスク内のアイテム数です。数え方は
progress_completed と同じです。インデックスタスクでは 1 です。インデックスタスクの公開後に行うナレッジグラフの構築です。ほかの種類では
null です。インデックス処理が公開前にナレッジグラフの構築まで済ませるため、この処理は実行されません。タスクの実行中、state は not_scheduled で、終了後は disabled になります。nodes_completed は 0 のままです。Show child attributesHide child attributes
state が failed の場合のエラーコードです。error_code に対応するメッセージです。failure.message と異なる場合があります。state が failed の場合のエラー詳細です。それ以外の場合は null です。Show child attributesHide child attributes
推奨される次の対応です。ある場合は
configure_model、configure_parser、configure_source、contact_admin、reupload、retry のいずれかです。該当しない場合は null で、HTTP エラーのボディでは省略されます。失敗の種類で、
authorization、canceled、configuration、conflict、dependency、internal、not_found、rate_limit、timeout、validation のいずれかです。大文字のスネークケースで表される固定のエラーコードです(例:
KNOWLEDGE_FS_CONFLICT、SOURCE_CREDENTIAL_TEST_FAILED)。エラーコードまたは失敗の種類に対応する公開用メッセージです。プロバイダーのエラー詳細は公開されません。
失敗の内容を補足する最大 8 個の値です。キーは
attempt、currentRowVersion、documentCount、expectedRowVersion、fileSizeBytes、limit、maxFileSizeBytes、maxItems、modelType、providerKind、retryAfterSeconds、status のいずれかです。値がない場合は null で、HTTP エラーのボディでは省略されます。再試行で解決できるかどうかです。
automatic(サービスが自動で再試行)、manual(呼び出し側で再試行)、after_configuration(先に Dify でナレッジベースの設定を修正)、never(リクエストを変更)のいずれかです。失敗が発生した段階です(例:
query_generation、credential-test)。該当しない場合は null で、HTTP エラーのボディでは省略されます。管理者に問い合わせる際に伝える参照情報です。失敗の詳細を含む成功レスポンスでは
null になることがあり、HTTP エラーのボディでは省略されることがあります。構築済みのナレッジグラフのノード数です。
state が ready になるまでは 0 で、その後は nodes_total と同じ値になります。構築するナレッジグラフのノード数です。判明するまでは
null です。これまでのモデル呼び出し回数です。
ナレッジグラフの構築で実行できるモデル呼び出しの最大回数です。
not_scheduled、pending、running、ready、failed、disabled のいずれかです。エンリッチメントが最後に変更された日時(ISO 8601)です。
ソースの実行が属するソースです。
ソースの実行が属するソースの名前です。
task_ids を指定せずに一覧を取得した場合にのみ設定されます。queued、running、completed、failed、canceled のいずれかで、各タスク固有の状態から変換されます。ページの選択を待っているクロールプレビューは completed です。
正確な状態は、インデックスタスクなら インデックスタスクを取得、ソースの実行なら ソースの実行を取得 で確認してください。
document(インデックスタスク)、document_bulk(一括タスク)、source(ソースの実行)のいずれかです。タスクが最後に変更された日時(ISO 8601)です。
ソースからインポートしたドキュメントの場合、ソース側でのアイテムの識別子です。ソースのアイテムをインポート に送信した
providerItemId、またはウェブサイトのページの page_id です。変更カウンターです。ドキュメントメタデータを更新 では
expectedRowVersion として、ドキュメントを削除 では expectedRevision として送信します。メタデータの更新時、新しいリビジョンがアクティブになった時やアクティブなリビジョンのファイルが削除された時に増加します。documents=keep を指定してドキュメントのソースを削除した時と、Dify でドキュメントが有効化または無効化された時にも増加します。ドキュメントの取得元のソースです。アップロードされたファイルでは
null です。pending(まだアクティブなリビジョンがない)、ready(リビジョンがアクティブ)、failed(最初のリビジョンのインデックス処理に失敗し、アクティブなリビジョンがない)、deleting のいずれかです。ready のドキュメントは、後続のリビジョンが失敗しても ready のままです。ドキュメントのタイトルです。
ドキュメントが最後に変更された日時(ISO 8601)です。
カスタムメタデータで、キーはメタデータフィールド名です。ドキュメントメタデータを更新 または Dify で変更できます。