Create Thread
curl --request POST \
--url https://api.example.com/threads \
--header 'Content-Type: application/json' \
--data '
{
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": {},
"if_exists": "raise",
"ttl": {
"strategy": "delete",
"ttl": 123
},
"supersteps": [
{
"updates": [
{
"as_node": "<string>",
"values": [
{}
],
"command": {
"update": {},
"resume": {},
"goto": {
"node": "<string>",
"input": {}
}
}
}
]
}
]
}
'import requests
url = "https://api.example.com/threads"
payload = {
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": {},
"if_exists": "raise",
"ttl": {
"strategy": "delete",
"ttl": 123
},
"supersteps": [{ "updates": [
{
"as_node": "<string>",
"values": [{}],
"command": {
"update": {},
"resume": {},
"goto": {
"node": "<string>",
"input": {}
}
}
}
] }]
}
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({
thread_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
metadata: {},
if_exists: 'raise',
ttl: {strategy: 'delete', ttl: 123},
supersteps: [
{
updates: [
{
as_node: '<string>',
values: [{}],
command: {update: {}, resume: {}, goto: {node: '<string>', input: {}}}
}
]
}
]
})
};
fetch('https://api.example.com/threads', 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",
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([
'thread_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'metadata' => [
],
'if_exists' => 'raise',
'ttl' => [
'strategy' => 'delete',
'ttl' => 123
],
'supersteps' => [
[
'updates' => [
[
'as_node' => '<string>',
'values' => [
[
]
],
'command' => [
'update' => [
],
'resume' => [
],
'goto' => [
'node' => '<string>',
'input' => [
]
]
]
]
]
]
]
]),
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"
payload := strings.NewReader("{\n \"thread_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"metadata\": {},\n \"if_exists\": \"raise\",\n \"ttl\": {\n \"strategy\": \"delete\",\n \"ttl\": 123\n },\n \"supersteps\": [\n {\n \"updates\": [\n {\n \"as_node\": \"<string>\",\n \"values\": [\n {}\n ],\n \"command\": {\n \"update\": {},\n \"resume\": {},\n \"goto\": {\n \"node\": \"<string>\",\n \"input\": {}\n }\n }\n }\n ]\n }\n ]\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")
.header("Content-Type", "application/json")
.body("{\n \"thread_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"metadata\": {},\n \"if_exists\": \"raise\",\n \"ttl\": {\n \"strategy\": \"delete\",\n \"ttl\": 123\n },\n \"supersteps\": [\n {\n \"updates\": [\n {\n \"as_node\": \"<string>\",\n \"values\": [\n {}\n ],\n \"command\": {\n \"update\": {},\n \"resume\": {},\n \"goto\": {\n \"node\": \"<string>\",\n \"input\": {}\n }\n }\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/threads")
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 \"thread_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"metadata\": {},\n \"if_exists\": \"raise\",\n \"ttl\": {\n \"strategy\": \"delete\",\n \"ttl\": 123\n },\n \"supersteps\": [\n {\n \"updates\": [\n {\n \"as_node\": \"<string>\",\n \"values\": [\n {}\n ],\n \"command\": {\n \"update\": {},\n \"resume\": {},\n \"goto\": {\n \"node\": \"<string>\",\n \"input\": {}\n }\n }\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"metadata": {},
"config": {},
"values": {},
"interrupts": {}
}"<string>""<string>"Create Thread
Create a thread.
POST
/
threads
Create Thread
curl --request POST \
--url https://api.example.com/threads \
--header 'Content-Type: application/json' \
--data '
{
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": {},
"if_exists": "raise",
"ttl": {
"strategy": "delete",
"ttl": 123
},
"supersteps": [
{
"updates": [
{
"as_node": "<string>",
"values": [
{}
],
"command": {
"update": {},
"resume": {},
"goto": {
"node": "<string>",
"input": {}
}
}
}
]
}
]
}
'import requests
url = "https://api.example.com/threads"
payload = {
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": {},
"if_exists": "raise",
"ttl": {
"strategy": "delete",
"ttl": 123
},
"supersteps": [{ "updates": [
{
"as_node": "<string>",
"values": [{}],
"command": {
"update": {},
"resume": {},
"goto": {
"node": "<string>",
"input": {}
}
}
}
] }]
}
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({
thread_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
metadata: {},
if_exists: 'raise',
ttl: {strategy: 'delete', ttl: 123},
supersteps: [
{
updates: [
{
as_node: '<string>',
values: [{}],
command: {update: {}, resume: {}, goto: {node: '<string>', input: {}}}
}
]
}
]
})
};
fetch('https://api.example.com/threads', 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",
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([
'thread_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'metadata' => [
],
'if_exists' => 'raise',
'ttl' => [
'strategy' => 'delete',
'ttl' => 123
],
'supersteps' => [
[
'updates' => [
[
'as_node' => '<string>',
'values' => [
[
]
],
'command' => [
'update' => [
],
'resume' => [
],
'goto' => [
'node' => '<string>',
'input' => [
]
]
]
]
]
]
]
]),
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"
payload := strings.NewReader("{\n \"thread_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"metadata\": {},\n \"if_exists\": \"raise\",\n \"ttl\": {\n \"strategy\": \"delete\",\n \"ttl\": 123\n },\n \"supersteps\": [\n {\n \"updates\": [\n {\n \"as_node\": \"<string>\",\n \"values\": [\n {}\n ],\n \"command\": {\n \"update\": {},\n \"resume\": {},\n \"goto\": {\n \"node\": \"<string>\",\n \"input\": {}\n }\n }\n }\n ]\n }\n ]\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")
.header("Content-Type", "application/json")
.body("{\n \"thread_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"metadata\": {},\n \"if_exists\": \"raise\",\n \"ttl\": {\n \"strategy\": \"delete\",\n \"ttl\": 123\n },\n \"supersteps\": [\n {\n \"updates\": [\n {\n \"as_node\": \"<string>\",\n \"values\": [\n {}\n ],\n \"command\": {\n \"update\": {},\n \"resume\": {},\n \"goto\": {\n \"node\": \"<string>\",\n \"input\": {}\n }\n }\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/threads")
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 \"thread_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"metadata\": {},\n \"if_exists\": \"raise\",\n \"ttl\": {\n \"strategy\": \"delete\",\n \"ttl\": 123\n },\n \"supersteps\": [\n {\n \"updates\": [\n {\n \"as_node\": \"<string>\",\n \"values\": [\n {}\n ],\n \"command\": {\n \"update\": {},\n \"resume\": {},\n \"goto\": {\n \"node\": \"<string>\",\n \"input\": {}\n }\n }\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"metadata": {},
"config": {},
"values": {},
"interrupts": {}
}"<string>""<string>"Body
application/json
Payload for creating a thread.
The ID of the thread. If not provided, a random UUID will be generated.
Metadata to add to thread.
How to handle duplicate creation. Must be either 'raise' (raise error if duplicate), or 'do_nothing' (return existing thread).
Available options:
raise, do_nothing The time-to-live for the thread.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Success
The ID of the thread.
The time the thread was created.
The last time the thread was updated.
The thread metadata.
The status of the thread.
Available options:
idle, busy, interrupted, error The thread config.
The current state of the thread.
The current interrupts of the thread.
Was this page helpful?
⌘I