Update Chunk
curl --request POST \
--url https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"segment": {
"content": "<string>",
"answer": "<string>",
"keywords": [
"<string>"
],
"enabled": true,
"regenerate_child_chunks": false
}
}
'import requests
url = "https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}"
payload = { "segment": {
"content": "<string>",
"answer": "<string>",
"keywords": ["<string>"],
"enabled": True,
"regenerate_child_chunks": False
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
segment: {
content: '<string>',
answer: '<string>',
keywords: ['<string>'],
enabled: true,
regenerate_child_chunks: false
}
})
};
fetch('https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}', 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}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'segment' => [
'content' => '<string>',
'answer' => '<string>',
'keywords' => [
'<string>'
],
'enabled' => true,
'regenerate_child_chunks' => false
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}"
payload := strings.NewReader("{\n \"segment\": {\n \"content\": \"<string>\",\n \"answer\": \"<string>\",\n \"keywords\": [\n \"<string>\"\n ],\n \"enabled\": true,\n \"regenerate_child_chunks\": false\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"segment\": {\n \"content\": \"<string>\",\n \"answer\": \"<string>\",\n \"keywords\": [\n \"<string>\"\n ],\n \"enabled\": true,\n \"regenerate_child_chunks\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"segment\": {\n \"content\": \"<string>\",\n \"answer\": \"<string>\",\n \"keywords\": [\n \"<string>\"\n ],\n \"enabled\": true,\n \"regenerate_child_chunks\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "f3d1c7be-9f3a-40d8-8eb8-3a1ef9c3f2c1",
"position": 1,
"document_id": "a8e0e5b5-78c6-4130-a5ce-25feb0e0b4ac",
"content": "Dify is an open-source LLM app development platform.",
"sign_content": "",
"answer": "",
"word_count": 9,
"tokens": 12,
"keywords": [
"dify",
"platform",
"llm"
],
"index_node_id": "a1b2c3d4-e5f6-7890-abcd-000000000001",
"index_node_hash": "abc123def456",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "ad313dd6-ef04-4dd1-a5b0-c0f0b9e2e7e4",
"created_at": 1741267200,
"updated_at": 1741267200,
"updated_by": "ad313dd6-ef04-4dd1-a5b0-c0f0b9e2e7e4",
"indexing_at": 1741267200,
"completed_at": 1741267200,
"error": null,
"stopped_at": null,
"child_chunks": []
},
"doc_form": "text_model"
}Chunks
Update Chunk
Update a chunk’s fields. The update re-triggers indexing for that chunk.
POST
/
datasets
/
{dataset_id}
/
documents
/
{document_id}
/
segments
/
{segment_id}
Update Chunk
curl --request POST \
--url https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"segment": {
"content": "<string>",
"answer": "<string>",
"keywords": [
"<string>"
],
"enabled": true,
"regenerate_child_chunks": false
}
}
'import requests
url = "https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}"
payload = { "segment": {
"content": "<string>",
"answer": "<string>",
"keywords": ["<string>"],
"enabled": True,
"regenerate_child_chunks": False
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
segment: {
content: '<string>',
answer: '<string>',
keywords: ['<string>'],
enabled: true,
regenerate_child_chunks: false
}
})
};
fetch('https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}', 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}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'segment' => [
'content' => '<string>',
'answer' => '<string>',
'keywords' => [
'<string>'
],
'enabled' => true,
'regenerate_child_chunks' => false
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}"
payload := strings.NewReader("{\n \"segment\": {\n \"content\": \"<string>\",\n \"answer\": \"<string>\",\n \"keywords\": [\n \"<string>\"\n ],\n \"enabled\": true,\n \"regenerate_child_chunks\": false\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"segment\": {\n \"content\": \"<string>\",\n \"answer\": \"<string>\",\n \"keywords\": [\n \"<string>\"\n ],\n \"enabled\": true,\n \"regenerate_child_chunks\": false\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/datasets/{dataset_id}/documents/{document_id}/segments/{segment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"segment\": {\n \"content\": \"<string>\",\n \"answer\": \"<string>\",\n \"keywords\": [\n \"<string>\"\n ],\n \"enabled\": true,\n \"regenerate_child_chunks\": false\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "f3d1c7be-9f3a-40d8-8eb8-3a1ef9c3f2c1",
"position": 1,
"document_id": "a8e0e5b5-78c6-4130-a5ce-25feb0e0b4ac",
"content": "Dify is an open-source LLM app development platform.",
"sign_content": "",
"answer": "",
"word_count": 9,
"tokens": 12,
"keywords": [
"dify",
"platform",
"llm"
],
"index_node_id": "a1b2c3d4-e5f6-7890-abcd-000000000001",
"index_node_hash": "abc123def456",
"hit_count": 0,
"enabled": true,
"disabled_at": null,
"disabled_by": null,
"status": "completed",
"created_by": "ad313dd6-ef04-4dd1-a5b0-c0f0b9e2e7e4",
"created_at": 1741267200,
"updated_at": 1741267200,
"updated_by": "ad313dd6-ef04-4dd1-a5b0-c0f0b9e2e7e4",
"indexing_at": 1741267200,
"completed_at": 1741267200,
"error": null,
"stopped_at": null,
"child_chunks": []
},
"doc_form": "text_model"
}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).
Path Parameters
Knowledge base ID. Obtain it from List Knowledge Bases.
Document ID. Obtain it from List Documents.
Chunk ID. Obtain it from List Chunks.
Body
application/json
Chunk data to update.
Show child attributes
Show child attributes
⌘I