List Research Task Results
Lists the results a research task has written so far, in ascending sequence.
A task writes at most two results: a retrieval checkpoint when available, followed by a final result. Check the last result for answer. A task that stops early may have no results.
For the plan, create, poll, and read flow, see Run a Research Task.
curl --request GET \
--url https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials \
--header 'Authorization: Bearer <token>'import requests
url = "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials', 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}/research-tasks/{research_task_id}/partials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials"
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))
}HttpResponse<String> response = Unirest.get("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"answer": null,
"evidence_bundle": {
"createdAt": "2026-09-06T08:00:10.000Z",
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"items": [
{
"citations": [
{
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"pageNumber": 2,
"sectionPath": [
"Policies",
"Refunds"
]
}
],
"conflicts": [],
"freshness": {
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"score": 0.82,
"scores": {
"final": 0.82,
"rerank": 0.85,
"retrieval": 0.71
},
"text": "From 1 March 2025, refunds are issued within 14 days of the return being received. The previous window was 30 days."
},
{
"citations": [
{
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"pageNumber": 3,
"sectionPath": [
"Policies",
"Refunds",
"Regional exceptions"
]
}
],
"conflicts": [],
"freshness": {
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "c3b2a1f0-e9d8-4c7b-8a6f-5e4d3c2b1a09",
"score": 0.77,
"scores": {
"final": 0.77,
"rerank": 0.8,
"retrieval": 0.66
},
"text": "The 14-day window applies to orders shipped to the EU and the UK. Other regions keep the 30-day window until further notice."
}
],
"missingEvidence": [],
"query": "What changed in the 2025 refund policy, and which regions are affected?",
"state": "partial"
},
"knowledge_space_id": "b2f1d3a4-5e6c-4a7b-8c9d-0e1f2a3b4c5d",
"research_task_job_id": "e4d1b7a2-3c5f-4d8e-9a0b-1c2d3e4f5a6b",
"sequence": 1
},
{
"answer": "The 2025 policy shortened the refund window from 30 days to 14 days after the return is received, effective 1 March 2025. The change applies to orders shipped to the EU and the UK; other regions keep the 30-day window.",
"evidence_bundle": {
"createdAt": "2026-09-06T08:00:41.000Z",
"id": "1f2e3d4c-5b6a-4978-8a7b-6c5d4e3f2a1b",
"items": [
{
"citations": [
{
"artifactHash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"endOffset": 1978,
"pageNumber": 2,
"sectionPath": [
"Policies",
"Refunds"
],
"startOffset": 1840
}
],
"conflicts": [
{
"reason": "States a 14-day window while another chunk keeps 30 days for some regions.",
"severity": "info",
"withNodeId": "c3b2a1f0-e9d8-4c7b-8a6f-5e4d3c2b1a09"
}
],
"freshness": {
"observedAt": "2026-09-06T08:00:12.000Z",
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"score": 0.82,
"scores": {
"final": 0.82,
"freshness": 0.9,
"rerank": 0.85,
"retrieval": 0.71
},
"text": "From 1 March 2025, refunds are issued within 14 days of the return being received. The previous window was 30 days."
},
{
"citations": [
{
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"pageNumber": 3,
"sectionPath": [
"Policies",
"Refunds",
"Regional exceptions"
]
}
],
"conflicts": [],
"freshness": {
"observedAt": "2026-09-06T08:00:12.000Z",
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "c3b2a1f0-e9d8-4c7b-8a6f-5e4d3c2b1a09",
"score": 0.77,
"scores": {
"final": 0.77,
"freshness": 0.9,
"rerank": 0.8,
"retrieval": 0.66
},
"text": "The 14-day window applies to orders shipped to the EU and the UK. Other regions keep the 30-day window until further notice."
}
],
"missingEvidence": [
{
"expectedEvidenceId": "7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928",
"metadata": {},
"reason": "not-retrieved",
"text": "No chunk lists the effective date for regions outside the EU and the UK."
}
],
"query": "What changed in the 2025 refund policy, and which regions are affected?",
"retrievalQuery": "2025 refund policy changes refund window regions affected",
"state": "answerable"
},
"knowledge_space_id": "b2f1d3a4-5e6c-4a7b-8c9d-0e1f2a3b4c5d",
"research_task_job_id": "e4d1b7a2-3c5f-4d8e-9a0b-1c2d3e4f5a6b",
"sequence": 2
}
],
"next_cursor": null
}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: 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.
Research task ID. From Create Research Task.
Query Parameters
Opaque cursor: send the previous page's next_cursor unchanged.
1 - 1000Entries per page.
1 <= x <= 100Was this page helpful?
curl --request GET \
--url https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials \
--header 'Authorization: Bearer <token>'import requests
url = "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials', 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}/research-tasks/{research_task_id}/partials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials"
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))
}HttpResponse<String> response = Unirest.get("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{api_base_url}/knowledge-fs/spaces/{knowledge_base_id}/research-tasks/{research_task_id}/partials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"answer": null,
"evidence_bundle": {
"createdAt": "2026-09-06T08:00:10.000Z",
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"items": [
{
"citations": [
{
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"pageNumber": 2,
"sectionPath": [
"Policies",
"Refunds"
]
}
],
"conflicts": [],
"freshness": {
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"score": 0.82,
"scores": {
"final": 0.82,
"rerank": 0.85,
"retrieval": 0.71
},
"text": "From 1 March 2025, refunds are issued within 14 days of the return being received. The previous window was 30 days."
},
{
"citations": [
{
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"pageNumber": 3,
"sectionPath": [
"Policies",
"Refunds",
"Regional exceptions"
]
}
],
"conflicts": [],
"freshness": {
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "c3b2a1f0-e9d8-4c7b-8a6f-5e4d3c2b1a09",
"score": 0.77,
"scores": {
"final": 0.77,
"rerank": 0.8,
"retrieval": 0.66
},
"text": "The 14-day window applies to orders shipped to the EU and the UK. Other regions keep the 30-day window until further notice."
}
],
"missingEvidence": [],
"query": "What changed in the 2025 refund policy, and which regions are affected?",
"state": "partial"
},
"knowledge_space_id": "b2f1d3a4-5e6c-4a7b-8c9d-0e1f2a3b4c5d",
"research_task_job_id": "e4d1b7a2-3c5f-4d8e-9a0b-1c2d3e4f5a6b",
"sequence": 1
},
{
"answer": "The 2025 policy shortened the refund window from 30 days to 14 days after the return is received, effective 1 March 2025. The change applies to orders shipped to the EU and the UK; other regions keep the 30-day window.",
"evidence_bundle": {
"createdAt": "2026-09-06T08:00:41.000Z",
"id": "1f2e3d4c-5b6a-4978-8a7b-6c5d4e3f2a1b",
"items": [
{
"citations": [
{
"artifactHash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"endOffset": 1978,
"pageNumber": 2,
"sectionPath": [
"Policies",
"Refunds"
],
"startOffset": 1840
}
],
"conflicts": [
{
"reason": "States a 14-day window while another chunk keeps 30 days for some regions.",
"severity": "info",
"withNodeId": "c3b2a1f0-e9d8-4c7b-8a6f-5e4d3c2b1a09"
}
],
"freshness": {
"observedAt": "2026-09-06T08:00:12.000Z",
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
"score": 0.82,
"scores": {
"final": 0.82,
"freshness": 0.9,
"rerank": 0.85,
"retrieval": 0.71
},
"text": "From 1 March 2025, refunds are issued within 14 days of the return being received. The previous window was 30 days."
},
{
"citations": [
{
"documentAssetId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"documentVersion": 1,
"pageNumber": 3,
"sectionPath": [
"Policies",
"Refunds",
"Regional exceptions"
]
}
],
"conflicts": [],
"freshness": {
"observedAt": "2026-09-06T08:00:12.000Z",
"sourceUpdatedAt": "2026-08-30T09:12:00.000Z",
"status": "fresh"
},
"metadata": {},
"nodeId": "c3b2a1f0-e9d8-4c7b-8a6f-5e4d3c2b1a09",
"score": 0.77,
"scores": {
"final": 0.77,
"freshness": 0.9,
"rerank": 0.8,
"retrieval": 0.66
},
"text": "The 14-day window applies to orders shipped to the EU and the UK. Other regions keep the 30-day window until further notice."
}
],
"missingEvidence": [
{
"expectedEvidenceId": "7e6d5c4b-3a29-4180-9f8e-7d6c5b4a3928",
"metadata": {},
"reason": "not-retrieved",
"text": "No chunk lists the effective date for regions outside the EU and the UK."
}
],
"query": "What changed in the 2025 refund policy, and which regions are affected?",
"retrievalQuery": "2025 refund policy changes refund window regions affected",
"state": "answerable"
},
"knowledge_space_id": "b2f1d3a4-5e6c-4a7b-8c9d-0e1f2a3b4c5d",
"research_task_job_id": "e4d1b7a2-3c5f-4d8e-9a0b-1c2d3e4f5a6b",
"sequence": 2
}
],
"next_cursor": null
}