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

# Bulk create notification channels

> Create up to 30 notification channels for the organization in one request. The whole batch is created atomically — if any channel fails validation or authorization, no channel is created. This endpoint is NOT idempotent: a retry after an unacknowledged 2xx response creates the channels a second time. Clients should list the channels to verify state before retrying.



## OpenAPI

````yaml /astro/api/v-1-labs/openapi.yaml post /organizations/{organizationId}/notification-channels
openapi: 3.0.3
info:
  contact: {}
  description: Astro Labs API - Experimental endpoints for preview features
  title: Astro Labs API
  version: v1
servers:
  - url: https://api.astronomer.io/labs/v1
security:
  - JWT: []
tags:
  - description: >-
      Canned-data placeholder used to exercise the labs epoch versioning
      surface. Real labs endpoints register their own tags.
    name: Example
  - name: allowed-ip-address-range
    x-group: Allowed IP Address Range
  - name: notification-channels
    x-group: Notification Channels
paths:
  /organizations/{organizationId}/notification-channels:
    post:
      tags:
        - notification-channels
      summary: Bulk create notification channels
      description: >-
        Create up to 30 notification channels for the organization in one
        request. The whole batch is created atomically — if any channel fails
        validation or authorization, no channel is created. This endpoint is NOT
        idempotent: a retry after an unacknowledged 2xx response creates the
        channels a second time. Clients should list the channels to verify state
        before retrying.
      operationId: LabsCreateNotificationChannels
      parameters:
        - description: The ID of the Organization the notification channels will belong to.
          in: path
          name: organizationId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkCreateNotificationChannelsRequest'
        description: The request body containing the notification channels to create.
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationChannelsList'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Internal Server Error
      security:
        - JWT: []
components:
  schemas:
    BulkCreateNotificationChannelsRequest:
      properties:
        notificationChannels:
          description: The notification channels to create. At most 30 per request.
          items:
            $ref: '#/components/schemas/CreateNotificationChannelRequest'
          maxItems: 30
          minItems: 1
          type: array
      required:
        - notificationChannels
      type: object
    NotificationChannelsList:
      properties:
        notificationChannels:
          description: The notification channels that were created.
          items:
            $ref: '#/components/schemas/NotificationChannel'
          type: array
      required:
        - notificationChannels
      type: object
    Error:
      properties:
        fieldErrors:
          description: >-
            FieldErrors carries one entry per failed request-validation
            constraint. Only present on 400 responses caused by request
            binding/validation.
          items:
            $ref: '#/components/schemas/FieldValidationError'
          type: array
        message:
          type: string
        requestId:
          type: string
        statusCode:
          maximum: 600
          minimum: 400
          type: integer
      required:
        - message
        - requestId
        - statusCode
      type: object
    CreateNotificationChannelRequest:
      discriminator:
        mapping:
          DAG_TRIGGER:
            $ref: '#/components/schemas/CreateDagTriggerNotificationChannelRequest'
          EMAIL:
            $ref: '#/components/schemas/CreateEmailNotificationChannelRequest'
          OPSGENIE:
            $ref: '#/components/schemas/CreateOpsgenieNotificationChannelRequest'
          PAGERDUTY:
            $ref: '#/components/schemas/CreatePagerDutyNotificationChannelRequest'
          SLACK:
            $ref: '#/components/schemas/CreateSlackNotificationChannelRequest'
        propertyName: type
      oneOf:
        - $ref: '#/components/schemas/CreateDagTriggerNotificationChannelRequest'
        - $ref: '#/components/schemas/CreateEmailNotificationChannelRequest'
        - $ref: '#/components/schemas/CreateOpsgenieNotificationChannelRequest'
        - $ref: '#/components/schemas/CreatePagerDutyNotificationChannelRequest'
        - $ref: '#/components/schemas/CreateSlackNotificationChannelRequest'
      type: object
    NotificationChannel:
      properties:
        createdAt:
          description: The time the notification channel was created in UTC.
          example: '2022-11-22T04:37:12Z'
          format: date-time
          type: string
        createdBy:
          $ref: '#/components/schemas/BasicSubjectProfile'
        definition:
          description: The notification channel's definition.
        deploymentId:
          description: The ID of the deployment the notification channel is scoped to.
          type: string
        entityId:
          description: The entity ID the notification channel is scoped to.
          type: string
        entityType:
          description: The type of entity the notification channel is scoped to.
          enum:
            - ORGANIZATION
            - WORKSPACE
            - DEPLOYMENT
          type: string
        id:
          description: The notification channel's ID.
          type: string
        isShared:
          description: >-
            When entity type is scoped to ORGANIZATION or WORKSPACE, this
            determines if child entities can access this notification channel.
          type: boolean
        name:
          description: The notification channel's name.
          type: string
        organizationId:
          description: The ID of the organization the notification channel belongs to.
          type: string
        type:
          description: The notification channel's type.
          enum:
            - SLACK
            - EMAIL
            - PAGERDUTY
            - DAG_TRIGGER
            - OPSGENIE
          type: string
        updatedAt:
          description: The time the notification channel was last updated in UTC.
          example: '2022-11-22T04:37:12Z'
          format: date-time
          type: string
        updatedBy:
          $ref: '#/components/schemas/BasicSubjectProfile'
        workspaceId:
          description: The ID of the workspace the notification channel is scoped to.
          type: string
      required:
        - createdAt
        - definition
        - entityId
        - entityType
        - id
        - isShared
        - name
        - organizationId
        - type
        - updatedAt
      type: object
    FieldValidationError:
      properties:
        code:
          type: string
        field:
          type: string
        message:
          type: string
      required:
        - code
        - field
        - message
      type: object
    CreateDagTriggerNotificationChannelRequest:
      title: DAG_TRIGGER
      properties:
        definition:
          $ref: '#/components/schemas/DagTriggerNotificationChannelDefinition'
        entityId:
          description: The entity ID the notification channel is scoped to.
          type: string
        entityType:
          description: The type of entity the notification channel is scoped to.
          enum:
            - ORGANIZATION
            - WORKSPACE
            - DEPLOYMENT
          type: string
        isShared:
          description: >-
            When entity type is scoped to ORGANIZATION or WORKSPACE, this
            determines if child entities can access this notification channel.
          type: boolean
        name:
          description: The notification channel's name.
          maxLength: 50
          minLength: 1
          type: string
        type:
          description: The notification channel's type.
          enum:
            - SLACK
            - EMAIL
            - PAGERDUTY
            - DAG_TRIGGER
            - OPSGENIE
          type: string
      required:
        - definition
        - entityId
        - entityType
        - name
        - type
      type: object
    CreateEmailNotificationChannelRequest:
      title: EMAIL
      properties:
        definition:
          $ref: '#/components/schemas/EmailNotificationChannelDefinition'
        entityId:
          description: The entity ID the notification channel is scoped to.
          type: string
        entityType:
          description: The type of entity the notification channel is scoped to.
          enum:
            - ORGANIZATION
            - WORKSPACE
            - DEPLOYMENT
          type: string
        isShared:
          description: >-
            When entity type is scoped to ORGANIZATION or WORKSPACE, this
            determines if child entities can access this notification channel.
          type: boolean
        name:
          description: The notification channel's name.
          maxLength: 50
          minLength: 1
          type: string
        type:
          description: The notification channel's type.
          enum:
            - SLACK
            - EMAIL
            - PAGERDUTY
            - DAG_TRIGGER
            - OPSGENIE
          type: string
      required:
        - definition
        - entityId
        - entityType
        - name
        - type
      type: object
    CreateOpsgenieNotificationChannelRequest:
      title: OPSGENIE
      properties:
        definition:
          $ref: '#/components/schemas/OpsgenieNotificationChannelDefinition'
        entityId:
          description: The entity ID the notification channel is scoped to.
          type: string
        entityType:
          description: The type of entity the notification channel is scoped to.
          enum:
            - ORGANIZATION
            - WORKSPACE
            - DEPLOYMENT
          type: string
        isShared:
          description: >-
            When entity type is scoped to ORGANIZATION or WORKSPACE, this
            determines if child entities can access this notification channel.
          type: boolean
        name:
          description: The notification channel's name.
          maxLength: 50
          minLength: 1
          type: string
        type:
          description: The notification channel's type.
          enum:
            - SLACK
            - EMAIL
            - PAGERDUTY
            - DAG_TRIGGER
            - OPSGENIE
          type: string
      required:
        - definition
        - entityId
        - entityType
        - name
        - type
      type: object
    CreatePagerDutyNotificationChannelRequest:
      title: PAGERDUTY
      properties:
        definition:
          $ref: '#/components/schemas/PagerDutyNotificationChannelDefinition'
        entityId:
          description: The entity ID the notification channel is scoped to.
          type: string
        entityType:
          description: The type of entity the notification channel is scoped to.
          enum:
            - ORGANIZATION
            - WORKSPACE
            - DEPLOYMENT
          type: string
        isShared:
          description: >-
            When entity type is scoped to ORGANIZATION or WORKSPACE, this
            determines if child entities can access this notification channel.
          type: boolean
        name:
          description: The notification channel's name.
          maxLength: 50
          minLength: 1
          type: string
        type:
          description: The notification channel's type.
          enum:
            - SLACK
            - EMAIL
            - PAGERDUTY
            - DAG_TRIGGER
            - OPSGENIE
          type: string
      required:
        - definition
        - entityId
        - entityType
        - name
        - type
      type: object
    CreateSlackNotificationChannelRequest:
      title: SLACK
      properties:
        definition:
          $ref: '#/components/schemas/SlackNotificationChannelDefinition'
        entityId:
          description: The entity ID the notification channel is scoped to.
          type: string
        entityType:
          description: The type of entity the notification channel is scoped to.
          enum:
            - ORGANIZATION
            - WORKSPACE
            - DEPLOYMENT
          type: string
        isShared:
          description: >-
            When entity type is scoped to ORGANIZATION or WORKSPACE, this
            determines if child entities can access this notification channel.
          type: boolean
        name:
          description: The notification channel's name.
          maxLength: 50
          minLength: 1
          type: string
        type:
          description: The notification channel's type.
          enum:
            - SLACK
            - EMAIL
            - PAGERDUTY
            - DAG_TRIGGER
            - OPSGENIE
          type: string
      required:
        - definition
        - entityId
        - entityType
        - name
        - type
      type: object
    BasicSubjectProfile:
      properties:
        apiTokenName:
          description: >-
            The API token's name. Returned only when `SubjectType` is
            `SERVICEKEY`.
          example: my-token
          type: string
        avatarUrl:
          description: >-
            The URL for the user's profile image. Returned only when
            `SubjectType` is `USER`.
          example: https://avatar.url
          type: string
        fullName:
          description: The subject's full name. Returned only when `SubjectType` is `USER`.
          example: Jane Doe
          type: string
        id:
          description: The subject's ID.
          example: clm8qv74h000008mlf08scq7k
          type: string
        subjectType:
          description: The subject type.
          enum:
            - USER
            - SERVICEKEY
          example: USER
          type: string
        username:
          description: The subject's username. Returned only when `SubjectType` is `USER`.
          example: user1@company.com
          type: string
      required:
        - id
      type: object
    DagTriggerNotificationChannelDefinition:
      properties:
        dagId:
          description: The DAG ID.
          maxLength: 250
          minLength: 1
          type: string
        deploymentApiToken:
          description: The Deployment API token.
          type: string
        deploymentId:
          description: The DAG's deployment ID.
          type: string
      required:
        - dagId
        - deploymentApiToken
        - deploymentId
      type: object
    EmailNotificationChannelDefinition:
      properties:
        recipients:
          description: The email addresses of the recipients. At most 100 per channel.
          items:
            type: string
          maxItems: 100
          minItems: 1
          type: array
      required:
        - recipients
      type: object
    OpsgenieNotificationChannelDefinition:
      properties:
        apiKey:
          description: The Opsgenie API key.
          maxLength: 256
          minLength: 1
          type: string
      required:
        - apiKey
      type: object
    PagerDutyNotificationChannelDefinition:
      properties:
        integrationKey:
          description: The Pager Duty integration key.
          maxLength: 128
          type: string
      required:
        - integrationKey
      type: object
    SlackNotificationChannelDefinition:
      properties:
        webhookUrl:
          description: The Slack webhook URL.
          type: string
      required:
        - webhookUrl
      type: object
  securitySchemes:
    JWT:
      scheme: bearer
      type: http

````