Get Thread State At Checkpoint Post
curl --request POST \
--url https://api.example.com/threads/{thread_id}/state/checkpoint \
--header 'Content-Type: application/json' \
--data '
{
"checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"subgraphs": false
}
'import requests
url = "https://api.example.com/threads/{thread_id}/state/checkpoint"
payload = {
"checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"subgraphs": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
checkpoint: {checkpoint_id: '<string>', thread_id: '<string>', checkpoint_ns: ''},
subgraphs: false
})
};
fetch('https://api.example.com/threads/{thread_id}/state/checkpoint', 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://api.example.com/threads/{thread_id}/state/checkpoint",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'checkpoint' => [
'checkpoint_id' => '<string>',
'thread_id' => '<string>',
'checkpoint_ns' => ''
],
'subgraphs' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/threads/{thread_id}/state/checkpoint"
payload := strings.NewReader("{\n \"checkpoint\": {\n \"checkpoint_id\": \"<string>\",\n \"thread_id\": \"<string>\",\n \"checkpoint_ns\": \"\"\n },\n \"subgraphs\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/threads/{thread_id}/state/checkpoint")
.header("Content-Type", "application/json")
.body("{\n \"checkpoint\": {\n \"checkpoint_id\": \"<string>\",\n \"thread_id\": \"<string>\",\n \"checkpoint_ns\": \"\"\n },\n \"subgraphs\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/threads/{thread_id}/state/checkpoint")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"checkpoint\": {\n \"checkpoint_id\": \"<string>\",\n \"thread_id\": \"<string>\",\n \"checkpoint_ns\": \"\"\n },\n \"subgraphs\": false\n}"
response = http.request(request)
puts response.read_body{
"values": {},
"checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"next": [
"<string>"
],
"tasks": [
{}
],
"interrupts": [
{}
],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"parent_checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"checkpoint_id": "<string>",
"parent_checkpoint_id": "<string>"
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Threads
Get Thread State At Checkpoint Post
Get the thread state at a specific checkpoint (POST variant).
Identical to the GET checkpoint endpoint but accepts the checkpoint configuration in the request body. Useful when the checkpoint namespace contains characters that are awkward in URL paths.
POST
/
threads
/
{thread_id}
/
state
/
checkpoint
Get Thread State At Checkpoint Post
curl --request POST \
--url https://api.example.com/threads/{thread_id}/state/checkpoint \
--header 'Content-Type: application/json' \
--data '
{
"checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"subgraphs": false
}
'import requests
url = "https://api.example.com/threads/{thread_id}/state/checkpoint"
payload = {
"checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"subgraphs": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
checkpoint: {checkpoint_id: '<string>', thread_id: '<string>', checkpoint_ns: ''},
subgraphs: false
})
};
fetch('https://api.example.com/threads/{thread_id}/state/checkpoint', 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://api.example.com/threads/{thread_id}/state/checkpoint",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'checkpoint' => [
'checkpoint_id' => '<string>',
'thread_id' => '<string>',
'checkpoint_ns' => ''
],
'subgraphs' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/threads/{thread_id}/state/checkpoint"
payload := strings.NewReader("{\n \"checkpoint\": {\n \"checkpoint_id\": \"<string>\",\n \"thread_id\": \"<string>\",\n \"checkpoint_ns\": \"\"\n },\n \"subgraphs\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/threads/{thread_id}/state/checkpoint")
.header("Content-Type", "application/json")
.body("{\n \"checkpoint\": {\n \"checkpoint_id\": \"<string>\",\n \"thread_id\": \"<string>\",\n \"checkpoint_ns\": \"\"\n },\n \"subgraphs\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/threads/{thread_id}/state/checkpoint")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"checkpoint\": {\n \"checkpoint_id\": \"<string>\",\n \"thread_id\": \"<string>\",\n \"checkpoint_ns\": \"\"\n },\n \"subgraphs\": false\n}"
response = http.request(request)
puts response.read_body{
"values": {},
"checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"next": [
"<string>"
],
"tasks": [
{}
],
"interrupts": [
{}
],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"parent_checkpoint": {
"checkpoint_id": "<string>",
"thread_id": "<string>",
"checkpoint_ns": ""
},
"checkpoint_id": "<string>",
"parent_checkpoint_id": "<string>"
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Path Parameters
Body
application/json
Response
Successful Response
Thread state model for history endpoint
Channel values (messages, etc.)
Current checkpoint
Show child attributes
Show child attributes
Next nodes to execute
Tasks to execute
Interrupt data
Checkpoint metadata
Timestamp of state creation
Parent checkpoint
Show child attributes
Show child attributes
Checkpoint ID (for backward compatibility)
Parent checkpoint ID (for backward compatibility)