Reindex Data Sources
curl --request POST \
--url https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"ids": [
123
]
}
'import requests
url = "https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/"
payload = { "ids": [123] }
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({ids: [123]})
};
fetch('https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/', 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.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/",
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([
'ids' => [
123
]
]),
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.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/"
payload := strings.NewReader("{\n \"ids\": [\n 123\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.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/")
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 \"ids\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"msg": "Data sources reindexed successfully"
}
{
"msg": "Invalid request parameters"
}
{
"msg": "Invalid API key"
}
{
"msg": "Request was throttled. Expected available in 56 seconds."
}
Endpoints
Reindex Data Sources
Reindex one or more data sources
POST
/
{guru_slug}
/
data-sources
/
reindex
/
Reindex Data Sources
curl --request POST \
--url https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"ids": [
123
]
}
'import requests
url = "https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/"
payload = { "ids": [123] }
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({ids: [123]})
};
fetch('https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/', 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.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/",
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([
'ids' => [
123
]
]),
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.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/"
payload := strings.NewReader("{\n \"ids\": [\n 123\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.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"ids\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gurubase.io/api/v1/{guru_slug}/data-sources/reindex/")
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 \"ids\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"msg": "Data sources reindexed successfully"
}
{
"msg": "Invalid request parameters"
}
{
"msg": "Invalid API key"
}
{
"msg": "Request was throttled. Expected available in 56 seconds."
}
Reindex one or more data sources to update their content in your Guru. This is useful when the source content has changed.
For file and text sources (PDF, Word, Excel, and Text), reindex re-embeds the content Gurubase already extracted. The file is not re-fetched, so uploaded documents and Google Drive-synced documents behave the same way and no live source connection is required. To ingest a newer version of a file, upload the new version instead.
Path Parameters
string
required
The slug of the Guru to reindex data sources from
Headers
string
required
Your API key for authentication. You can obtain your API key from the Gurubase dashboard.
Body Parameters
number[]
required
Array of data source IDs to reindex (e.g., [3271, 3272])
Response
string
Status message for the operation
{
"msg": "Data sources reindexed successfully"
}
{
"msg": "Invalid request parameters"
}
{
"msg": "Invalid API key"
}
{
"msg": "Request was throttled. Expected available in 56 seconds."
}
Was this page helpful?
⌘I