Import content in bulk
curl --request POST \
--url https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"clientRef": "<string>",
"title": "<string>",
"response": "<string>",
"label": "<string>",
"topic": "<string>"
}
]
}
'import requests
url = "https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import"
payload = { "items": [
{
"clientRef": "<string>",
"title": "<string>",
"response": "<string>",
"label": "<string>",
"topic": "<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({
items: [
{
clientRef: '<string>',
title: '<string>',
response: '<string>',
label: '<string>',
topic: '<string>'
}
]
})
};
fetch('https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import', 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}/entries/import",
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([
'items' => [
[
'clientRef' => '<string>',
'title' => '<string>',
'response' => '<string>',
'label' => '<string>',
'topic' => '<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://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import"
payload := strings.NewReader("{\n \"items\": [\n {\n \"clientRef\": \"<string>\",\n \"title\": \"<string>\",\n \"response\": \"<string>\",\n \"label\": \"<string>\",\n \"topic\": \"<string>\"\n }\n ]\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://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"clientRef\": \"<string>\",\n \"title\": \"<string>\",\n \"response\": \"<string>\",\n \"label\": \"<string>\",\n \"topic\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import")
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 \"items\": [\n {\n \"clientRef\": \"<string>\",\n \"title\": \"<string>\",\n \"response\": \"<string>\",\n \"label\": \"<string>\",\n \"topic\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"successes": [
{
"id": "<string>",
"clientRef": "<string>"
}
],
"failures": [
{
"reason": "missing_required_field",
"clientRef": "<string>",
"field": "title"
}
]
}{
"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"
}Knowledge Base Content
Import content in bulk
Create up to 200 entries in one call. Each item is validated on its own and the response reports successes and failures separately, keyed by your clientRef, so one bad row does not sink the batch.
POST
/
v1
/
knowledge-bases
/
{kbId}
/
entries
/
import
Import content in bulk
curl --request POST \
--url https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"clientRef": "<string>",
"title": "<string>",
"response": "<string>",
"label": "<string>",
"topic": "<string>"
}
]
}
'import requests
url = "https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import"
payload = { "items": [
{
"clientRef": "<string>",
"title": "<string>",
"response": "<string>",
"label": "<string>",
"topic": "<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({
items: [
{
clientRef: '<string>',
title: '<string>',
response: '<string>',
label: '<string>',
topic: '<string>'
}
]
})
};
fetch('https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import', 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}/entries/import",
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([
'items' => [
[
'clientRef' => '<string>',
'title' => '<string>',
'response' => '<string>',
'label' => '<string>',
'topic' => '<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://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import"
payload := strings.NewReader("{\n \"items\": [\n {\n \"clientRef\": \"<string>\",\n \"title\": \"<string>\",\n \"response\": \"<string>\",\n \"label\": \"<string>\",\n \"topic\": \"<string>\"\n }\n ]\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://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"clientRef\": \"<string>\",\n \"title\": \"<string>\",\n \"response\": \"<string>\",\n \"label\": \"<string>\",\n \"topic\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cloudhumans.com/claudia/v1/knowledge-bases/{kbId}/entries/import")
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 \"items\": [\n {\n \"clientRef\": \"<string>\",\n \"title\": \"<string>\",\n \"response\": \"<string>\",\n \"label\": \"<string>\",\n \"topic\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"successes": [
{
"id": "<string>",
"clientRef": "<string>"
}
],
"failures": [
{
"reason": "missing_required_field",
"clientRef": "<string>",
"field": "title"
}
]
}{
"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.
Body
application/json
A batch of content to load.
Up to 200 rows.
Show child attributes
Show child attributes
Response
The batch was processed. Read the per-row outcome — a rejected row does not fail the call.
⌘I