curl --request GET \
--url https://{host}/api/sessions/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/api/sessions/{id}"
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/sessions/{id}', 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/sessions/{id}",
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/sessions/{id}"
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/sessions/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/sessions/{id}")
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{
"id": "<string>",
"project_id": "<string>",
"created_by": "<string>",
"scope": [
"<string>"
],
"models": [
"<string>"
],
"tools": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"queries": [
{
"id": "<string>",
"object": "<string>",
"session_id": "<string>",
"created": 123,
"status": "<string>",
"input": [
{
"role": "<string>",
"content": "<string>"
}
],
"output": [
{
"role": "<string>",
"content": [
{
"type": "<string>",
"text": "<string>"
}
]
}
],
"citations": [
{
"source": "<string>",
"section_paths": [
[
"<string>"
]
],
"pages": [
123
],
"score": 123,
"grounding": "<string>",
"kind": "<string>",
"source_path": "<string>",
"query_id": "<string>",
"steps": [
"<string>"
],
"artifact_name": "<string>",
"sources": [
"<string>"
]
}
],
"steps": [
{
"step_id": "<string>",
"status": "<string>",
"commentary": "<string>",
"fns": [
"<string>"
],
"strategy": {
"kind": "<string>",
"fns": [
"<string>"
],
"label": "<string>",
"scope": [
"<string>"
]
},
"tool_calls": [
{
"fn": "<string>",
"category": "<string>",
"args": {},
"result": "<unknown>",
"duration_ms": 123,
"ok": true,
"score_space": "<string>",
"error": "<string>"
}
],
"code": "<string>",
"trace_truncated": {
"truncated": true,
"dropped_documents": 123,
"dropped_tool_calls": 123
},
"cost": {
"tokens_in": 123,
"tokens_out": 123,
"decide_ms": 123,
"execute_ms": 123,
"tokens_in_cached": 123,
"tokens_in_cache_write": 123,
"tokens_in_fresh": 123
},
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"cum_input_tokens": 123,
"cum_output_tokens": 123
}
],
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123
},
"runtime_ms": 123,
"model": "<string>",
"error": "<string>",
"previous_query_id": "<string>",
"comparison": [
{
"workflow": "<string>",
"query_id": "<string>",
"model": "<string>"
}
],
"feedback": {
"rating": "<string>",
"comment": "<string>"
},
"output_json": {},
"max_steps": 123,
"thinking_level": "<string>",
"rollup": {
"type": "<string>",
"query_id": "<string>",
"n_steps": 123,
"n_tool_calls": 123,
"by_category": {},
"total_hits": 123,
"duration_ms": 123,
"cache_read_tokens": 123,
"cache_write_tokens": 123
},
"synthesis": {
"type": "<string>",
"query_id": "<string>",
"status": "<string>",
"tokens_in": 123,
"tokens_out": 123,
"ms": 123,
"answer_preview": "<string>",
"tokens_in_cached": 123,
"tokens_in_cache_write": 123,
"tokens_in_fresh": 123
},
"trace_ref": "<string>"
}
],
"workspace": "<string>",
"title": "<string>",
"system_prompt": "<string>",
"guardrails": "<string>",
"workflow": "<string>",
"last_query_id": "<string>"
}{
"message": "<string>",
"code": "<string>"
}Get a session with its queries (conversation order)
One session with its turns in conversation order.
curl --request GET \
--url https://{host}/api/sessions/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/api/sessions/{id}"
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/sessions/{id}', 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/sessions/{id}",
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/sessions/{id}"
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/sessions/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/api/sessions/{id}")
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{
"id": "<string>",
"project_id": "<string>",
"created_by": "<string>",
"scope": [
"<string>"
],
"models": [
"<string>"
],
"tools": [
"<string>"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"queries": [
{
"id": "<string>",
"object": "<string>",
"session_id": "<string>",
"created": 123,
"status": "<string>",
"input": [
{
"role": "<string>",
"content": "<string>"
}
],
"output": [
{
"role": "<string>",
"content": [
{
"type": "<string>",
"text": "<string>"
}
]
}
],
"citations": [
{
"source": "<string>",
"section_paths": [
[
"<string>"
]
],
"pages": [
123
],
"score": 123,
"grounding": "<string>",
"kind": "<string>",
"source_path": "<string>",
"query_id": "<string>",
"steps": [
"<string>"
],
"artifact_name": "<string>",
"sources": [
"<string>"
]
}
],
"steps": [
{
"step_id": "<string>",
"status": "<string>",
"commentary": "<string>",
"fns": [
"<string>"
],
"strategy": {
"kind": "<string>",
"fns": [
"<string>"
],
"label": "<string>",
"scope": [
"<string>"
]
},
"tool_calls": [
{
"fn": "<string>",
"category": "<string>",
"args": {},
"result": "<unknown>",
"duration_ms": 123,
"ok": true,
"score_space": "<string>",
"error": "<string>"
}
],
"code": "<string>",
"trace_truncated": {
"truncated": true,
"dropped_documents": 123,
"dropped_tool_calls": 123
},
"cost": {
"tokens_in": 123,
"tokens_out": 123,
"decide_ms": 123,
"execute_ms": 123,
"tokens_in_cached": 123,
"tokens_in_cache_write": 123,
"tokens_in_fresh": 123
},
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"cum_input_tokens": 123,
"cum_output_tokens": 123
}
],
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123
},
"runtime_ms": 123,
"model": "<string>",
"error": "<string>",
"previous_query_id": "<string>",
"comparison": [
{
"workflow": "<string>",
"query_id": "<string>",
"model": "<string>"
}
],
"feedback": {
"rating": "<string>",
"comment": "<string>"
},
"output_json": {},
"max_steps": 123,
"thinking_level": "<string>",
"rollup": {
"type": "<string>",
"query_id": "<string>",
"n_steps": 123,
"n_tool_calls": 123,
"by_category": {},
"total_hits": 123,
"duration_ms": 123,
"cache_read_tokens": 123,
"cache_write_tokens": 123
},
"synthesis": {
"type": "<string>",
"query_id": "<string>",
"status": "<string>",
"tokens_in": 123,
"tokens_out": 123,
"ms": 123,
"answer_preview": "<string>",
"tokens_in_cached": 123,
"tokens_in_cache_write": 123,
"tokens_in_fresh": 123
},
"trace_ref": "<string>"
}
],
"workspace": "<string>",
"title": "<string>",
"system_prompt": "<string>",
"guardrails": "<string>",
"workflow": "<string>",
"last_query_id": "<string>"
}{
"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
Session id.
Response
The session fields plus a queries array of query turns
The session, with its turns.
Session id, ses_<uuid>.
The Pinecone project that owns the session.
Principal whose first turn created the session.
Pinned context UUIDs (1–10) every turn searches.
A pinned context UUID.
Pinned model fallback list, in preference order.
A catalog model id or tier name.
Tool names the session's turns may call.
A tool name.
When the session was created.
When the session last changed.
The session's turns, oldest first.
Show child attributes
Show child attributes
Owning workspace. Absent off a workspace-enabled cluster.
Display title derived from the opening ask. Null until one is written.
Instructions pinned at session creation. Null when none were given.
Guardrails pinned at session creation. Null when none were given.
The workflow this session's turns run
The most recent turn. Null on a session with no turns yet.
Was this page helpful?