Skip to main content
POST
Create a scheduled notification
🔒 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. Creates a scheduled notification — a recurring run of a dashboard whose rendered result is delivered to its recipients. The cadence is set by scheduleType plus the relevant time fields (minute, hour, dayOfWeek, dayOfMonth) or a raw customCron expression when scheduleType is CUSTOM; timezone defaults to UTC. Identify the target dashboard with either dashboardId (numeric) or dashboardPublicId (string) — supply exactly one; it must belong to this deployment, otherwise 404 is returned. The created notification has no recipients — add them via POST /notifications/{id}/recipients.

Authorizations

Authorization
string
header
required

Token authentication. Send Authorization: Bearer <YOUR_TOKEN>.

Path Parameters

deploymentId
integer
required

Numeric id of the deployment that owns the notification.

Body

application/json

CreateNotificationInput

scheduleType
enum<string>
required
Available options:
HOURLY,
DAILY,
WEEKLY,
MONTHLY,
CUSTOM
customCron
string | null

Custom cron expression (required if scheduleType is CUSTOM)

dashboardId
integer | null

Numeric id of the dashboard to run on the schedule. Provide this OR dashboardPublicId (exactly one).

dashboardPublicId
string | null

Public id of the dashboard to run on the schedule. Provide this OR dashboardId (exactly one).

dayOfMonth
integer | null

Day of month (1-31)

dayOfWeek
integer | null

Day of week (0-6, Sunday=0)

filters
object[] | null

Dimension filters applied to the dashboard when the notification is rendered (substituted into the screenshot/PDF for every recipient).

hour
integer | null

Hour of the day (0-23)

minute
integer | null

Minute of the hour (0-59)

notificationEnabled
boolean | null
notificationFormat
enum<string> | null
Available options:
png,
pdf
timeGrains
object[] | null

Time-grain overrides applied to the dashboard when the notification is rendered.

timezone
string | null

Timezone for the schedule (e.g. "America/New_York")

Response

200 - application/json
cronExpression
string
required
dashboardId
integer
required
deploymentId
integer
required
humanReadableSchedule
string
required

Human-readable description of the cron schedule

id
integer
required
isEnabled
boolean
required
notificationEnabled
boolean
required
notificationFormat
string
required
timezone
string
required
filters
object[] | null

Dimension filters applied when the notification is rendered.

timeGrains
object[] | null

Time-grain overrides applied when the notification is rendered.