curl --request POST \
--url https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customCron": "<string>",
"dashboardId": 123,
"dashboardPublicId": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"minute": 123,
"notificationEnabled": true,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
'import requests
url = "https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications"
payload = {
"customCron": "<string>",
"dashboardId": 123,
"dashboardPublicId": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"minute": 123,
"notificationEnabled": True,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customCron: '<string>',
dashboardId: 123,
dashboardPublicId: '<string>',
dayOfMonth: 123,
dayOfWeek: 123,
filters: [
{
member: '<string>',
caseSensitive: '<unknown>',
endInclusive: '<unknown>',
startInclusive: '<unknown>',
value: '<string>'
}
],
hour: 123,
minute: 123,
notificationEnabled: true,
timeGrains: [{grain: '<string>', member: '<string>'}],
timezone: '<string>'
})
};
fetch('https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications', 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",
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([
'customCron' => '<string>',
'dashboardId' => 123,
'dashboardPublicId' => '<string>',
'dayOfMonth' => 123,
'dayOfWeek' => 123,
'filters' => [
[
'member' => '<string>',
'caseSensitive' => '<unknown>',
'endInclusive' => '<unknown>',
'startInclusive' => '<unknown>',
'value' => '<string>'
]
],
'hour' => 123,
'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"
payload := strings.NewReader("{\n \"customCron\": \"<string>\",\n \"dashboardId\": 123,\n \"dashboardPublicId\": \"<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 \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customCron\": \"<string>\",\n \"dashboardId\": 123,\n \"dashboardPublicId\": \"<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 \"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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customCron\": \"<string>\",\n \"dashboardId\": 123,\n \"dashboardPublicId\": \"<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 \"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>"
}
]
}Create a scheduled notification
curl --request POST \
--url https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customCron": "<string>",
"dashboardId": 123,
"dashboardPublicId": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"minute": 123,
"notificationEnabled": true,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
'import requests
url = "https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications"
payload = {
"customCron": "<string>",
"dashboardId": 123,
"dashboardPublicId": "<string>",
"dayOfMonth": 123,
"dayOfWeek": 123,
"filters": [
{
"member": "<string>",
"caseSensitive": "<unknown>",
"endInclusive": "<unknown>",
"startInclusive": "<unknown>",
"value": "<string>"
}
],
"hour": 123,
"minute": 123,
"notificationEnabled": True,
"timeGrains": [
{
"grain": "<string>",
"member": "<string>"
}
],
"timezone": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customCron: '<string>',
dashboardId: 123,
dashboardPublicId: '<string>',
dayOfMonth: 123,
dayOfWeek: 123,
filters: [
{
member: '<string>',
caseSensitive: '<unknown>',
endInclusive: '<unknown>',
startInclusive: '<unknown>',
value: '<string>'
}
],
hour: 123,
minute: 123,
notificationEnabled: true,
timeGrains: [{grain: '<string>', member: '<string>'}],
timezone: '<string>'
})
};
fetch('https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications', 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",
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([
'customCron' => '<string>',
'dashboardId' => 123,
'dashboardPublicId' => '<string>',
'dayOfMonth' => 123,
'dayOfWeek' => 123,
'filters' => [
[
'member' => '<string>',
'caseSensitive' => '<unknown>',
'endInclusive' => '<unknown>',
'startInclusive' => '<unknown>',
'value' => '<string>'
]
],
'hour' => 123,
'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"
payload := strings.NewReader("{\n \"customCron\": \"<string>\",\n \"dashboardId\": 123,\n \"dashboardPublicId\": \"<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 \"minute\": 123,\n \"notificationEnabled\": true,\n \"timeGrains\": [\n {\n \"grain\": \"<string>\",\n \"member\": \"<string>\"\n }\n ],\n \"timezone\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://{tenant}.cubecloud.dev/api/v1/deployments/{deploymentId}/notifications")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customCron\": \"<string>\",\n \"dashboardId\": 123,\n \"dashboardPublicId\": \"<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 \"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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customCron\": \"<string>\",\n \"dashboardId\": 123,\n \"dashboardPublicId\": \"<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 \"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>"
}
]
}Authorizations
Token authentication. Send Authorization: Bearer <YOUR_TOKEN>.
Path Parameters
Numeric id of the deployment that owns the notification.
Body
CreateNotificationInput
HOURLY, DAILY, WEEKLY, MONTHLY, CUSTOM Custom cron expression (required if scheduleType is CUSTOM)
Numeric id of the dashboard to run on the schedule. Provide this OR dashboardPublicId (exactly one).
Public id of the dashboard to run on the schedule. Provide this OR dashboardId (exactly one).
Day of month (1-31)
Day of week (0-6, Sunday=0)
Dimension filters applied to the dashboard when the notification is rendered (substituted into the screenshot/PDF for every recipient).
Show child attributes
Show child attributes
Hour of the day (0-23)
Minute of the hour (0-59)
png, pdf Time-grain overrides applied to the dashboard when the notification is rendered.
Show child attributes
Show child attributes
Timezone for the schedule (e.g. "America/New_York")
Response
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