---
title: "Create a scheduled notification"
method: POST
path: "/api/v1/deployments/{deploymentId}/notifications"
tags: ["Notifications"]
---

# Create a scheduled notification

`POST /api/v1/deployments/{deploymentId}/notifications`

## Path parameters

- `deploymentId` integer, required

## Request body

- CreateNotificationInput
  - `customCron` string, nullable — Custom cron expression (required if scheduleType is CUSTOM)
  - `dashboardId` integer, nullable — Numeric id of the dashboard to run on the schedule. Provide this OR dashboardPublicId (exactly one).
  - `dashboardPublicId` string, nullable — Public id of the dashboard to run on the schedule. Provide this OR dashboardId (exactly one).
  - `dayOfMonth` integer, nullable — Day of month (1-31)
  - `dayOfWeek` integer, nullable — Day of week (0-6, Sunday=0)
  - `filters` DashboardFilterInput[], nullable — Dimension filters applied to the dashboard when the notification is rendered (substituted into the screenshot/PDF for every recipient).
    - `caseSensitive` unknown
    - `endInclusive` unknown
    - `member` string, required — Dimension path, e.g. "Orders.status"
    - `operator` 'equals' | 'not_equals' | 'greater_than' | 'greater_than_or_equal' | 'less_than' | 'less_than_or_equal' | 'contains' | 'not_contains' | 'starts_with' | 'not_starts_with' | 'ends_with' | 'not_ends_with' | 'is_null' | 'is_not_null' | 'is_empty' | 'is_not_empty' | 'between' | 'custom'
    - `startInclusive` unknown
    - `value` union
      - string
      - number
      - boolean
      - unknown[]
        - unknown
  - `hour` integer, nullable — Hour of the day (0-23)
  - `minute` integer, nullable — Minute of the hour (0-59)
  - `notificationEnabled` boolean, nullable
  - `notificationFormat` 'png' | 'pdf'
  - `scheduleType` 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'CUSTOM', required
  - `timeGrains` DashboardTimeGrainInput[], nullable — Time-grain overrides applied to the dashboard when the notification is rendered.
    - `grain` string, required — Granularity, e.g. "day", "week", "month"
    - `member` string, required — Time dimension path, e.g. "Orders.created_at"
  - `timezone` string, nullable — Timezone for the schedule (e.g. "America/New_York")

## Response `200`

- NotificationDto
  - `cronExpression` string, required
  - `dashboardId` integer, required
  - `deploymentId` integer, required
  - `filters` DashboardFilter[], nullable — Dimension filters applied when the notification is rendered.
    - `caseSensitive` unknown
    - `endInclusive` unknown
    - `member` string, required
    - `operator` 'equals' | 'not_equals' | 'greater_than' | 'greater_than_or_equal' | 'less_than' | 'less_than_or_equal' | 'contains' | 'not_contains' | 'starts_with' | 'not_starts_with' | 'ends_with' | 'not_ends_with' | 'is_null' | 'is_not_null' | 'is_empty' | 'is_not_empty' | 'between' | 'custom'
    - `startInclusive` unknown
    - `value` union
      - string
      - number
      - boolean
      - unknown[]
        - unknown
  - `humanReadableSchedule` string, required — Human-readable description of the cron schedule
  - `id` integer, required
  - `isEnabled` boolean, required
  - `notificationEnabled` boolean, required
  - `notificationFormat` string, required
  - `timeGrains` DashboardTimeGrain[], nullable — Time-grain overrides applied when the notification is rendered.
    - `grain` string, required
    - `member` string, required
  - `timezone` string, required

---

[API](https://skmtc.net/cube-js/apis/cube-cloud-rest-api.md) · [All operations](https://skmtc.net/cube-js/apis/cube-cloud-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cube-js/cube-cloud-rest-api/revisions/a0c6b1d2ac96/schema)
