Databases
Request a reporting database sync
Asks for a sync without waiting for the next scheduled refresh. The request is recorded and the scheduler starts the sync on its next check, regardless of the configured interval, so the sync starts shortly after this call rather than during it. Asking again while a request is pending records a new request time. Sync must be turned on first; otherwise the request is refused with 409. Requires a company admin user with the reporting_databases.manage permission.
POST
/
api
/
v202604
/
reporting_databases
/
sync
Request a reporting database sync
curl --request POST \
--url https://api.fluid.app/api/v202604/reporting_databases/sync \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/reporting_databases/sync"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202604/reporting_databases/sync', 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.fluid.app/api/v202604/reporting_databases/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202604/reporting_databases/sync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.fluid.app/api/v202604/reporting_databases/sync")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/reporting_databases/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sync_requested_at": "2026-09-07T20:00:00Z",
"sync_pending": true,
"status": 200,
"meta": {
"request_id": "2f7b8c1d-6e4a-4b3f-9c05-7d8e1a2b3c4f",
"timestamp": "2026-09-07T20:00:00Z"
}
}{
"message": "Invalid credentials"
}{
"error": "Not authorized"
}{
"error": {
"message": "Enable reporting database sync before requesting a manual sync",
"details": {}
},
"status": 422,
"meta": {
"request_id": "5c3a1c1e-2f2d-4a2f-9f6b-1e5d1c0b9a77",
"timestamp": "2026-09-07T20:00:00Z"
}
}Authorizations
Response
The sync request was recorded
The stamped Sync Now request.
⌘I
Request a reporting database sync
curl --request POST \
--url https://api.fluid.app/api/v202604/reporting_databases/sync \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/reporting_databases/sync"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202604/reporting_databases/sync', 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.fluid.app/api/v202604/reporting_databases/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202604/reporting_databases/sync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.fluid.app/api/v202604/reporting_databases/sync")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/reporting_databases/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"sync_requested_at": "2026-09-07T20:00:00Z",
"sync_pending": true,
"status": 200,
"meta": {
"request_id": "2f7b8c1d-6e4a-4b3f-9c05-7d8e1a2b3c4f",
"timestamp": "2026-09-07T20:00:00Z"
}
}{
"message": "Invalid credentials"
}{
"error": "Not authorized"
}{
"error": {
"message": "Enable reporting database sync before requesting a manual sync",
"details": {}
},
"status": 422,
"meta": {
"request_id": "5c3a1c1e-2f2d-4a2f-9f6b-1e5d1c0b9a77",
"timestamp": "2026-09-07T20:00:00Z"
}
}