Create Knowledgebase
curl --request POST \
--url https://api.pathors.com/v1/projects/{projectId}/knowledgebases \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"type": "<string>",
"embeddingModelName": "<string>",
"chunkSize": 123,
"chunkOverlap": 123
}
'import requests
url = "https://api.pathors.com/v1/projects/{projectId}/knowledgebases"
payload = {
"name": "<string>",
"type": "<string>",
"embeddingModelName": "<string>",
"chunkSize": 123,
"chunkOverlap": 123
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
type: '<string>',
embeddingModelName: '<string>',
chunkSize: 123,
chunkOverlap: 123
})
};
fetch('https://api.pathors.com/v1/projects/{projectId}/knowledgebases', 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.pathors.com/v1/projects/{projectId}/knowledgebases",
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' => '<string>',
'type' => '<string>',
'embeddingModelName' => '<string>',
'chunkSize' => 123,
'chunkOverlap' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.pathors.com/v1/projects/{projectId}/knowledgebases"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"embeddingModelName\": \"<string>\",\n \"chunkSize\": 123,\n \"chunkOverlap\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.pathors.com/v1/projects/{projectId}/knowledgebases")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"embeddingModelName\": \"<string>\",\n \"chunkSize\": 123,\n \"chunkOverlap\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pathors.com/v1/projects/{projectId}/knowledgebases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"embeddingModelName\": \"<string>\",\n \"chunkSize\": 123,\n \"chunkOverlap\": 123\n}"
response = http.request(request)
puts response.read_bodyCreate Knowledgebase
Create a knowledgebase for a project
POST
/
v1
/
projects
/
{projectId}
/
knowledgebases
Create Knowledgebase
curl --request POST \
--url https://api.pathors.com/v1/projects/{projectId}/knowledgebases \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"type": "<string>",
"embeddingModelName": "<string>",
"chunkSize": 123,
"chunkOverlap": 123
}
'import requests
url = "https://api.pathors.com/v1/projects/{projectId}/knowledgebases"
payload = {
"name": "<string>",
"type": "<string>",
"embeddingModelName": "<string>",
"chunkSize": 123,
"chunkOverlap": 123
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
type: '<string>',
embeddingModelName: '<string>',
chunkSize: 123,
chunkOverlap: 123
})
};
fetch('https://api.pathors.com/v1/projects/{projectId}/knowledgebases', 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.pathors.com/v1/projects/{projectId}/knowledgebases",
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' => '<string>',
'type' => '<string>',
'embeddingModelName' => '<string>',
'chunkSize' => 123,
'chunkOverlap' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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.pathors.com/v1/projects/{projectId}/knowledgebases"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"embeddingModelName\": \"<string>\",\n \"chunkSize\": 123,\n \"chunkOverlap\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.pathors.com/v1/projects/{projectId}/knowledgebases")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"embeddingModelName\": \"<string>\",\n \"chunkSize\": 123,\n \"chunkOverlap\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pathors.com/v1/projects/{projectId}/knowledgebases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"embeddingModelName\": \"<string>\",\n \"chunkSize\": 123,\n \"chunkOverlap\": 123\n}"
response = http.request(request)
puts response.read_bodyRequest
POST https://api.pathors.com/v1/projects/{projectId}/knowledgebases
Path Parameters
string
required
The project ID
Headers
string
required
Bearer token using your developer key
Body
string
required
Name of the knowledgebase
string
Knowledgebase backend:
pinecone or pgvector. Optional — when omitted, the deployment default applies.string
Embedding model. Optional — when omitted, the deployment default applies.
pinecone knowledgebases always use llama-text-embed-v2 (integrated embedding); pgvector supports OpenAI models (e.g. text-embedding-3-small), Cohere models, or a self-hosted model configured by the deployment. Cannot be changed after creation.number
Maximum chunk size in characters. Defaults to
500.number
Overlap between adjacent chunks in characters. Defaults to
50.Response
Returns the created knowledgebase with status201.
Example
curl -X POST https://api.pathors.com/v1/projects/{projectId}/knowledgebases \
-H "Authorization: Bearer dk_your_key" \
-H "Content-Type: application/json" \
-d '{
"name": "My Knowledge Base",
"type": "pgvector",
"embeddingModelName": "text-embedding-3-small",
"chunkSize": 500,
"chunkOverlap": 50
}'
{
"message": "Knowledgebase created successfully"
}
Each project is currently limited to one knowledgebase.
⌘I
