Add Sources
curl --request POST \
--url https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"knowledge_base_texts": [
{
"title": "<string>",
"text": "<string>"
}
],
"knowledge_base_urls": [
"<string>"
]
}
'import requests
url = "https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources"
payload = {
"knowledge_base_texts": [
{
"title": "<string>",
"text": "<string>"
}
],
"knowledge_base_urls": ["<string>"]
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
knowledge_base_texts: [{title: '<string>', text: '<string>'}],
knowledge_base_urls: ['<string>']
})
};
fetch('https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources', 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.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources",
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([
'knowledge_base_texts' => [
[
'title' => '<string>',
'text' => '<string>'
]
],
'knowledge_base_urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources"
payload := strings.NewReader("{\n \"knowledge_base_texts\": [\n {\n \"title\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"knowledge_base_urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"knowledge_base_texts\": [\n {\n \"title\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"knowledge_base_urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"knowledge_base_texts\": [\n {\n \"title\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"knowledge_base_urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"knowledge_base": {
"knowledge_base_id": "<string>",
"knowledge_base_name": "<string>",
"status": "<string>",
"enable_auto_refresh": true,
"knowledge_base_sources": [
{
"source_id": "<string>",
"source_type": "<string>",
"source_name": "<string>",
"source_url": "<string>",
"source_status": "<string>",
"created_timestamp": 123
}
],
"created_timestamp": 123,
"last_updated_timestamp": 123
},
"url_sources": [
{
"source_id": "<string>",
"url": "<string>",
"pages_found": 123,
"status": "<string>"
}
]
}
}RAG Knowledge Base API
Add Sources
Add Sources to Knowledge Base.
POST
/
api
/
v1
/
rag
/
knowledge-base
/
{kb_id}
/
add-sources
Add Sources
curl --request POST \
--url https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"knowledge_base_texts": [
{
"title": "<string>",
"text": "<string>"
}
],
"knowledge_base_urls": [
"<string>"
]
}
'import requests
url = "https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources"
payload = {
"knowledge_base_texts": [
{
"title": "<string>",
"text": "<string>"
}
],
"knowledge_base_urls": ["<string>"]
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
knowledge_base_texts: [{title: '<string>', text: '<string>'}],
knowledge_base_urls: ['<string>']
})
};
fetch('https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources', 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.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources",
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([
'knowledge_base_texts' => [
[
'title' => '<string>',
'text' => '<string>'
]
],
'knowledge_base_urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources"
payload := strings.NewReader("{\n \"knowledge_base_texts\": [\n {\n \"title\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"knowledge_base_urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"knowledge_base_texts\": [\n {\n \"title\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"knowledge_base_urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ravan.ai/api/v1/rag/knowledge-base/{kb_id}/add-sources")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"knowledge_base_texts\": [\n {\n \"title\": \"<string>\",\n \"text\": \"<string>\"\n }\n ],\n \"knowledge_base_urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"knowledge_base": {
"knowledge_base_id": "<string>",
"knowledge_base_name": "<string>",
"status": "<string>",
"enable_auto_refresh": true,
"knowledge_base_sources": [
{
"source_id": "<string>",
"source_type": "<string>",
"source_name": "<string>",
"source_url": "<string>",
"source_status": "<string>",
"created_timestamp": 123
}
],
"created_timestamp": 123,
"last_updated_timestamp": 123
},
"url_sources": [
{
"source_id": "<string>",
"url": "<string>",
"pages_found": 123,
"status": "<string>"
}
]
}
}Authorizations
string
required
Your Agni API key used to authenticate the request. Pass it in the
X-Api-Key header. Find or rotate it from your Ravan AI account settings.Path Parameters
string
required
The unique knowledge base ID. Use the ID returned by the knowledge base create or list endpoint.
Body (JSON)
For adding text and URL sources, useContent-Type: application/json:
array
string[]
A list of URLs to crawl and add as knowledge base sources. Each URL must be publicly reachable.
Body (File Upload)
For uploading files, useContent-Type: multipart/form-data:
file
The file to upload as a knowledge base source. Use multipart form data for file uploads.
Response
boolean
Whether the request succeeded.
string
Human-readable status message.
object
Authorizations
Path Parameters
Knowledge Base ID
Body
application/jsonmultipart/form-data
⌘I

