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": 123
}
],
"live_version": 123,
"versions_stamped": true,
"source_removed": {},
"redispatch_count": 123,
"artifact_reclaim": [
{
"removed_id": "<string>",
"added_id": "<string>",
"version": 123
}
],
"source_pointers": {},
"source_glossary": {}
}{
"message": "<string>",
"code": "<string>"
}Get the curation ledger
What the last curate recorded: the per-source hash and timestamp map, artifact edges, corpus groups, the live version pin, delete tombstones, artifact-reclaim intents, and the pointer and glossary resume cursors. Chunk ids are tracked too but not served — an internal retrieval unit.
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": 123
}
],
"live_version": 123,
"versions_stamped": true,
"source_removed": {},
"redispatch_count": 123,
"artifact_reclaim": [
{
"removed_id": "<string>",
"added_id": "<string>",
"version": 123
}
],
"source_pointers": {},
"source_glossary": {}
}{
"message": "<string>",
"code": "<string>"
}Authorizations
Session token from POST /auth/login, sent as Authorization: Bearer <token>.
Headers
Date-based contract version, echoed back on the same header. Omit for the default (2026-07); send unstable for the in-development surface. An unrecognized value is rejected with 400 unsupported_api_version.
Path Parameters
Context slug or UUID.
Response
Curation state
What the last curate recorded, and what the next one resumes from.
Per-source curate ledger, keyed by source path.
Show child attributes
Show child attributes
Artifact ids each source contributed an edge to, keyed by source path.
Show child attributes
Show child attributes
The source groupings the corpus pass reduced over.
Show child attributes
Show child attributes
The index version queries read.
Whether every index entry carries a version stamp, which is what lets a curate flip versions atomically.
Delete tombstones awaiting the next curate, keyed by source path.
Show child attributes
Show child attributes
How many times a curate on this context was killed and redispatched. The checkpointed run resumes rather than restarting.
Artifact swaps awaiting the next curate.
Show child attributes
Show child attributes
The resume cursor a redispatched curate writes, keyed by source path. {} for a context whose curates all ran to completion.
Show child attributes
Show child attributes
The glossary resume cursor, keyed by source path. {} for a context whose curates all ran to completion.
Show child attributes
Show child attributes
Was this page helpful?