# generated: '2026-08-29' # method: searched # source: https://docs.soda.io/reference/soda-apis/rest-api/ — assembled from the OpenAPI 3.1.0 # documents Soda publishes inline on each REST API reference page (16 pages, 103 operations, # zero conflicting definitions). Ownership: info.title 'Soda Cloud API v4', servers # https://cloud.soda.io + https://cloud.us.soda.io — Soda's own hosts. openapi: 3.1.0 info: title: Soda Cloud API v4 — Notification Rules version: v1 description: The Notification Rules surface of the Soda Cloud v4 public REST API — 4 operation(s). Harvested verbatim from the OpenAPI documents Soda publishes at https://docs.soda.io/reference/soda-apis/rest-api/. contact: name: Soda url: https://www.soda.io servers: - description: Cloud EU url: https://cloud.soda.io - description: Cloud US url: https://cloud.us.soda.io security: - basicAuthApiKey: [] - cookieToken: [] tags: - name: Notification Rules description: Soda Cloud API Notification Rule Endpoints paths: /api/v1/notificationRules: get: description: 'This endpoint allows you to list the notification rules in your organization. This GET is a paginated API that uses the following parameters to request specific details: - `size`: Supply an integer value between 10 and 1000, inclusive. The default value is 10. - `page`: Supply an integer value. The default value is 0. ## Authentication User authentication required: `true` This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated token in HTTP cookie `token`. Cookie sessions extend automatically on each request. ## Tags `Notification Rules` ## Rate limiting 60 requests/60 seconds' operationId: GET/api/v1/notificationRules parameters: - in: query name: page schema: type: integer format: int32 - in: query name: size schema: type: integer format: int32 responses: '200': content: application/json: schema: type: object $ref: '#/components/schemas/PublicApiListNotificationRulesResponse' description: Successful response '400': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Bad request '401': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Unauthorized '403': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Forbidden '429': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Too many requests '500': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: List notification rules tags: - Notification Rules post: description: 'Creates a notification rule with the provided filter and recipients. The filter is a simplified expression tree (and/or/not/equals/contains/in) over check and monitor attributes; recipients can be users, user groups, emails, integrations, or roles. ## Authentication User authentication required: `true` This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated token in HTTP cookie `token`. Cookie sessions extend automatically on each request. ## Authorization Users must have global role permission MANAGE_NOTIFICATION_RULES to execute this call. ## Tags `Notification Rules` ## Rate limiting 10 requests/60 seconds' operationId: POST/api/v1/notificationRules requestBody: content: application/json: schema: type: object $ref: '#/components/schemas/PublicApiNotificationRuleRequestDTO' required: true responses: '200': content: application/json: schema: type: object $ref: '#/components/schemas/PublicApiNotificationRuleDTO' description: Successful response '400': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Bad request '401': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Unauthorized '403': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Forbidden '429': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Too many requests '500': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Create a notification rule tags: - Notification Rules /api/v1/notificationRules/{notificationRuleId}: post: description: 'Updates a notification rule. This is a full replacement: the rule''s name, type, filter, recipients, status, and customization are all set from the request body. ## Authentication User authentication required: `true` This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated token in HTTP cookie `token`. Cookie sessions extend automatically on each request. ## Authorization Users must have global role permission MANAGE_NOTIFICATION_RULES to execute this call. ## Tags `Notification Rules` ## Rate limiting 10 requests/60 seconds' operationId: POST/api/v1/notificationRules/{notificationRuleId} parameters: - in: path name: notificationRuleId required: true schema: type: string requestBody: content: application/json: schema: type: object $ref: '#/components/schemas/PublicApiNotificationRuleRequestDTO' required: true responses: '200': content: application/json: schema: type: object $ref: '#/components/schemas/PublicApiNotificationRuleDTO' description: Successful response '400': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Bad request '401': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Unauthorized '403': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Forbidden '404': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Not found '429': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Too many requests '500': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Update a notification rule tags: - Notification Rules delete: description: 'Schedules a notification rule for deletion. Deletion is processed asynchronously. ## Authentication User authentication required: `true` This endpoint accepts authentication via API keys in the `Basic` authentication header, or a pre-authenticated token in HTTP cookie `token`. Cookie sessions extend automatically on each request. ## Authorization Users must have global role permission MANAGE_NOTIFICATION_RULES to execute this call. ## Tags `Notification Rules` ## Rate limiting 10 requests/60 seconds' operationId: DELETE/api/v1/notificationRules/{notificationRuleId} parameters: - in: path name: notificationRuleId required: true schema: type: string responses: '200': content: application/json: schema: type: object $ref: '#/components/schemas/PublicApiDeleteNotificationRuleResponse' description: Successful response '400': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Bad request '401': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Unauthorized '403': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Forbidden '404': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Not found '429': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Too many requests '500': content: application/json: schema: type: object $ref: '#/components/schemas/ErrorResponse' description: Internal server error summary: Delete a notification rule tags: - Notification Rules components: securitySchemes: basicAuthApiKey: scheme: basic type: http cookieToken: in: cookie name: token type: apiKey schemas: ErrorResponse: type: object properties: code: type: string message: type: string NotificationCustomizationDTO: type: object properties: message: type: string type: type: object $ref: '#/components/schemas/NotificationCustomizationTypeDTO' required: - type NotificationCustomizationTypeDTO: type: string enum: - rich - minimal NotificationFilterDTO: type: object properties: expression: type: object $ref: '#/components/schemas/NotificationFilterDTO' expressions: type: array items: type: object $ref: '#/components/schemas/NotificationFilterDTO' field: type: object $ref: '#/components/schemas/NotificationFilterFieldDTO' type: type: object $ref: '#/components/schemas/NotificationFilterTypeDTO' value: type: string values: type: array items: type: string required: - type NotificationFilterFieldDTO: type: object properties: attributeName: type: string field: type: object $ref: '#/components/schemas/NotificationFilterFieldTypeDTO' required: - field NotificationFilterFieldTypeDTO: type: string enum: - datasourceId - datasourceLabel - datasetId - datasetLabel - datasetOwnerId - datasetTags - checkId - checkName - checkOwnerId - columnId - metricType - datasetResourceAttribute - checkResourceAttribute NotificationFilterTypeDTO: type: string enum: - equals - contains - in - and - or - not NotificationLevelDTO: type: string enum: - info - warning - critical - not_evaluated NotificationRecipientDTO: type: object properties: customRoleId: type: string email: type: string integrationChannel: type: string integrationId: type: string role: type: object $ref: '#/components/schemas/NotificationRecipientRoleDTO' triggers: type: array items: type: object $ref: '#/components/schemas/NotificationRecipientTriggerDTO' type: type: object $ref: '#/components/schemas/NotificationRecipientTypeDTO' userGroupId: type: string userId: type: string required: - triggers - type NotificationRecipientRoleDTO: type: string enum: - datasetOwner - monitorOwner NotificationRecipientTriggerDTO: type: object properties: level: type: object $ref: '#/components/schemas/NotificationLevelDTO' scanState: type: object $ref: '#/components/schemas/NotificationScanStateDTO' type: type: object $ref: '#/components/schemas/NotificationTriggerTypeDTO' required: - type NotificationRecipientTypeDTO: type: string enum: - email - user - userGroup - integration - resourceRole - customRole NotificationRuleStatusDTO: type: string enum: - active - paused NotificationScanStateDTO: type: string enum: - failed - timedOut - canceled - completedWithErrors NotificationTriggerTypeDTO: type: string enum: - testResultLevel - scanState PublicApiDeleteNotificationRuleResponse: type: object properties: message: type: string required: - message PublicApiListNotificationRulesResponse: type: object properties: content: type: array items: type: object $ref: '#/components/schemas/PublicApiNotificationRuleDTO' first: type: boolean last: type: boolean number: type: integer format: int32 size: type: integer format: int32 totalElements: type: integer format: int32 totalPages: type: integer format: int32 required: - content - first - last - number - size - totalElements - totalPages PublicApiNotificationRuleDTO: type: object properties: createdAt: type: string format: date-time customization: type: object $ref: '#/components/schemas/NotificationCustomizationDTO' filter: type: object $ref: '#/components/schemas/NotificationFilterDTO' id: type: string isDefault: type: boolean lastTriggeredAt: type: string format: date-time name: type: string ownerId: type: string recipients: type: array items: type: object $ref: '#/components/schemas/NotificationRecipientDTO' ruleType: type: object $ref: '#/components/schemas/PublicApiRuleTypeDTO' status: type: object $ref: '#/components/schemas/NotificationRuleStatusDTO' updatedAt: type: string format: date-time PublicApiNotificationRuleRequestDTO: type: object properties: customization: type: object $ref: '#/components/schemas/NotificationCustomizationDTO' filter: type: object $ref: '#/components/schemas/NotificationFilterDTO' name: type: string recipients: type: array items: type: object $ref: '#/components/schemas/NotificationRecipientDTO' ruleType: type: object $ref: '#/components/schemas/PublicApiRuleTypeDTO' status: type: object $ref: '#/components/schemas/NotificationRuleStatusDTO' required: - name - recipients - ruleType PublicApiRuleTypeDTO: type: string enum: - check - monitor