> ## Documentation Index
> Fetch the complete documentation index at: https://cubed3-feat-druid-driver-streaming.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List scheduled notifications

**🔒 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.

Returns the deployment’s scheduled notifications (recurring dashboard runs), ordered by creation time (newest first) and cursor-paginated. Optionally filter to a single dashboard with either `dashboardId` (numeric) or `dashboardPublicId` (string), and/or to the notifications a single recipient receives — a user (`recipientUserId` or `recipientEmail`) or an embed user (`recipientEmbedTenantName` + `recipientExternalId`). At most one identifier per dashboard/recipient dimension. Each item describes the schedule only; recipients are managed through the `/recipients` sub-resource.


## OpenAPI

````yaml /api-reference/api.yaml get /v1/deployments/{deploymentId}/notifications
openapi: 3.1.0
info:
  title: Cube Cloud REST API
  version: 1.0.0
  description: >-
    Programmatically manage Cube Cloud: deployments and everything scoped to
    them

    (environments, folders, reports, workbooks, notifications, workspace, and
    agents),

    plus account-level users, groups, policies, embedding, and AI settings.
servers:
  - url: https://{tenant}.cubecloud.dev/api
    description: >-
      Cube Cloud API base URL. Replace the whole host if you use a custom
      domain.
    variables:
      tenant:
        default: your-tenant
        description: Your Cube Cloud tenant subdomain
security:
  - bearerAuth: []
tags:
  - name: Deployments
  - name: Environments
  - name: Folders
  - name: Reports
  - name: Workbooks
  - name: Notifications
  - name: Workspace
  - name: App Theme
  - name: Embed
  - name: Embed Tenants
paths:
  /v1/deployments/{deploymentId}/notifications:
    get:
      tags:
        - Notifications
      summary: List scheduled notifications
      operationId: getNotifications
      parameters:
        - in: path
          name: deploymentId
          required: true
          schema:
            type: integer
          description: Numeric id of the deployment that owns the notification.
        - in: query
          name: dashboardId
          required: false
          schema:
            oneOf:
              - minimum: 1
                type: integer
                description: >-
                  Optional filter: only return notifications for this numeric
                  dashboard id. Provide this OR dashboardPublicId, not both.
              - type: 'null'
            type: integer
            minimum: 1
          description: >-
            Optional filter: only return notifications for this numeric
            dashboard id. Provide this OR `dashboardPublicId`, not both.
        - in: query
          name: dashboardPublicId
          required: false
          schema:
            oneOf:
              - type: string
                description: >-
                  Optional filter: only return notifications for this dashboard
                  public id. Provide this OR dashboardId, not both.
              - type: 'null'
            type: string
          description: >-
            Optional filter: only return notifications for this dashboard public
            id. Provide this OR `dashboardId`, not both.
        - in: query
          name: recipientUserId
          required: false
          schema:
            oneOf:
              - minimum: 1
                type: integer
                description: >-
                  Optional filter: only return notifications received by this
                  user, by user id. Mutually exclusive with recipientEmail and
                  the embed-user filter.
              - type: 'null'
            type: integer
            minimum: 1
          description: >-
            Optional filter: only return notifications received by this user, by
            user id. Mutually exclusive with `recipientEmail` and the embed-user
            filter.
        - in: query
          name: recipientEmail
          required: false
          schema:
            oneOf:
              - type: string
                description: >-
                  Optional filter: only return notifications received by this
                  user, by email. Mutually exclusive with recipientUserId and
                  the embed-user filter.
              - type: 'null'
            type: string
          description: >-
            Optional filter: only return notifications received by this user, by
            email. Mutually exclusive with `recipientUserId` and the embed-user
            filter.
        - in: query
          name: recipientEmbedTenantName
          required: false
          schema:
            oneOf:
              - type: string
                description: >-
                  Optional filter: only return notifications received by this
                  embed user. Required together with recipientExternalId;
                  mutually exclusive with the user filters.
              - type: 'null'
            type: string
          description: >-
            Optional filter: only return notifications received by this embed
            user. Required together with `recipientExternalId`; mutually
            exclusive with the user filters.
        - in: query
          name: recipientExternalId
          required: false
          schema:
            oneOf:
              - type: string
                description: >-
                  Optional filter: only return notifications received by this
                  embed user. Required together with recipientEmbedTenantName;
                  mutually exclusive with the user filters.
              - type: 'null'
            type: string
          description: >-
            Optional filter: only return notifications received by this embed
            user. Required together with `recipientEmbedTenantName`; mutually
            exclusive with the user filters.
        - in: query
          name: first
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
          description: Page size for cursor pagination (default 100, max 200).
        - in: query
          name: after
          required: false
          schema:
            minimum: 1
            type: string
          description: >-
            Opaque cursor for the next page; pass the previous response's
            `pageInfo.endCursor`.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationsListResponse'
          description: ''
components:
  schemas:
    NotificationsListResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/NotificationDto'
          type: array
        pageInfo:
          oneOf:
            - $ref: '#/components/schemas/PageInfo'
            - type: 'null'
      required:
        - items
      type: object
    NotificationDto:
      properties:
        cronExpression:
          type: string
        dashboardId:
          type: integer
        deploymentId:
          type: integer
        filters:
          oneOf:
            - items:
                $ref: '#/components/schemas/DashboardFilter'
              type: array
              description: Dimension filters applied when the notification is rendered.
            - type: 'null'
        humanReadableSchedule:
          description: Human-readable description of the cron schedule
          type: string
        id:
          type: integer
        isEnabled:
          type: boolean
        notificationEnabled:
          type: boolean
        notificationFormat:
          type: string
        timeGrains:
          oneOf:
            - items:
                $ref: '#/components/schemas/DashboardTimeGrain'
              type: array
              description: Time-grain overrides applied when the notification is rendered.
            - type: 'null'
        timezone:
          type: string
      required:
        - id
        - dashboardId
        - deploymentId
        - cronExpression
        - timezone
        - isEnabled
        - humanReadableSchedule
        - notificationEnabled
        - notificationFormat
      type: object
    PageInfo:
      properties:
        endCursor:
          oneOf:
            - type: string
            - type: 'null'
        hasNextPage:
          type: boolean
        hasPreviousPage:
          type: boolean
        startCursor:
          oneOf:
            - type: string
            - type: 'null'
      required:
        - hasNextPage
        - hasPreviousPage
      type: object
    DashboardFilter:
      properties:
        caseSensitive:
          oneOf:
            - {}
            - type: 'null'
        endInclusive:
          oneOf:
            - {}
            - type: 'null'
        member:
          type: string
        operator:
          oneOf:
            - $ref: '#/components/schemas/DashboardFilterOperator'
            - type: 'null'
        startInclusive:
          oneOf:
            - {}
            - type: 'null'
        value:
          oneOf:
            - oneOf:
                - type: string
                - type: number
                - type: boolean
                - type: array
                  items: {}
            - type: 'null'
      required:
        - member
      type: object
    DashboardTimeGrain:
      properties:
        grain:
          type: string
        member:
          type: string
      required:
        - member
        - grain
      type: object
    DashboardFilterOperator:
      enum:
        - 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
        - between
        - custom
      type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Token authentication. Send `Authorization: Bearer <YOUR_TOKEN>`.'

````