List curated knowledge (root)
The root of the curated knowledge tree — chunks and artifacts the last curate wrote.
GET /contexts/{slug}/knowledge/list
curl --request GET \
--url https://{host}/api/contexts/{slug}/knowledge/list \
--header 'Authorization: Bearer <token>' \
--header 'X-Pinecone-Api-Version: <x-pinecone-api-version>'import requests
url = "https://{host}/api/contexts/{slug}/knowledge/list"
headers = {
"Authorization": "Bearer <token>",
"X-Pinecone-Api-Version": "<x-pinecone-api-version>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: "GET", headers: {"Authorization": "Bearer <token>", "X-Pinecone-Api-Version": "<x-pinecone-api-version>"}};
fetch("https://{host}/api/contexts/{slug}/knowledge/list", 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}/knowledge/list",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{host}/api/contexts/{slug}/knowledge/list"
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))
}HttpResponse<String> response = Unirest.get("https://{host}/api/contexts/{slug}/knowledge/list")
.header("Authorization", "Bearer <token>")
.header("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/contexts/{slug}/knowledge/list")
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{
"entries": [
{
"name": "<string>",
"kind": "<string>",
"size": 123,
"mtime": "<string>"
}
],
"total": 123,
"offset": 123,
"limit": 123,
"next_offset": 123
}{
"message": "<string>",
"code": "<string>"
}Authorizations
Section titled “Authorizations”AuthorizationstringrequiredSession token from POST /auth/login, sent as Authorization: Bearer <token>.
Headers
Section titled “Headers”X-Pinecone-Api-Version?stringDate-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
Section titled “Path Parameters”slugstringrequiredContext slug or UUID.
Query Parameters
Section titled “Query Parameters”offset?integerWhere the page starts. Source and knowledge listings echo it rather than applying it, since they return the whole directory in one page.
limit?integerMaximum entries in the page. Source and knowledge listings echo it rather than applying it, since they return the whole directory in one page.
Response
Section titled “Response”200 — Directory listing
One page of a source or knowledge directory. A listing returns a single page, so offset is 0 and next_offset is null; limit echoes the request rather than being applied.
entriesobject[]requiredThe directory's immediate children.
Show child attributes
namestringrequiredEntry name, not a full path.
kindstringrequiredWhether the entry is a file or a directory.
sizeintegerrequiredByte size. 0 for a directory.
mtimestringrequiredRFC3339 last-modified, or empty when the store reports none
totalintegerrequiredEntries in this directory.
offsetintegerrequiredEchoes the request.
limitintegerrequiredEchoes the request.
next_offset?integer | nullAlways null — a listing returns one page.