Update a scheduled notification
curl --request PUT \
--url https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customCron": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"isEnabled": true,
"minute": 123,
"notificationEnabled": true,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
'import requests
url = "https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}"
payload = {
"customCron": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"isEnabled": True,
"minute": 123,
"notificationEnabled": True,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customCron: '<string>',
dayOfMonth: 123,
dayOfWeek: 123,
filters: [
{
member: '<string>',
caseSensitive: '<unknown>',
endInclusive: '<unknown>',
startInclusive: '<unknown>',
value: '<string>'
}
],
hour: 123,
isEnabled: true,
minute: 123,
notificationEnabled: true,
timeGrains: [{grain: '<string>', member: '<string>'}],
timezone: '<string>'
})
};
fetch('https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}', 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://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'customCron' => '<string>',
'dayOfMonth' => 123,
'dayOfWeek' => 123,
'filters' => [
[
'member' => '<string>',
'caseSensitive' => '<unknown>',
'endInclusive' => '<unknown>',
'startInclusive' => '<unknown>',
'value' => '<string>'
]
],
'hour' => 123,
'isEnabled' => true,
'minute' => 123,
'notificationEnabled' => true,
'timeGrains' => [
[
'grain' => '<string>',
'member' => '<string>'
]
],
'timezone' => '<string>'
]),
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://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}"
payload := strings.NewReader("{\n \"customCron\": \"<string>\",\n \"dayOfMonth\": 123,\n \"dayOfWeek\": 123,\n \"filters\": [\n {\n \"member\": \"<string>\",\n \"caseSensitive\": \"<unknown>\",\n \"endInclusive\": \"<unknown>\",\n \"startInclusive\": \"<unknown>\",\n \"value\": \"<string>\"\n }\n ],\n \"hour\": 123,\n \"isEnabled\": true,\n \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customCron\": \"<string>\",\n \"dayOfMonth\": 123,\n \"dayOfWeek\": 123,\n \"filters\": [\n {\n \"member\": \"<string>\",\n \"caseSensitive\": \"<unknown>\",\n \"endInclusive\": \"<unknown>\",\n \"startInclusive\": \"<unknown>\",\n \"value\": \"<string>\"\n }\n ],\n \"hour\": 123,\n \"isEnabled\": true,\n \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customCron\": \"<string>\",\n \"dayOfMonth\": 123,\n \"dayOfWeek\": 123,\n \"filters\": [\n {\n \"member\": \"<string>\",\n \"caseSensitive\": \"<unknown>\",\n \"endInclusive\": \"<unknown>\",\n \"startInclusive\": \"<unknown>\",\n \"value\": \"<string>\"\n }\n ],\n \"hour\": 123,\n \"isEnabled\": true,\n \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"cronExpression": "<string>",
"dashboardId": 123,
"deploymentId": 123,
"humanReadableSchedule": "<string>",
"id": 123,
"isEnabled": true,
"notificationEnabled": true,
"notificationFormat": "<string>",
"timezone": "<string>",
"filters": [
{
"member": "<string>",
"caseSensitive": null,
"endInclusive": null,
"startInclusive": null,
"value": "<string>"
}
],
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
]
}Notifications
Update a scheduled notification
PUT
/
v1
/
deployments
/
{deploymentId}
/
notifications
/
{id}
Update a scheduled notification
curl --request PUT \
--url https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customCron": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"isEnabled": true,
"minute": 123,
"notificationEnabled": true,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
'import requests
url = "https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}"
payload = {
"customCron": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"isEnabled": True,
"minute": 123,
"notificationEnabled": True,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customCron: '<string>',
dayOfMonth: 123,
dayOfWeek: 123,
filters: [
{
member: '<string>',
caseSensitive: '<unknown>',
endInclusive: '<unknown>',
startInclusive: '<unknown>',
value: '<string>'
}
],
hour: 123,
isEnabled: true,
minute: 123,
notificationEnabled: true,
timeGrains: [{grain: '<string>', member: '<string>'}],
timezone: '<string>'
})
};
fetch('https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}', 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://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'customCron' => '<string>',
'dayOfMonth' => 123,
'dayOfWeek' => 123,
'filters' => [
[
'member' => '<string>',
'caseSensitive' => '<unknown>',
'endInclusive' => '<unknown>',
'startInclusive' => '<unknown>',
'value' => '<string>'
]
],
'hour' => 123,
'isEnabled' => true,
'minute' => 123,
'notificationEnabled' => true,
'timeGrains' => [
[
'grain' => '<string>',
'member' => '<string>'
]
],
'timezone' => '<string>'
]),
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://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}"
payload := strings.NewReader("{\n \"customCron\": \"<string>\",\n \"dayOfMonth\": 123,\n \"dayOfWeek\": 123,\n \"filters\": [\n {\n \"member\": \"<string>\",\n \"caseSensitive\": \"<unknown>\",\n \"endInclusive\": \"<unknown>\",\n \"startInclusive\": \"<unknown>\",\n \"value\": \"<string>\"\n }\n ],\n \"hour\": 123,\n \"isEnabled\": true,\n \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customCron\": \"<string>\",\n \"dayOfMonth\": 123,\n \"dayOfWeek\": 123,\n \"filters\": [\n {\n \"member\": \"<string>\",\n \"caseSensitive\": \"<unknown>\",\n \"endInclusive\": \"<unknown>\",\n \"startInclusive\": \"<unknown>\",\n \"value\": \"<string>\"\n }\n ],\n \"hour\": 123,\n \"isEnabled\": true,\n \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customCron\": \"<string>\",\n \"dayOfMonth\": 123,\n \"dayOfWeek\": 123,\n \"filters\": [\n {\n \"member\": \"<string>\",\n \"caseSensitive\": \"<unknown>\",\n \"endInclusive\": \"<unknown>\",\n \"startInclusive\": \"<unknown>\",\n \"value\": \"<string>\"\n }\n ],\n \"hour\": 123,\n \"isEnabled\": true,\n \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"cronExpression": "<string>",
"dashboardId": 123,
"deploymentId": 123,
"humanReadableSchedule": "<string>",
"id": 123,
"isEnabled": true,
"notificationEnabled": true,
"notificationFormat": "<string>",
"timezone": "<string>",
"filters": [
{
"member": "<string>",
"caseSensitive": null,
"endInclusive": null,
"startInclusive": null,
"value": "<string>"
}
],
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
]
}🔒 Admin only. Requires administrator privileges — the authenticated principal (API key, embed JWT, or any bearer token) must belong to a user with the admin role.
Updates a notification’s schedule definition. Any subset of the schedule fields may be supplied (
scheduleType + time fields or customCron, timezone), along with isEnabled, notificationEnabled, and notificationFormat. Omitted fields are left unchanged. This endpoint never modifies recipients — manage those through the /recipients sub-resource. Returns 404 if the notification is not part of this deployment.Authorizations
Token authentication. Send Authorization: Bearer <YOUR_TOKEN>.
Path Parameters
Numeric id of the deployment that owns the notification.
Numeric id of the notification (scheduled run).
Body
application/json
UpdateNotificationInput
Dimension filters applied to the dashboard when the notification is rendered. Replaces the existing set when provided.
Show child attributes
Show child attributes
Enable or disable the schedule
Available options:
png, pdf Available options:
HOURLY, DAILY, WEEKLY, MONTHLY, CUSTOM Time-grain overrides applied to the dashboard when the notification is rendered. Replaces the existing set when provided.
Show child attributes
Show child attributes
Response
200 - application/json
Human-readable description of the cron schedule
Dimension filters applied when the notification is rendered.
Show child attributes
Show child attributes
Time-grain overrides applied when the notification is rendered.
Show child attributes
Show child attributes
⌘I