Skip to main content
Pinecone Docs
current

Search documentation

Type to search this documentation.

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.

GET /contexts/{slug}/curate

cURL
curl --request GET \
  --url https://{host}/api/contexts/{slug}/curate \
  --header 'Authorization: Bearer <token>' \
  --header 'X-Pinecone-Api-Version: <x-pinecone-api-version>'
Python
import requests

url = "https://{host}/api/contexts/{slug}/curate"

headers = {
    "Authorization": "Bearer <token>",
    "X-Pinecone-Api-Version": "<x-pinecone-api-version>"
}

response = requests.get(url, headers=headers)

print(response.text)
JavaScript
const options = {method: "GET", headers: {"Authorization": "Bearer <token>", "X-Pinecone-Api-Version": "<x-pinecone-api-version>"}};

fetch("https://{host}/api/contexts/{slug}/curate", options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
PHP
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://{host}/api/contexts/{slug}/curate",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "X-Pinecone-Api-Version: <x-pinecone-api-version>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
Go
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>")
	req.Header.Add("X-Pinecone-Api-Version", "<x-pinecone-api-version>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
Java
HttpResponse<String> response = Unirest.get("https://{host}/api/contexts/{slug}/curate")
  .header("Authorization", "Bearer <token>")
  .header("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
  .asString();
Ruby
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>'
request["X-Pinecone-Api-Version"] = '<x-pinecone-api-version>'

response = http.request(request)
puts response.read_body
200
{
  "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": {}
}
404
{
  "message": "<string>",
  "code": "<string>"
}
Authorizationstringrequired

Session token from POST /auth/login, sent as Authorization: Bearer <token>.

X-Pinecone-Api-Version?string

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.

Typestring
Default2026-07
slugstringrequired

Context slug or UUID.

Typestring

200 — Curation state

What the last curate recorded, and what the next one resumes from.

manifestobjectrequired

Per-source curate ledger, keyed by source path.

Typeobject
edgesobjectrequired

Artifact ids each source contributed an edge to, keyed by source path.

Typeobject
corpus_groupsobject[]required

The source groupings the corpus pass reduced over.

Typeobject[]
Show child attributes
group_keystringrequired

Stable identifier the reduce pass groups on.

Typestring
member_sourcesstring[]required

Source paths in the group.

Typestring[]
canonical_namestringrequired

The name the group's artifact is written under.

Typestring
membership_hashstringrequired

Hash of the membership. A change here means the group must be re-reduced.

Typestring
added_versionintegerrequired

Index version the group was added in.

Typeinteger
live_versionintegerrequired

The index version queries read.

Typeinteger
versions_stampedbooleanrequired

Whether every index entry carries a version stamp, which is what lets a curate flip versions atomically.

Typeboolean
source_removedobjectrequired

Delete tombstones awaiting the next curate, keyed by source path.

Typeobject
redispatch_countintegerrequired

How many times a curate on this context was killed and redispatched. The checkpointed run resumes rather than restarting.

Typeinteger
artifact_reclaimobject[]required

Artifact swaps awaiting the next curate.

Typeobject[]
Show child attributes
removed_idstringrequired

The artifact being superseded.

Typestring
added_idstringrequired

The artifact replacing it.

Typestring
versionintegerrequired

Index version the swap belongs to.

Typeinteger
source_pointersobjectrequired

The resume cursor a redispatched curate writes, keyed by source path. for a context whose curates all ran to completion.

Typeobject
source_glossaryobjectrequired

The glossary resume cursor, keyed by source path. for a context whose curates all ran to completion.

Typeobject
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu