curl --request GET \
--url https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements', 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.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements",
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.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements"
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.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements")
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{
"items": [
{
"disabled": true,
"hasPlaceholder": false,
"createdAt": "2026-08-10T14:32:05",
"updatedAt": "2026-08-10T18:20:41",
"id": "6683f1c2a4b19e0012ab34cd",
"title": "Vocês entregam no interior?",
"response": "<string>",
"label": "logistica",
"topic": "Entregas",
"type": "N1",
"gapStatus": "NEW",
"rationale": "<string>",
"ticketCount": 14,
"sampleQuestions": [
{
"conversationId": "<string>",
"text": "<string>"
}
]
}
],
"total": 23,
"offset": 0,
"limit": 50,
"hasNext": false
}{
"error": "Forbidden: token holds no claim for the requested account"
}{
"error": "Forbidden: token holds no claim for the requested account"
}{
"error": "Forbidden: token holds no claim for the requested account"
}List suggested content
The review queue: content Claudia proposes for questions your knowledge base did not answer. Each row carries why it was proposed and how many conversations hit the gap, so you can decide what is worth publishing.
curl --request GET \
--url https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements', 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.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements",
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.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements"
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.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/improvements")
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{
"items": [
{
"disabled": true,
"hasPlaceholder": false,
"createdAt": "2026-08-10T14:32:05",
"updatedAt": "2026-08-10T18:20:41",
"id": "6683f1c2a4b19e0012ab34cd",
"title": "Vocês entregam no interior?",
"response": "<string>",
"label": "logistica",
"topic": "Entregas",
"type": "N1",
"gapStatus": "NEW",
"rationale": "<string>",
"ticketCount": 14,
"sampleQuestions": [
{
"conversationId": "<string>",
"text": "<string>"
}
]
}
],
"total": 23,
"offset": 0,
"limit": 50,
"hasNext": false
}{
"error": "Forbidden: token holds no claim for the requested account"
}{
"error": "Forbidden: token holds no claim for the requested account"
}{
"error": "Forbidden: token holds no claim for the requested account"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Knowledge base to operate on. Get the ids from listMyKnowledgeBases.
Query Parameters
Which queue to read. Only pending exists — a decided suggestion becomes ordinary content, readable through listEntries.
pending Rows to skip. Page with total and hasNext from the response.
Page size. Capped at 200.
Field to order by.
updatedAt, createdAt, type, tag Order direction.
asc, desc Substring match on the suggested question and answer.
Exact label match. Read the labels in use from getEntryTags.
Exact topic match. Read the topics in use from getEntryTopics.
Response
One page of suggestions.
One page of suggestions.
The suggestions on this page.
Show child attributes
Show child attributes
Total matching the query, across all pages.
23
Offset this page started at.
0
Page size actually applied (capped at 200).
50
Whether another page follows.
false