Browse the knowledge as nested clusters (domains, subjects, groups, then items)
curl --request GET \
--url https://api.atako.ai/knowledge/tree \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.atako.ai/knowledge/tree"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.atako.ai/knowledge/tree', 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.atako.ai/knowledge/tree",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.atako.ai/knowledge/tree"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.atako.ai/knowledge/tree")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.atako.ai/knowledge/tree")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"cluster": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"level": 123,
"parentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"ancestors": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"clusters": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"level": 123,
"size": 123,
"reference": 123,
"work": 123,
"leaf": true
}
],
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"title": "<string>",
"path": "<string>",
"authority": "reference",
"authorName": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Search
Browse the knowledge as nested clusters (domains, subjects, groups, then items)
The clusters the nightly job found in your company’s knowledge (by the links between items in V1), one level at a time: without clusterId the top level (domains), with it the clusters inside and, at the last level, the items. Sizes count only what you can read; a cluster with nothing readable for you is omitted. Names are computed from company-wide content only, never by a language model. 404 for an unknown cluster or one of another company.
GET
/
knowledge
/
tree
Browse the knowledge as nested clusters (domains, subjects, groups, then items)
curl --request GET \
--url https://api.atako.ai/knowledge/tree \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.atako.ai/knowledge/tree"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.atako.ai/knowledge/tree', 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.atako.ai/knowledge/tree",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.atako.ai/knowledge/tree"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.atako.ai/knowledge/tree")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.atako.ai/knowledge/tree")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"cluster": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"level": 123,
"parentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"ancestors": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"clusters": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"level": 123,
"size": 123,
"reference": 123,
"work": 123,
"leaf": true
}
],
"items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "<string>",
"title": "<string>",
"path": "<string>",
"authority": "reference",
"authorName": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
An aik_… programmatic API key (app.atako.ai → Settings → API keys) or a Supabase session JWT.
Query Parameters
The cluster to open; omit for the top level.