Skip to main content
POST
/
user
/
knowledgebases
Create knowledgebase
curl --request POST \
  --url https://app.botrep.ai/api/user/knowledgebases \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>"
}
'
import requests

url = "https://app.botrep.ai/api/user/knowledgebases"

payload = {
"name": "<string>",
"description": "<string>"
}
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({name: '<string>', description: '<string>'})
};

fetch('https://app.botrep.ai/api/user/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://app.botrep.ai/api/user/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>',
'description' => '<string>'
]),
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://app.botrep.ai/api/user/knowledgebases"

payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\"\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://app.botrep.ai/api/user/knowledgebases")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://app.botrep.ai/api/user/knowledgebases")

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 \"name\": \"<string>\",\n \"description\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "message": "Knowledgebase created successfully.",
  "data": {
    "id": 1,
    "name": "Product Documentation",
    "description": "Technical documentation for our products",
    "status": "empty",
    "status_label": "Empty",
    "created_at": "2025-01-08T10:30:00.000000Z",
    "updated_at": "2025-01-08T10:30:00.000000Z"
  }
}
{
  "message": "The name field is required.",
  "errors": {
    "name": [
      "The name field is required."
    ]
  }
}
{
  "error": "Failed to create knowledgebase. Please try again."
}
This endpoint creates a new knowledgebase. After creation, you can add documents to it using the create document endpoint.

Request Body

name
string
required
The name of the knowledgebase (max 255 characters)
description
string
Optional description of the knowledgebase (max 255 characters)

Response

message
string
Success message
data
object
The created knowledgebase object
{
  "message": "Knowledgebase created successfully.",
  "data": {
    "id": 1,
    "name": "Product Documentation",
    "description": "Technical documentation for our products",
    "status": "empty",
    "status_label": "Empty",
    "created_at": "2025-01-08T10:30:00.000000Z",
    "updated_at": "2025-01-08T10:30:00.000000Z"
  }
}
{
  "message": "The name field is required.",
  "errors": {
    "name": [
      "The name field is required."
    ]
  }
}
{
  "error": "Failed to create knowledgebase. Please try again."
}

Next Steps

After creating a knowledgebase, you’ll want to:
  1. Add documents - Use the create document endpoint to add content
  2. Wait for processing - Documents are processed asynchronously
  3. Attach to assistant - Use the update assistant endpoint to attach the knowledgebase