Delete Document Files in Batch
Requests the deletion of up to 100 document files in one call and reports an outcome for each file. As with Delete Document File, avoid files of active revisions.
Send the JSON body with this DELETE. If your client omits bodies on DELETE requests, configure it to send the body explicitly.
Files are sorted by documentId, then expectedRevision, and each is handled on its own. A file that does not exist, has a stale expectedRevision, is already being deleted, or cannot be deleted with this key comes back in results as rejected, and the other files proceed. An infrastructure failure stops the run and leaves the remaining files pending.
To continue after an infrastructure failure, or after the call fails as a whole, send the same request again with the same Idempotency-Key. It returns the original batch with the jobs already accepted and retries only the pending files.
This call creates no bulk task.
For the deletion flow, see Delete Documents and Sources.
curl --request DELETE \
--url https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"documents": [
{
"documentId": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"expectedRevision": 1
},
{
"documentId": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"expectedRevision": 1
},
{
"documentId": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",
"expectedRevision": 1
}
]
}
'import requests
url = "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk"
payload = { "documents": [
{
"documentId": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"expectedRevision": 1
},
{
"documentId": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"expectedRevision": 1
},
{
"documentId": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",
"expectedRevision": 1
}
] }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
documents: [
{documentId: '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b', expectedRevision: 1},
{documentId: '2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b', expectedRevision: 1},
{documentId: '9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a', expectedRevision: 1}
]
})
};
fetch('https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => json_encode([
'documents' => [
[
'documentId' => '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b',
'expectedRevision' => 1
],
[
'documentId' => '2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b',
'expectedRevision' => 1
],
[
'documentId' => '9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a',
'expectedRevision' => 1
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk"
payload := strings.NewReader("{\n \"documents\": [\n {\n \"documentId\": \"6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a\",\n \"expectedRevision\": 1\n }\n ]\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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))
}HttpResponse<String> response = Unirest.delete("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"documents\": [\n {\n \"documentId\": \"6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a\",\n \"expectedRevision\": 1\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"documents\": [\n {\n \"documentId\": \"6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a\",\n \"expectedRevision\": 1\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"batch_id": "3e5a7c9b-1d2f-4a6b-8c0d-2e4f6a8b0c1d",
"items": [
{
"document_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"document_title": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e"
},
{
"document_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"document_title": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f"
}
],
"results": [
{
"document_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"error": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status": "accepted",
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e"
},
{
"document_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"error": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status": "accepted",
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f"
},
{
"document_id": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",
"error": {
"code": "DURABLE_DELETION_NOT_FOUND",
"message": "Deletion request was rejected",
"retryable": false
},
"job": null,
"status": "rejected",
"status_url": null
}
],
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-batches/3e5a7c9b-1d2f-4a6b-8c0d-2e4f6a8b0c1d",
"total": 3
}Authorizations
Every request authenticates with an API key: Authorization: Bearer {API_KEY}. App endpoints take an app API key; knowledge endpoints take a knowledge base API key (Get Started).
Keep keys server-side; never embed them in client code. Requests with a missing or invalid key fail with HTTP 401 (unauthorized).
Headers
Repeating the same key and request with the same API key returns the original batch and retries its pending files. Reusing the key for a different request, or from another API key, answers 409. Use printable ASCII characters without leading or trailing whitespace.
8 - 255Path Parameters
Knowledge base ID: the last segment of the Service API endpoint shown in the knowledge base's API Access dialog (…/knowledge-fs/spaces/<knowledge base ID>), and the segment after /datasets/new/ in the address bar.
Body
The normalized request must fit within 1,048,576 UTF-8 bytes. See Request Size Limits.
Files to delete. Each documentId must appear once. A larger batch answers 400. The deployment may set a lower cap.
1 - 100 elementsShow child attributes
Show child attributes
Response
The batch was recorded. results gives each file's outcome, and items lists the accepted files. Deletion runs in the background. Get Document File answers 404 from the moment a file's deletion is accepted. To follow every file to the end, poll Get Deletion Batch (the batch status_url).
Poll the returned job IDs. To retry files left pending, send the same request again with the same Idempotency-Key.
ID of the batch that records this request.
One entry per accepted file.
Show child attributes
Show child attributes
One entry per requested file, with its outcome.
Show child attributes
Show child attributes
URL of Get Deletion Batch for this batch: absolute when the deployment sets SERVICE_API_URL, otherwise a path that starts with /v1/. Delete Document Files in Batch also sends it in the Location response header.
Number of files in the original request.
Was this page helpful?
curl --request DELETE \
--url https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"documents": [
{
"documentId": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"expectedRevision": 1
},
{
"documentId": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"expectedRevision": 1
},
{
"documentId": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",
"expectedRevision": 1
}
]
}
'import requests
url = "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk"
payload = { "documents": [
{
"documentId": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"expectedRevision": 1
},
{
"documentId": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"expectedRevision": 1
},
{
"documentId": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",
"expectedRevision": 1
}
] }
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
documents: [
{documentId: '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b', expectedRevision: 1},
{documentId: '2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b', expectedRevision: 1},
{documentId: '9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a', expectedRevision: 1}
]
})
};
fetch('https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => json_encode([
'documents' => [
[
'documentId' => '6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b',
'expectedRevision' => 1
],
[
'documentId' => '2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b',
'expectedRevision' => 1
],
[
'documentId' => '9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a',
'expectedRevision' => 1
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk"
payload := strings.NewReader("{\n \"documents\": [\n {\n \"documentId\": \"6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a\",\n \"expectedRevision\": 1\n }\n ]\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
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))
}HttpResponse<String> response = Unirest.delete("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"documents\": [\n {\n \"documentId\": \"6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a\",\n \"expectedRevision\": 1\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/documents/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"documents\": [\n {\n \"documentId\": \"6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b\",\n \"expectedRevision\": 1\n },\n {\n \"documentId\": \"9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a\",\n \"expectedRevision\": 1\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"batch_id": "3e5a7c9b-1d2f-4a6b-8c0d-2e4f6a8b0c1d",
"items": [
{
"document_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"document_title": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e"
},
{
"document_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"document_title": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f"
}
],
"results": [
{
"document_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"error": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "2c1e7a44-5b6d-4e8f-9a0b-1c2d3e4f5a6b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status": "accepted",
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/b7e1c2d3-4f5a-4b6c-8d9e-0f1a2b3c4d5e"
},
{
"document_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"error": null,
"job": {
"checkpoint": "requested",
"completed_at": null,
"created_at": "2026-09-06T02:15:30Z",
"error": null,
"id": "0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f",
"knowledge_space_id": "9b2e5b7a-3c1d-4e2f-8a9b-1c2d3e4f5a6b",
"mode": "cascade",
"progress": null,
"retry_at": null,
"run_state": "dispatch_pending",
"target_id": "6ec0bd7f-11c0-43da-975e-2a8ad9ebae0b",
"target_type": "document",
"updated_at": "2026-09-06T02:15:30Z"
},
"status": "accepted",
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-jobs/0c9d8e7f-6a5b-4c3d-9e2f-1a0b9c8d7e6f"
},
{
"document_id": "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a",
"error": {
"code": "DURABLE_DELETION_NOT_FOUND",
"message": "Deletion request was rejected",
"retryable": false
},
"job": null,
"status": "rejected",
"status_url": null
}
],
"status_url": "https://api.example.com/v1/knowledge-fs/spaces/8d2c6a1e-5b3f-4c7d-9e01-2a3b4c5d6e7f/deletion-batches/3e5a7c9b-1d2f-4a6b-8c0d-2e4f6a8b0c1d",
"total": 3
}