Databases
Update reporting database sync settings
Turns sync on or off, changes the hours between scheduled refreshes, or both. Only the fields you send change, so turning sync on never resets the interval. Turning sync off pauses refreshes and keeps the existing reporting database. Connector settings are not changed here. Requires a company admin user with the reporting_databases.manage permission.
PATCH
/
api
/
v202604
/
reporting_databases
/
settings
Update reporting database sync settings
curl --request PATCH \
--url https://api.fluid.app/api/v202604/reporting_databases/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"enabled": true,
"sync_interval_hours": 12
}
'import requests
url = "https://api.fluid.app/api/v202604/reporting_databases/settings"
payload = {
"enabled": True,
"sync_interval_hours": 12
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({enabled: true, sync_interval_hours: 12})
};
fetch('https://api.fluid.app/api/v202604/reporting_databases/settings', 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/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'enabled' => true,
'sync_interval_hours' => 12
]),
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.fluid.app/api/v202604/reporting_databases/settings"
payload := strings.NewReader("{\n \"enabled\": true,\n \"sync_interval_hours\": 12\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.fluid.app/api/v202604/reporting_databases/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"enabled\": true,\n \"sync_interval_hours\": 12\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/reporting_databases/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"enabled\": true,\n \"sync_interval_hours\": 12\n}"
response = http.request(request)
puts response.read_body{
"fluid": {
"enabled": true,
"sync_interval_hours": 12,
"last_synced_at": "2026-09-07T07:06:00Z",
"last_sync_warnings_count": 0,
"last_sync_artifact_generation": "1788582025686682"
},
"status": 200,
"meta": {
"request_id": "9d0e4b7a-3c61-4f0e-8a52-6b1f2e7c4d90",
"timestamp": "2026-09-07T20:05: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
Body
application/json
Either or both fields. Only the keys sent are applied, so toggling enabled never resets the interval.
Response
The reporting database settings after the change
The Fluid half of the page, after a change.
⌘I
Update reporting database sync settings
curl --request PATCH \
--url https://api.fluid.app/api/v202604/reporting_databases/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"enabled": true,
"sync_interval_hours": 12
}
'import requests
url = "https://api.fluid.app/api/v202604/reporting_databases/settings"
payload = {
"enabled": True,
"sync_interval_hours": 12
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({enabled: true, sync_interval_hours: 12})
};
fetch('https://api.fluid.app/api/v202604/reporting_databases/settings', 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/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'enabled' => true,
'sync_interval_hours' => 12
]),
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.fluid.app/api/v202604/reporting_databases/settings"
payload := strings.NewReader("{\n \"enabled\": true,\n \"sync_interval_hours\": 12\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.fluid.app/api/v202604/reporting_databases/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"enabled\": true,\n \"sync_interval_hours\": 12\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/reporting_databases/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"enabled\": true,\n \"sync_interval_hours\": 12\n}"
response = http.request(request)
puts response.read_body{
"fluid": {
"enabled": true,
"sync_interval_hours": 12,
"last_synced_at": "2026-09-07T07:06:00Z",
"last_sync_warnings_count": 0,
"last_sync_artifact_generation": "1788582025686682"
},
"status": 200,
"meta": {
"request_id": "9d0e4b7a-3c61-4f0e-8a52-6b1f2e7c4d90",
"timestamp": "2026-09-07T20:05: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"
}
}