List knowledge base documents
curl --request GET \
--url https://api.lehar.ai/ca/api/v0/knowledge-base \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.lehar.ai/ca/api/v0/knowledge-base"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.lehar.ai/ca/api/v0/knowledge-base', 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.lehar.ai/ca/api/v0/knowledge-base",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.lehar.ai/ca/api/v0/knowledge-base"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lehar.ai/ca/api/v0/knowledge-base")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lehar.ai/ca/api/v0/knowledge-base")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "b7e6f0a4-2c1d-5f3a-9b8c-1d2e3f4a5b6c",
"question": "What are your support hours?",
"response": "Our team is available 9am to 6pm IST, Monday to Friday.",
"knowledge_base_id": "kb_01jq8x9m2h4z7c0r5v3b8t6n1e",
"created_at": "2026-09-02T10:20:00Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1
}
}{
"error": {
"code": "invalid_request",
"message": "limit and offset must be non-negative integers"
}
}{
"error": {
"code": "unauthorized",
"message": "Authentication required"
}
}{
"error": {
"code": "forbidden",
"message": "Agent session tokens can only search the knowledge base"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred"
}
}{
"error": {
"code": "service_unavailable",
"message": "Knowledge base service is not configured"
}
}Knowledge Base
List knowledge base documents
List the Q&A document rows held in the vector store (the document plane; the singular /knowledge-base path). Pass knowledge_base_id to scope to one collection, or omit it for the workspace-wide ‘all documents’ view. Agent-session tokens are rejected here (they may only search). Scope knowledge_base:read.
GET
/
knowledge-base
List knowledge base documents
curl --request GET \
--url https://api.lehar.ai/ca/api/v0/knowledge-base \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.lehar.ai/ca/api/v0/knowledge-base"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.lehar.ai/ca/api/v0/knowledge-base', 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.lehar.ai/ca/api/v0/knowledge-base",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.lehar.ai/ca/api/v0/knowledge-base"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lehar.ai/ca/api/v0/knowledge-base")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lehar.ai/ca/api/v0/knowledge-base")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "b7e6f0a4-2c1d-5f3a-9b8c-1d2e3f4a5b6c",
"question": "What are your support hours?",
"response": "Our team is available 9am to 6pm IST, Monday to Friday.",
"knowledge_base_id": "kb_01jq8x9m2h4z7c0r5v3b8t6n1e",
"created_at": "2026-09-02T10:20:00Z"
}
],
"pagination": {
"limit": 50,
"offset": 0,
"total": 1
}
}{
"error": {
"code": "invalid_request",
"message": "limit and offset must be non-negative integers"
}
}{
"error": {
"code": "unauthorized",
"message": "Authentication required"
}
}{
"error": {
"code": "forbidden",
"message": "Agent session tokens can only search the knowledge base"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred"
}
}{
"error": {
"code": "service_unavailable",
"message": "Knowledge base service is not configured"
}
}Authorizations
ApiKeyAuthBearerAuth
Query Parameters
Restrict the listing to one knowledge base. Omit to list every document in the workspace (the management 'all documents' view).
Max rows to return. Defaults to 50 and is capped at 100.
Required range:
0 <= x <= 100Number of rows to skip. Defaults to 0.
Required range:
x >= 0Response
Page of Q&A document rows. total is the count for the selected scope (one KB, or the whole workspace when knowledge_base_id is omitted).

