curl --request POST \
--url https://api.example.com/knowledge/remote-content \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'config_id=<string>' \
--data 'path=<string>' \
--data 'name=<string>' \
--data 'description=<string>' \
--data 'metadata=<string>' \
--data 'reader_id=<string>' \
--data 'chunker=<string>' \
--data chunk_size=123 \
--data chunk_overlap=123import requests
url = "https://api.example.com/knowledge/remote-content"
payload = {
"config_id": "<string>",
"path": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"reader_id": "<string>",
"chunker": "<string>",
"chunk_size": "123",
"chunk_overlap": "123"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
config_id: '<string>',
path: '<string>',
name: '<string>',
description: '<string>',
metadata: '<string>',
reader_id: '<string>',
chunker: '<string>',
chunk_size: '123',
chunk_overlap: '123'
})
};
fetch('https://api.example.com/knowledge/remote-content', 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.example.com/knowledge/remote-content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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.example.com/knowledge/remote-content"
payload := strings.NewReader("config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
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.example.com/knowledge/remote-content")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/knowledge/remote-content")
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/x-www-form-urlencoded'
request.body = "config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123"
response = http.request(request)
puts response.read_body{
"id": "content-456",
"name": "reports/q1-2024.pdf",
"description": "Q1 Report from S3",
"metadata": {
"source": "s3-docs"
},
"status": "processing"
}{
"detail": "Bad request",
"error_code": "BAD_REQUEST"
}{
"detail": "Unauthenticated access",
"error_code": "UNAUTHENTICATED"
}{
"detail": "Not found",
"error_code": "NOT_FOUND"
}{
"detail": "Validation error",
"error_code": "VALIDATION_ERROR"
}{
"detail": "Internal server error",
"error_code": "INTERNAL_SERVER_ERROR"
}Upload Remote Content
Upload content from a remote source (S3, GCS, SharePoint, GitHub) to the knowledge base. Content is processed asynchronously in the background.
curl --request POST \
--url https://api.example.com/knowledge/remote-content \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'config_id=<string>' \
--data 'path=<string>' \
--data 'name=<string>' \
--data 'description=<string>' \
--data 'metadata=<string>' \
--data 'reader_id=<string>' \
--data 'chunker=<string>' \
--data chunk_size=123 \
--data chunk_overlap=123import requests
url = "https://api.example.com/knowledge/remote-content"
payload = {
"config_id": "<string>",
"path": "<string>",
"name": "<string>",
"description": "<string>",
"metadata": "<string>",
"reader_id": "<string>",
"chunker": "<string>",
"chunk_size": "123",
"chunk_overlap": "123"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
config_id: '<string>',
path: '<string>',
name: '<string>',
description: '<string>',
metadata: '<string>',
reader_id: '<string>',
chunker: '<string>',
chunk_size: '123',
chunk_overlap: '123'
})
};
fetch('https://api.example.com/knowledge/remote-content', 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.example.com/knowledge/remote-content",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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.example.com/knowledge/remote-content"
payload := strings.NewReader("config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
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.example.com/knowledge/remote-content")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/knowledge/remote-content")
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/x-www-form-urlencoded'
request.body = "config_id=%3Cstring%3E&path=%3Cstring%3E&name=%3Cstring%3E&description=%3Cstring%3E&metadata=%3Cstring%3E&reader_id=%3Cstring%3E&chunker=%3Cstring%3E&chunk_size=123&chunk_overlap=123"
response = http.request(request)
puts response.read_body{
"id": "content-456",
"name": "reports/q1-2024.pdf",
"description": "Q1 Report from S3",
"metadata": {
"source": "s3-docs"
},
"status": "processing"
}{
"detail": "Bad request",
"error_code": "BAD_REQUEST"
}{
"detail": "Unauthenticated access",
"error_code": "UNAUTHENTICATED"
}{
"detail": "Not found",
"error_code": "NOT_FOUND"
}{
"detail": "Validation error",
"error_code": "VALIDATION_ERROR"
}{
"detail": "Internal server error",
"error_code": "INTERNAL_SERVER_ERROR"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Database ID to use for content storage
Knowledge base ID to upload to
Body
ID of the configured remote content source (from /knowledge/config)
Path to file or folder in the remote source
Content name (auto-generated if not provided)
Content description
JSON metadata object
ID of the reader to use for processing
Chunking strategy to apply
Chunk size for processing
Chunk overlap for processing
Response
Remote content upload accepted for processing
Unique identifier for the content
Name of the content
Description of the content
MIME type of the content
Size of the content in bytes
ID of related content if linked
Additional metadata as key-value pairs
Number of times content has been accessed
x >= 0Processing status of the content
processing, completed, failed Status message or error details
Timestamp when content was created
Timestamp when content was last updated
Was this page helpful?