List documents
GET
https://app.sulus.ai/api/v1/kb/knowledge-bases/{knowledge_base}/articles
List documents in a library (summary projection)
Authentication
Send a bearer token created on your dashboard's Developer page:
Authorization: Bearer <YOUR_API_KEY>
Path parameters
knowledge_base
string
Required
The library.
Validation:
the library's UUIDStored in
knowledge_bases.idErrors
| Status | Meaning | Body |
|---|---|---|
404 |
Library not found | {"message":"No query results for model [App\\Models\\KnowledgeBase] <id>."} |
403 |
Policy denied — outside your organization, or you cannot write to this resource | {"message":"This action is unauthorized."} |
401 |
Missing or invalid bearer token | |
403 |
Feature knowledge_docs not enabled for the account |
Notes
- Ordered by updated_at, most recent first. This is a fixed field projection — it never returns content, plain_text, or structured_text.
curl --request GET \
--url https://app.sulus.ai/api/v1/kb/knowledge-bases/{knowledge_base}/articles \
--header 'Authorization: Bearer <YOUR_API_KEY>'
import requests
url = "https://app.sulus.ai/api/v1/kb/knowledge-bases/{knowledge_base}/articles"
headers = {"Authorization": "Bearer <YOUR_API_KEY>"}
response = requests.get(url, headers=headers)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://app.sulus.ai/api/v1/kb/knowledge-bases/{knowledge_base}/articles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <YOUR_API_KEY>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
Response
200
{
"data": [
{
"id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"title": "Return Policy",
"status": "published",
"sync_status": "synced",
"char_count": 73,
"updated_at": "2026-07-30T14:35:19.000000Z",
"shared_user_count": 2
},
{
"id": "c3d4e5f6-a7b8-9012-cdef-345678901234",
"title": "Shipping FAQ",
"status": "draft",
"sync_status": "pending",
"char_count": 0,
"updated_at": "2026-07-29T10:02:11.000000Z",
"shared_user_count": 0
}
]
}
Response — GET
/knowledge-bases/{knowledge_base}/articles
200
{
"data": [
{
"id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"title": "Return Policy",
"status": "published",
"sync_status": "synced",
"char_count": 73,
"updated_at": "2026-07-30T14:35:19.000000Z",
"shared_user_count": 2
},
{
"id": "c3d4e5f6-a7b8-9012-cdef-345678901234",
"title": "Shipping FAQ",
"status": "draft",
"sync_status": "pending",
"char_count": 0,
"updated_at": "2026-07-29T10:02:11.000000Z",
"shared_user_count": 0
}
]
}