curl --request GET \
--url https://{host}/api/contexts/{slug}/curate \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/api/contexts/{slug}/curate"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/api/contexts/{slug}/curate', 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://{host}/api/contexts/{slug}/curate",
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://{host}/api/contexts/{slug}/curate"
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://{host}/api/contexts/{slug}/curate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/contexts/{slug}/curate")
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{
"manifest": {},
"edges": {},
"corpus_groups": [
{
"group_key": "<string>",
"member_sources": [
"<string>"
],
"canonical_name": "<string>",
"membership_hash": "<string>",
"added_version": 0
}
],
"chunk_ids": {},
"live_version": 123,
"versions_stamped": true,
"source_removed": {},
"redispatch_count": 123,
"artifact_reclaim": [
{
"removed_id": "<string>",
"added_id": "<string>",
"version": 123
}
],
"chunk_reclaim": [
{
"source": "<string>",
"removed_version": 123,
"chunk_ids": [
"<string>"
]
}
],
"source_pointers": {},
"source_glossary": {}
}{
"message": "<string>",
"code": "<string>"
}Get the curation ledger
The full ledger: per-source hashes, edges, corpus groups, chunk-id lineage, version pin, reclaim intents, pointers, and glossary. This pays an O(corpus) chunk-id-lineage read — use GET /contexts/{slug}/curate/version/pin on the per-turn path.
curl --request GET \
--url https://{host}/api/contexts/{slug}/curate \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/api/contexts/{slug}/curate"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/api/contexts/{slug}/curate', 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://{host}/api/contexts/{slug}/curate",
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://{host}/api/contexts/{slug}/curate"
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://{host}/api/contexts/{slug}/curate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/contexts/{slug}/curate")
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{
"manifest": {},
"edges": {},
"corpus_groups": [
{
"group_key": "<string>",
"member_sources": [
"<string>"
],
"canonical_name": "<string>",
"membership_hash": "<string>",
"added_version": 0
}
],
"chunk_ids": {},
"live_version": 123,
"versions_stamped": true,
"source_removed": {},
"redispatch_count": 123,
"artifact_reclaim": [
{
"removed_id": "<string>",
"added_id": "<string>",
"version": 123
}
],
"chunk_reclaim": [
{
"source": "<string>",
"removed_version": 123,
"chunk_ids": [
"<string>"
]
}
],
"source_pointers": {},
"source_glossary": {}
}{
"message": "<string>",
"code": "<string>"
}Authorizations
Session token from POST /auth/login. Pass as Authorization: Bearer <token>. The alternative X-Pinecone-Api-Key header is also accepted for direct-key auth (used by the Nexus CLI on first contact).
Headers
Date-based contract version. Omit to resolve to the Nexus default version (2026-07, the oldest served version); send unstable for the in-development surface. The resolved version is echoed back on the same header. A present-but-unrecognized value is rejected with 400 unsupported_api_version.
Path Parameters
Context slug or UUID.
Response
Curation state
Per-source curate ledger, keyed by source path.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Chunk-id lineage, keyed by source path.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?