Create knowledge node
curl --request POST \
--url https://api.conduit.ai/v1/kb/nodes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Checkout instructions",
"body": "Checkout is at 11 AM...",
"entity_ids": [
"ent_abc"
],
"enabled": true
}
'import requests
url = "https://api.conduit.ai/v1/kb/nodes"
payload = {
"title": "Checkout instructions",
"body": "Checkout is at 11 AM...",
"entity_ids": ["ent_abc"],
"enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Checkout instructions',
body: JSON.stringify('Checkout is at 11 AM...'),
entity_ids: ['ent_abc'],
enabled: true
})
};
fetch('https://api.conduit.ai/v1/kb/nodes', 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.conduit.ai/v1/kb/nodes",
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([
'title' => 'Checkout instructions',
'body' => 'Checkout is at 11 AM...',
'entity_ids' => [
'ent_abc'
],
'enabled' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.conduit.ai/v1/kb/nodes"
payload := strings.NewReader("{\n \"title\": \"Checkout instructions\",\n \"body\": \"Checkout is at 11 AM...\",\n \"entity_ids\": [\n \"ent_abc\"\n ],\n \"enabled\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.conduit.ai/v1/kb/nodes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Checkout instructions\",\n \"body\": \"Checkout is at 11 AM...\",\n \"entity_ids\": [\n \"ent_abc\"\n ],\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conduit.ai/v1/kb/nodes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Checkout instructions\",\n \"body\": \"Checkout is at 11 AM...\",\n \"entity_ids\": [\n \"ent_abc\"\n ],\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"workspace_id": "<string>",
"title": "<string>",
"body": "<string>",
"chunk_body": true,
"entity_ids": [
"<string>"
],
"parent_id": "<string>",
"ancestors": [
"<string>"
],
"depth": 123,
"source_id": "<string>",
"is_directory": true,
"metadata": {},
"enabled": true,
"created_by": "<string>",
"embed_status": "<string>",
"chunk_count": 123,
"version": 123,
"tags": [
"<string>"
],
"created_at": "<string>",
"updated_at": "<string>"
}
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}Knowledge Base
Create Knowledge Node
Create a new node in your knowledge base with the specified content.
POST
/
v1
/
kb
/
nodes
Create knowledge node
curl --request POST \
--url https://api.conduit.ai/v1/kb/nodes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Checkout instructions",
"body": "Checkout is at 11 AM...",
"entity_ids": [
"ent_abc"
],
"enabled": true
}
'import requests
url = "https://api.conduit.ai/v1/kb/nodes"
payload = {
"title": "Checkout instructions",
"body": "Checkout is at 11 AM...",
"entity_ids": ["ent_abc"],
"enabled": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Checkout instructions',
body: JSON.stringify('Checkout is at 11 AM...'),
entity_ids: ['ent_abc'],
enabled: true
})
};
fetch('https://api.conduit.ai/v1/kb/nodes', 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.conduit.ai/v1/kb/nodes",
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([
'title' => 'Checkout instructions',
'body' => 'Checkout is at 11 AM...',
'entity_ids' => [
'ent_abc'
],
'enabled' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.conduit.ai/v1/kb/nodes"
payload := strings.NewReader("{\n \"title\": \"Checkout instructions\",\n \"body\": \"Checkout is at 11 AM...\",\n \"entity_ids\": [\n \"ent_abc\"\n ],\n \"enabled\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.conduit.ai/v1/kb/nodes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Checkout instructions\",\n \"body\": \"Checkout is at 11 AM...\",\n \"entity_ids\": [\n \"ent_abc\"\n ],\n \"enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conduit.ai/v1/kb/nodes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Checkout instructions\",\n \"body\": \"Checkout is at 11 AM...\",\n \"entity_ids\": [\n \"ent_abc\"\n ],\n \"enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "<string>",
"workspace_id": "<string>",
"title": "<string>",
"body": "<string>",
"chunk_body": true,
"entity_ids": [
"<string>"
],
"parent_id": "<string>",
"ancestors": [
"<string>"
],
"depth": 123,
"source_id": "<string>",
"is_directory": true,
"metadata": {},
"enabled": true,
"created_by": "<string>",
"embed_status": "<string>",
"chunk_count": 123,
"version": 123,
"tags": [
"<string>"
],
"created_at": "<string>",
"updated_at": "<string>"
}
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}{
"error": "Invalid workspace id"
}Authorizations
Conduit API token. Use Authorization: Bearer <token>. Read/write endpoints require a token with write access.
Query Parameters
Workspace to query.
Example:
"j57demo8f8x7c9v0n2q4r6t8y1u3i5o"
Body
application/json
Node display title.
Minimum string length:
1Markdown or plain-text body. Ignored when is_directory is true.
Parent node id. Omit to create at workspace root.
Scope the node to specific entities (listings, properties). Omit for workspace-wide.
Create as a folder with no body. Children can be nested underneath.
Arbitrary JSON metadata. Not searchable.
Show child attributes
Show child attributes
Defaults to true. Disabled nodes are excluded from agent search.
Response
Knowledge node created
Show child attributes
Show child attributes
Was this page helpful?
⌘I