Agent Documents
Link documents to an agent
Links one or more documents to an agent for knowledge base integration. Documents must be in ready status. Duplicate links are silently skipped (idempotent). Maximum 20 document IDs per request, 100 total linked documents per agent. Indexing starts for newly linked documents.
POST
/
agent
/
{id}
/
documents
Link documents to an agent
curl --request POST \
--url https://api.vocobase.com/api/v2/agent/{id}/documents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_ids": [
"d1234567-abcd-1234-abcd-123456789012",
"d2345678-abcd-1234-abcd-123456789012"
]
}
'import requests
url = "https://api.vocobase.com/api/v2/agent/{id}/documents"
payload = { "document_ids": ["d1234567-abcd-1234-abcd-123456789012", "d2345678-abcd-1234-abcd-123456789012"] }
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({
document_ids: ['d1234567-abcd-1234-abcd-123456789012', 'd2345678-abcd-1234-abcd-123456789012']
})
};
fetch('https://api.vocobase.com/api/v2/agent/{id}/documents', 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.vocobase.com/api/v2/agent/{id}/documents",
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([
'document_ids' => [
'd1234567-abcd-1234-abcd-123456789012',
'd2345678-abcd-1234-abcd-123456789012'
]
]),
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.vocobase.com/api/v2/agent/{id}/documents"
payload := strings.NewReader("{\n \"document_ids\": [\n \"d1234567-abcd-1234-abcd-123456789012\",\n \"d2345678-abcd-1234-abcd-123456789012\"\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.vocobase.com/api/v2/agent/{id}/documents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document_ids\": [\n \"d1234567-abcd-1234-abcd-123456789012\",\n \"d2345678-abcd-1234-abcd-123456789012\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vocobase.com/api/v2/agent/{id}/documents")
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 \"document_ids\": [\n \"d1234567-abcd-1234-abcd-123456789012\",\n \"d2345678-abcd-1234-abcd-123456789012\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"linked": [
{
"document_id": "d1234567-abcd-1234-abcd-123456789012",
"sync_status": "pending"
}
],
"skipped": [
"d2345678-abcd-1234-abcd-123456789012"
]
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "agent_name is required and must be max 50 characters"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
}{
"success": false,
"error": {
"code": "LIMIT_REACHED",
"message": "Cannot link documents. Agent would have 105 documents, exceeding the limit of 100."
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
}
}{
"success": false,
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred"
}
}Authorizations
API key in format: rg_live_xxxx. Pass as a Bearer token in the Authorization header.
Path Parameters
Agent ID.
Body
application/json
Array of document IDs to link.
Required array length:
1 - 20 elementsPrevious
Unlink a document from an agentRemoves the association between a document and an agent. The document itself is not deleted. Knowledge-base cleanup is handled asynchronously.
Next
⌘I
Link documents to an agent
curl --request POST \
--url https://api.vocobase.com/api/v2/agent/{id}/documents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_ids": [
"d1234567-abcd-1234-abcd-123456789012",
"d2345678-abcd-1234-abcd-123456789012"
]
}
'import requests
url = "https://api.vocobase.com/api/v2/agent/{id}/documents"
payload = { "document_ids": ["d1234567-abcd-1234-abcd-123456789012", "d2345678-abcd-1234-abcd-123456789012"] }
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({
document_ids: ['d1234567-abcd-1234-abcd-123456789012', 'd2345678-abcd-1234-abcd-123456789012']
})
};
fetch('https://api.vocobase.com/api/v2/agent/{id}/documents', 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.vocobase.com/api/v2/agent/{id}/documents",
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([
'document_ids' => [
'd1234567-abcd-1234-abcd-123456789012',
'd2345678-abcd-1234-abcd-123456789012'
]
]),
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.vocobase.com/api/v2/agent/{id}/documents"
payload := strings.NewReader("{\n \"document_ids\": [\n \"d1234567-abcd-1234-abcd-123456789012\",\n \"d2345678-abcd-1234-abcd-123456789012\"\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.vocobase.com/api/v2/agent/{id}/documents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document_ids\": [\n \"d1234567-abcd-1234-abcd-123456789012\",\n \"d2345678-abcd-1234-abcd-123456789012\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vocobase.com/api/v2/agent/{id}/documents")
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 \"document_ids\": [\n \"d1234567-abcd-1234-abcd-123456789012\",\n \"d2345678-abcd-1234-abcd-123456789012\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"linked": [
{
"document_id": "d1234567-abcd-1234-abcd-123456789012",
"sync_status": "pending"
}
],
"skipped": [
"d2345678-abcd-1234-abcd-123456789012"
]
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "agent_name is required and must be max 50 characters"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
}{
"success": false,
"error": {
"code": "LIMIT_REACHED",
"message": "Cannot link documents. Agent would have 105 documents, exceeding the limit of 100."
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
}
}{
"success": false,
"error": {
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred"
}
}