Soda Notification Rules API
The Notification Rules surface of the Soda Cloud v4 API — 4 operation(s) across 2 path(s).
The Notification Rules surface of the Soda Cloud v4 API — 4 operation(s) across 2 path(s).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/soda-data-notification-rules-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
# 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