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

# Create an app install's notification settings

> Declares the initial notification settings of the install's backing app. This endpoint
is create-only: when the app already has notification settings (created here or authored
on the App Setup page) it fails with 409 and the settings must be changed via PATCH.
Setting ids are stable identifiers referenced by `notificationSettingId` on
POST /v1/notifications and by internal users' saved preferences; omit a setting's id to
have one generated. Requests authenticated with an app API key may only manage the
calling app's own installs — for a published marketplace app this changes the app's
settings in every workspace it is installed in. Requests authenticated with a regular
API key require workspace admin privileges.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/installs/{installId}/notification-settings
openapi: 3.0.0
info:
  contact: {}
  title: Assembly API
  version: 0.0.1
servers:
  - url: https://api.assembly.com
security: []
paths:
  /v1/installs/{installId}/notification-settings:
    post:
      tags:
        - Installs
      summary: Create an app install's notification settings
      description: >-
        Declares the initial notification settings of the install's backing app.
        This endpoint

        is create-only: when the app already has notification settings (created
        here or authored

        on the App Setup page) it fails with 409 and the settings must be
        changed via PATCH.

        Setting ids are stable identifiers referenced by `notificationSettingId`
        on

        POST /v1/notifications and by internal users' saved preferences; omit a
        setting's id to

        have one generated. Requests authenticated with an app API key may only
        manage the

        calling app's own installs — for a published marketplace app this
        changes the app's

        settings in every workspace it is installed in. Requests authenticated
        with a regular

        API key require workspace admin privileges.
      operationId: create-install-notification-settings
      parameters:
        - description: Unique identifier of the app install
          in: path
          name: installId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/app_instance.InstallNotificationSettingsCreateInput
        description: Notification settings to create
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app_instance.InstallNotificationSettings'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dispatcher.Error'
          description: >-
            Invalid body, duplicate setting ids, or the install has no backing
            app
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dispatcher.Error'
          description: >-
            Missing or invalid API key, app key targeting another app's install,
            or caller lacks admin privileges
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dispatcher.Error'
          description: App install not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dispatcher.Error'
          description: The app already has notification settings
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dispatcher.Error'
          description: Unexpected server error
      security:
        - APIKeyHeader: []
components:
  schemas:
    app_instance.InstallNotificationSettingsCreateInput:
      properties:
        actionLabel:
          allOf:
            - $ref: '#/components/schemas/app_instance.InstallNotificationActionLabel'
          description: >-
            ActionLabel optionally declares the app's generic "[verb] [count]
            [noun]" label.
        notifications:
          description: Notifications is the app's initial list of notification settings.
          items:
            $ref: '#/components/schemas/app_instance.InstallNotificationSettingInput'
          maxItems: 50
          minItems: 1
          type: array
      required:
        - notifications
      type: object
    app_instance.InstallNotificationSettings:
      properties:
        actionLabel:
          allOf:
            - $ref: '#/components/schemas/app_instance.InstallNotificationActionLabel'
          description: >-
            ActionLabel is the app's generic "[verb] [count] [noun]" label,
            present only when declared.
        notifications:
          description: >-
            Notifications is every notification setting the app exposes for this
            install. Empty when the

            install's backing app declares no settings. A setting's `id` is the
            value to pass as

            `notificationSettingId` when creating a notification via POST
            /v1/notifications. If the

            recipient's preferences disable every requested delivery target for
            a setting, that POST

            creates nothing and returns 202.
          items:
            $ref: '#/components/schemas/app_instance.InstallNotificationSetting'
          type: array
        object:
          example: notificationSettings
          type: string
      type: object
    dispatcher.Error:
      properties:
        code:
          type: string
        data: {}
        message:
          type: string
      type: object
    app_instance.InstallNotificationActionLabel:
      properties:
        pluralNoun:
          example: invoices
          type: string
        singularNoun:
          example: invoice
          type: string
        verb:
          example: review
          type: string
      type: object
    app_instance.InstallNotificationSettingInput:
      properties:
        default:
          allOf:
            - $ref: >-
                #/components/schemas/app_instance.InstallNotificationSurfaceDefaults
          description: >-
            Default is the per-internal-user default delivery state; omitted
            surfaces default to off.
        id:
          description: >-
            ID is the setting's stable identifier, referenced by
            notificationSettingId on

            POST /v1/notifications and by internal users' saved preferences.
            Omit it to have one

            generated.
          example: invoice-paid
          type: string
        label:
          description: Label is the human-readable name shown to internal users.
          example: Invoice paid
          maxLength: 100
          type: string
        surfaces:
          description: Surfaces are the delivery channels the setting supports.
          example:
            - product
            - email
          items:
            enum:
              - product
              - email
            type: string
          minItems: 1
          type: array
      required:
        - label
        - surfaces
      type: object
    app_instance.InstallNotificationSetting:
      properties:
        default:
          allOf:
            - $ref: >-
                #/components/schemas/app_instance.InstallNotificationSurfaceDefaults
          description: >-
            Default is the per-internal-user default delivery state for each
            surface.
        id:
          description: >-
            ID is the stable identifier to pass as `notificationSettingId` when
            creating a notification.
          example: invoice-paid
          type: string
        label:
          description: Label is the human-readable name shown to internal users.
          example: Invoice paid
          type: string
        surfaces:
          description: Surfaces are the delivery channels this setting supports.
          example:
            - product
            - email
          items:
            enum:
              - product
              - email
            type: string
          type: array
      type: object
    app_instance.InstallNotificationSurfaceDefaults:
      properties:
        email:
          description: >-
            Email is true when the email channel starts enabled for internal
            users.
          example: false
          type: boolean
        product:
          description: >-
            Product is true when the in-product channel starts enabled for
            internal users.
          example: true
          type: boolean
      type: object
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-API-KEY
      type: apiKey

````