> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erdo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SetDatasetNotificationAPI replaces the email recipients and optional durable


> exclusion rule for a dataset. Empty recipients turn email off; the declaration is removed only when exclusion is absent too.




## OpenAPI

````yaml /api/openapi.json put /v1/dataset-notifications
openapi: 3.0.0
info:
  title: Erdo API
  description: >-
    Erdo's REST API: query and write datasets, run agents, manage threads,
    integrations, pages, evals, workstreams, experiments, and bounded outreach.
    Authenticate with a Bearer API key (erdo_api_...) or scoped token
    (erdo_token_...).
  version: '2026-09-09'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/dataset-notifications:
    put:
      summary: >
        SetDatasetNotificationAPI replaces the email recipients and optional
        durable
      description: >
        exclusion rule for a dataset. Empty recipients turn email off; the
        declaration is removed only when exclusion is absent too.
      operationId: PUT:mcp.SetDatasetNotificationAPI
      requestBody:
        content:
          application/json:
            schema:
              properties:
                after:
                  description: >
                    notification waits for, so the email can say what that
                    declaration found out about the row. Without it the two run
                    at the same instant off the same write and the message is
                    composed before the answer exists.
                  title: >
                    After names a row-action declaration on the same dataset
                    that this
                  type: string
                dataset:
                  type: string
                exclusion:
                  $ref: '#/components/schemas/mcp.DatasetNotificationExclusion'
                recipients:
                  description: >
                    the declaration remains active when durable exclusion is
                    configured.
                  items:
                    type: string
                  title: >
                    Recipients replaces the whole email list. An empty list
                    turns email off;
                  type: array
                skip_when:
                  description: >
                    get an alert email. The criterion is data, not policy: the
                    platform judges each new row against whatever the caller
                    wrote, with the MX lookup's answer supplied as evidence
                    rather than acted on as a verdict.
                  title: >
                    SkipWhen is a caller-supplied description of the rows that
                    should not
                  type: string
                timestamp_column:
                  description: >
                    detected; set it when the dataset names that column
                    unconventionally. It must hold timestamps: the notification
                    starts from the newest value already in that column and
                    compares later rows against it as text, so a column of
                    free-text answers is refused rather than accepted into a
                    notification that would email nobody.
                  title: >
                    TimestampColumn overrides which column marks a row's
                    arrival. Normally
                  type: string
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  after:
                    type: string
                  dataset:
                    type: string
                  enabled:
                    type: boolean
                  exclusion:
                    $ref: '#/components/schemas/mcp.DatasetNotificationExclusion'
                  job_id:
                    description: |
                      run history through the automation surfaces.
                    title: >
                      JobID names the automation implementing this, so a caller
                      can inspect its
                    type: string
                  recipients:
                    items:
                      type: string
                    type: array
                  skip_when:
                    type: string
                  timestamp_column:
                    type: string
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    mcp.DatasetNotificationExclusion:
      properties:
        when:
          type: string
      type: object
  responses:
    APIError:
      content:
        application/json:
          schema:
            externalDocs:
              url: https://pkg.go.dev/encore.dev/beta/errs#Error
            properties:
              code:
                description: Error code
                example: not_found
                externalDocs:
                  url: https://pkg.go.dev/encore.dev/beta/errs#ErrCode
                type: string
              details:
                description: Error details
                type: object
              message:
                description: Error message
                type: string
            title: APIError
            type: object
      description: Error response
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).

````