Create a knowledge base chat
curl --request POST \
--url https://api.starleads.co/KnowledgeBaseChat \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data @- <<EOF
{
"name": "Support Bot KB",
"datasetIds": [
"ds_abc123"
],
"llmSettings": {
"temperature": 0.7,
"topP": 0.9,
"presencePenalty": 0,
"frequencyPenalty": 0
},
"promptSettings": {
"similarityThreshold": 0.2,
"topN": 6,
"prompt": "Answer based on the context: {context}",
"emptyResponse": "I don't have information about that."
}
}
EOFimport requests
url = "https://api.starleads.co/KnowledgeBaseChat"
payload = {
"name": "Support Bot KB",
"datasetIds": ["ds_abc123"],
"llmSettings": {
"temperature": 0.7,
"topP": 0.9,
"presencePenalty": 0,
"frequencyPenalty": 0
},
"promptSettings": {
"similarityThreshold": 0.2,
"topN": 6,
"prompt": "Answer based on the context: {context}",
"emptyResponse": "I don't have information about that."
}
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Support Bot KB',
datasetIds: ['ds_abc123'],
llmSettings: {temperature: 0.7, topP: 0.9, presencePenalty: 0, frequencyPenalty: 0},
promptSettings: {
similarityThreshold: 0.2,
topN: 6,
prompt: 'Answer based on the context: {context}',
emptyResponse: 'I don\'t have information about that.'
}
})
};
fetch('https://api.starleads.co/KnowledgeBaseChat', 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.starleads.co/KnowledgeBaseChat",
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([
'name' => 'Support Bot KB',
'datasetIds' => [
'ds_abc123'
],
'llmSettings' => [
'temperature' => 0.7,
'topP' => 0.9,
'presencePenalty' => 0,
'frequencyPenalty' => 0
],
'promptSettings' => [
'similarityThreshold' => 0.2,
'topN' => 6,
'prompt' => 'Answer based on the context: {context}',
'emptyResponse' => 'I don\'t have information about that.'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.starleads.co/KnowledgeBaseChat"
payload := strings.NewReader("{\n \"name\": \"Support Bot KB\",\n \"datasetIds\": [\n \"ds_abc123\"\n ],\n \"llmSettings\": {\n \"temperature\": 0.7,\n \"topP\": 0.9,\n \"presencePenalty\": 0,\n \"frequencyPenalty\": 0\n },\n \"promptSettings\": {\n \"similarityThreshold\": 0.2,\n \"topN\": 6,\n \"prompt\": \"Answer based on the context: {context}\",\n \"emptyResponse\": \"I don't have information about that.\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.starleads.co/KnowledgeBaseChat")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Support Bot KB\",\n \"datasetIds\": [\n \"ds_abc123\"\n ],\n \"llmSettings\": {\n \"temperature\": 0.7,\n \"topP\": 0.9,\n \"presencePenalty\": 0,\n \"frequencyPenalty\": 0\n },\n \"promptSettings\": {\n \"similarityThreshold\": 0.2,\n \"topN\": 6,\n \"prompt\": \"Answer based on the context: {context}\",\n \"emptyResponse\": \"I don't have information about that.\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.starleads.co/KnowledgeBaseChat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Support Bot KB\",\n \"datasetIds\": [\n \"ds_abc123\"\n ],\n \"llmSettings\": {\n \"temperature\": 0.7,\n \"topP\": 0.9,\n \"presencePenalty\": 0,\n \"frequencyPenalty\": 0\n },\n \"promptSettings\": {\n \"similarityThreshold\": 0.2,\n \"topN\": 6,\n \"prompt\": \"Answer based on the context: {context}\",\n \"emptyResponse\": \"I don't have information about that.\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "chat_def456",
"name": "Support Bot KB",
"datasetIds": [
"ds_abc123"
],
"datasetNames": [
"My Knowledge Base"
],
"connectedAgentCount": 0,
"llmSettings": {
"temperature": 0.7,
"topP": 0.9,
"presencePenalty": 0,
"frequencyPenalty": 0
},
"promptSettings": {
"similarityThreshold": 0.2,
"topN": 6,
"prompt": "Answer based on the context: {context}",
"emptyResponse": "I don't have information about that."
},
"createdAt": "2026-04-15T10:30:00Z",
"updatedAt": "2026-04-15T10:30:00Z"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}RAG - Knowledge Base Chat
Create a knowledge base chat
Creates a new knowledge base chat linked to one or more datasets. The chat can be configured with custom LLM and prompt settings. The model name field is not exposed; it is managed internally.
POST
/
KnowledgeBaseChat
Create a knowledge base chat
curl --request POST \
--url https://api.starleads.co/KnowledgeBaseChat \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data @- <<EOF
{
"name": "Support Bot KB",
"datasetIds": [
"ds_abc123"
],
"llmSettings": {
"temperature": 0.7,
"topP": 0.9,
"presencePenalty": 0,
"frequencyPenalty": 0
},
"promptSettings": {
"similarityThreshold": 0.2,
"topN": 6,
"prompt": "Answer based on the context: {context}",
"emptyResponse": "I don't have information about that."
}
}
EOFimport requests
url = "https://api.starleads.co/KnowledgeBaseChat"
payload = {
"name": "Support Bot KB",
"datasetIds": ["ds_abc123"],
"llmSettings": {
"temperature": 0.7,
"topP": 0.9,
"presencePenalty": 0,
"frequencyPenalty": 0
},
"promptSettings": {
"similarityThreshold": 0.2,
"topN": 6,
"prompt": "Answer based on the context: {context}",
"emptyResponse": "I don't have information about that."
}
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Support Bot KB',
datasetIds: ['ds_abc123'],
llmSettings: {temperature: 0.7, topP: 0.9, presencePenalty: 0, frequencyPenalty: 0},
promptSettings: {
similarityThreshold: 0.2,
topN: 6,
prompt: 'Answer based on the context: {context}',
emptyResponse: 'I don\'t have information about that.'
}
})
};
fetch('https://api.starleads.co/KnowledgeBaseChat', 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.starleads.co/KnowledgeBaseChat",
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([
'name' => 'Support Bot KB',
'datasetIds' => [
'ds_abc123'
],
'llmSettings' => [
'temperature' => 0.7,
'topP' => 0.9,
'presencePenalty' => 0,
'frequencyPenalty' => 0
],
'promptSettings' => [
'similarityThreshold' => 0.2,
'topN' => 6,
'prompt' => 'Answer based on the context: {context}',
'emptyResponse' => 'I don\'t have information about that.'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.starleads.co/KnowledgeBaseChat"
payload := strings.NewReader("{\n \"name\": \"Support Bot KB\",\n \"datasetIds\": [\n \"ds_abc123\"\n ],\n \"llmSettings\": {\n \"temperature\": 0.7,\n \"topP\": 0.9,\n \"presencePenalty\": 0,\n \"frequencyPenalty\": 0\n },\n \"promptSettings\": {\n \"similarityThreshold\": 0.2,\n \"topN\": 6,\n \"prompt\": \"Answer based on the context: {context}\",\n \"emptyResponse\": \"I don't have information about that.\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.starleads.co/KnowledgeBaseChat")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Support Bot KB\",\n \"datasetIds\": [\n \"ds_abc123\"\n ],\n \"llmSettings\": {\n \"temperature\": 0.7,\n \"topP\": 0.9,\n \"presencePenalty\": 0,\n \"frequencyPenalty\": 0\n },\n \"promptSettings\": {\n \"similarityThreshold\": 0.2,\n \"topN\": 6,\n \"prompt\": \"Answer based on the context: {context}\",\n \"emptyResponse\": \"I don't have information about that.\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.starleads.co/KnowledgeBaseChat")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Support Bot KB\",\n \"datasetIds\": [\n \"ds_abc123\"\n ],\n \"llmSettings\": {\n \"temperature\": 0.7,\n \"topP\": 0.9,\n \"presencePenalty\": 0,\n \"frequencyPenalty\": 0\n },\n \"promptSettings\": {\n \"similarityThreshold\": 0.2,\n \"topN\": 6,\n \"prompt\": \"Answer based on the context: {context}\",\n \"emptyResponse\": \"I don't have information about that.\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "chat_def456",
"name": "Support Bot KB",
"datasetIds": [
"ds_abc123"
],
"datasetNames": [
"My Knowledge Base"
],
"connectedAgentCount": 0,
"llmSettings": {
"temperature": 0.7,
"topP": 0.9,
"presencePenalty": 0,
"frequencyPenalty": 0
},
"promptSettings": {
"similarityThreshold": 0.2,
"topN": 6,
"prompt": "Answer based on the context: {context}",
"emptyResponse": "I don't have information about that."
},
"createdAt": "2026-04-15T10:30:00Z",
"updatedAt": "2026-04-15T10:30:00Z"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Authorizations
Headers
Api key to pass as a X-Api-Key request header.
Body
application/json
Request payload to create a new knowledge base chat
Response
Chat created successfully
Public representation of a knowledge base chat
Chat identifier
Chat name
Connected dataset IDs
Connected dataset names (read-only)
Number of agents using this chat
LLM configuration parameters exposed to the API (excludes model name)
Show child attributes
Show child attributes
RAG prompt configuration
Show child attributes
Show child attributes
Creation timestamp
Last update timestamp
⌘I

