Knock Subscriptions API

The Subscriptions API from Knock — 4 operation(s) for subscriptions.

Operations 6

POST /v1/objects/{collection}/bulk/subscriptions/add Bulk add subscriptions #
POST /v1/objects/{collection}/bulk/subscriptions/delete Bulk delete subscriptions #
DELETE /v1/objects/{collection}/{object_id}/subscriptions Delete subscriptions #
GET /v1/objects/{collection}/{object_id}/subscriptions List subscriptions #
POST /v1/objects/{collection}/{object_id}/subscriptions Add subscriptions #
GET /v1/users/{user_id}/subscriptions List user subscriptions #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/knock-app-subscriptions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

knock-app-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Knock Audiences Accounts Subscriptions API
  version: '1.0'
  description: Manage static Audiences and their members. Audiences power lifecycle messaging — when a user joins an audience, configured workflows fire automatically.
  contact:
    name: Knock
    url: https://knock.app
  license:
    name: Proprietary
servers:
- url: https://api.knock.app
  variables: {}
security:
- BearerAuth: []
tags:
- name: Subscriptions
paths:
  /v1/objects/{collection}/bulk/subscriptions/add:
    post:
      callbacks: {}
      description: Add subscriptions for all objects in a single collection. If a subscription for an object in the collection already exists, it will be updated. This endpoint also handles [inline identifications](/managing-recipients/identifying-recipients#inline-identifying-recipients) for the `recipient` field.
      operationId: bulkAddSubscriptions
      parameters:
      - description: The collection this object belongs to.
        example: projects
        in: path
        name: collection
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      requestBody:
        content:
          application/json:
            example:
              subscriptions:
              - id: project-1
                properties: null
                recipients:
                - id: user_1
            schema:
              $ref: '#/components/schemas/BulkUpsertSubscriptionsRequest'
        description: Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkOperation'
          description: OK
      summary: Bulk add subscriptions
      tags:
      - Subscriptions
      x-ratelimit-tier: 1
  /v1/objects/{collection}/bulk/subscriptions/delete:
    post:
      callbacks: {}
      description: Delete subscriptions for many objects in a single collection type. If a subscription for an object in the collection doesn't exist, it will be skipped.
      operationId: bulkDeleteSubscriptions
      parameters:
      - description: The collection this object belongs to.
        example: projects
        in: path
        name: collection
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      requestBody:
        content:
          application/json:
            example:
              subscriptions:
              - id: subscribed-to-object-1
                recipients:
                - collection: projects
                  id: subscriber-project-1
                - subscriber-user-1
              - id: subscribed-to-object-2
                recipients:
                - subscriber-user-2
            schema:
              $ref: '#/components/schemas/BulkDeleteSubscriptionsRequest'
        description: Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkOperation'
          description: OK
      summary: Bulk delete subscriptions
      tags:
      - Subscriptions
      x-ratelimit-tier: 1
  /v1/objects/{collection}/{object_id}/subscriptions:
    delete:
      callbacks: {}
      description: Delete subscriptions for the specified recipients from an object. Returns the list of deleted subscriptions.
      operationId: deleteSubscriptionsForObject
      parameters:
      - description: Unique identifier for the object.
        in: path
        name: object_id
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The collection this object belongs to.
        in: path
        name: collection
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteSubscriptionsRequest'
        description: Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionsResponse'
          description: OK
      summary: Delete subscriptions
      tags:
      - Subscriptions
      x-ratelimit-tier: 3
    get:
      callbacks: {}
      description: List subscriptions for an object. Either list the recipients that subscribe to the provided object, or list the objects that the provided object is subscribed to. Determined by the `mode` query parameter.
      operationId: listSubscriptionsForObject
      parameters:
      - description: Mode of the request. `recipient` to list the objects that the provided object is subscribed to, `object` to list the recipients that subscribe to the provided object.
        in: query
        name: mode
        required: false
        schema:
          default: object
          enum:
          - recipient
          - object
          type: string
          x-struct: null
          x-validate: null
      - description: Additional fields to include in the response.
        in: query
        name: include[]
        required: false
        schema:
          items:
            enum:
            - preferences
            type: string
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      - description: Recipients to filter by (only used if mode is `object`).
        in: query
        name: recipients[]
        required: false
        schema:
          items:
            $ref: '#/components/schemas/RecipientReference'
          type: array
          x-struct: null
          x-validate: null
      - description: Objects to filter by (only used if mode is `recipient`).
        in: query
        name: objects[]
        required: false
        schema:
          items:
            $ref: '#/components/schemas/ObjectReference'
          type: array
          x-struct: null
          x-validate: null
      - description: Unique identifier for the object.
        in: path
        name: object_id
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The collection this object belongs to.
        in: path
        name: collection
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries after.
        in: query
        name: after
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries before.
        in: query
        name: before
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The number of items per page (defaults to 50).
        in: query
        name: page_size
        required: false
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSubscriptionsResponse'
          description: OK
      summary: List subscriptions
      tags:
      - Subscriptions
      x-ratelimit-tier: 4
    post:
      callbacks: {}
      description: Add subscriptions for an object. If a subscription already exists, it will be updated. This endpoint also handles [inline identifications](/managing-recipients/identifying-recipients#inline-identifying-recipients) for the `recipient`.
      operationId: addSubscriptionsForObject
      parameters:
      - description: Unique identifier for the object.
        in: path
        name: object_id
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The collection this object belongs to.
        in: path
        name: collection
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      requestBody:
        content:
          application/json:
            example:
              properties:
                key: value
              recipients:
              - user_1
              - user_2
            schema:
              $ref: '#/components/schemas/UpsertSubscriptionsRequest'
        description: Params
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionsResponse'
          description: OK
      summary: Add subscriptions
      tags:
      - Subscriptions
      x-ratelimit-tier: 3
  /v1/users/{user_id}/subscriptions:
    get:
      callbacks: {}
      description: Retrieves a paginated list of subscriptions for a specific user, in descending order.
      operationId: listSubscriptionsForUser
      parameters:
      - description: The user ID to list subscriptions for.
        in: path
        name: user_id
        required: true
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: Associated resources to include in the response.
        in: query
        name: include[]
        required: false
        schema:
          items:
            enum:
            - preferences
            type: string
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      - description: Only returns subscriptions for the specified object references.
        in: query
        name: objects[]
        required: false
        schema:
          items:
            $ref: '#/components/schemas/RecipientReference'
          type: array
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries after.
        in: query
        name: after
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries before.
        in: query
        name: before
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The number of items per page (defaults to 50).
        in: query
        name: page_size
        required: false
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSubscriptionsResponse'
          description: OK
      summary: List user subscriptions
      tags:
      - Subscriptions
      x-ratelimit-tier: 4
components:
  schemas:
    PreferenceSetChannelTypeSetting:
      description: A set of settings for a channel type. Currently, this can only be a list of conditions to apply.
      example:
        conditions:
        - argument: US
          operator: equal_to
          variable: recipient.country_code
      properties:
        conditions:
          description: A list of conditions to apply to a channel type.
          items:
            $ref: '#/components/schemas/Condition'
          type: array
          x-struct: null
          x-validate: null
      required:
      - conditions
      title: PreferenceSetChannelTypeSetting
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PreferenceSetChannelTypes.PreferenceSetChannelTypeSetting
      x-validate: null
    MsTeamsTokenConnection:
      description: Microsoft Teams token connection.
      example:
        ms_teams_channel_id: 123e4567-e89b-12d3-a456-426614174000
        ms_teams_team_id: 123e4567-e89b-12d3-a456-426614174000
        ms_teams_tenant_id: null
        ms_teams_user_id: null
      properties:
        ms_teams_channel_id:
          description: Microsoft Teams channel ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        ms_teams_team_id:
          description: Microsoft Teams team ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        ms_teams_tenant_id:
          description: Microsoft Teams tenant ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        ms_teams_user_id:
          description: Microsoft Teams user ID.
          format: uuid
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
      title: MsTeamsTokenConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.MsTeamsChannelData.TokenConnection
      x-validate: null
    InlineIdentifyUserRequest:
      additionalProperties: true
      description: A set of parameters to inline-identify a user with. Inline identifying the user will ensure that the user is available before the request is executed in Knock. It will perform an upsert for the user you're supplying, replacing any properties specified.
      example:
        channel_data:
          97c5837d-c65c-4d54-aa39-080eeb81c69d:
            tokens:
            - push_token_123
        email: jane@ingen.net
        id: user_1
        name: Jane Doe
        preferences:
          default:
            channel_types:
              email: true
            workflows:
              dinosaurs-loose:
                channel_types:
                  email: true
        timezone: America/New_York
      properties:
        avatar:
          description: A URL for the avatar of the user.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        channel_data:
          allOf:
          - $ref: '#/components/schemas/InlineChannelDataRequest'
          description: Channel-specific information that's needed to deliver a notification to an end provider.
          x-struct: null
          x-validate: null
        created_at:
          description: The creation date of the user from your system.
          format: date-time
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        email:
          description: The primary email address for the user.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        id:
          description: The unique identifier of the user.
          type: string
          x-struct: null
          x-validate: null
        locale:
          description: The locale of the user. Used for [message localization](/concepts/translations).
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        name:
          description: Display name of the user.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        phone_number:
          description: The [E.164](https://www.twilio.com/docs/glossary/what-e164) phone number of the user (required for SMS channels).
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        preferences:
          allOf:
          - $ref: '#/components/schemas/InlinePreferenceSetRequest'
          description: A set of preferences for the user.
          x-struct: null
          x-validate: null
        timezone:
          description: The timezone of the user. Must be a valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Used for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
      required:
      - id
      title: InlineIdentifyUserRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.InlineIdentifyUserRequest
      x-validate: null
    DeleteSubscriptionsRequest:
      description: A request to delete subscriptions for a set of recipients.
      example:
        recipients:
        - user_123
      properties:
        recipients:
          description: The recipients of the subscription. You can subscribe up to 100 recipients to an object at a time.
          items:
            $ref: '#/components/schemas/RecipientReference'
          type: array
          x-struct: null
          x-validate: null
      required:
      - recipients
      title: DeleteSubscriptionsRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.DeleteSubscriptionsRequest
      x-validate: null
    PreferenceSetChannels:
      additionalProperties:
        description: Whether the specific channel (by channel_id) is enabled for the preference set, or a settings object with conditions.
        oneOf:
        - type: boolean
          x-struct: null
          x-validate: null
        - $ref: '#/components/schemas/PreferenceSetChannelSetting'
        x-struct: null
        x-validate: null
      description: Channel preferences.
      example:
        2f641633-95d3-4555-9222-9f1eb7888a80:
          conditions:
          - argument: US
            operator: equal_to
            variable: recipient.country_code
        aef6e715-df82-4ab6-b61e-b743e249f7b6: true
      title: PreferenceSetChannels
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PreferenceSetChannels
      x-validate: null
    PreferenceSetWorkflowCategorySetting:
      description: Workflow or category preferences within a preference set
      example:
        channel_types:
          email: false
        channels:
          aef6e715-df82-4ab6-b61e-b743e249f7b6: true
      oneOf:
      - example: false
        type: boolean
        x-struct: null
        x-validate: null
      - description: The settings object for a workflow or category, where you can specify channel types or conditions.
        example:
          channel_types:
            email: false
          channels:
            aef6e715-df82-4ab6-b61e-b743e249f7b6: true
          conditions: null
        properties:
          channel_types:
            anyOf:
            - $ref: '#/components/schemas/PreferenceSetChannelTypes'
            - x-struct: null
              x-validate: null
            description: An object where the key is the channel type and the values are the preference settings for that channel type.
            x-struct: null
            x-validate: null
          channels:
            anyOf:
            - $ref: '#/components/schemas/PreferenceSetChannels'
            - x-struct: null
              x-validate: null
            description: An object where the key is the channel ID and the values are the preference settings for that channel ID.
            x-struct: null
            x-validate: null
          conditions:
            description: A list of conditions to apply to a channel type.
            items:
              $ref: '#/components/schemas/Condition'
            type:
            - array
            - 'null'
            x-struct: null
            x-validate: null
        title: PreferenceSetWorkflowCategorySettingObject
        type: object
        x-struct: null
        x-validate: null
      title: PreferenceSetWorkflowCategorySetting
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PreferenceSetWorkflowCategorySetting
      x-validate: null
    OneSignalChannelDataPlayerIdsOnly:
      description: OneSignal channel data.
      example:
        player_ids:
        - 123e4567-e89b-12d3-a456-426614174000
      properties:
        player_ids:
          description: A list of OneSignal player IDs.
          example:
          - 123e4567-e89b-12d3-a456-426614174000
          items:
            description: OneSignal player ID.
            format: uuid
            type: string
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - player_ids
      title: OneSignalChannelDataPlayerIdsOnly
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.OneSignalChannelDataPlayerIdsOnly
      x-validate: null
    BulkUpsertSubscriptionsRequest:
      description: A request to upsert subscriptions for many groups of 1 subscribed-to object, N subscriber recipients.
      example:
        subscriptions:
        - id: project-1
          properties: null
          recipients:
          - id: user_1
      properties:
        subscriptions:
          description: A nested list of subscriptions.
          items:
            description: A list of subscriptions. 1 subscribed-to id, and N subscriber recipients.
            properties:
              id:
                description: Unique identifier for the object.
                type: string
                x-struct: null
                x-validate: null
              properties:
                additionalProperties: true
                description: The custom properties associated with the subscription relationship.
                type:
                - object
                - 'null'
                x-struct: null
                x-validate: null
              recipients:
                description: The recipients of the subscription. You can subscribe up to 100 recipients to an object at a time.
                items:
                  $ref: '#/components/schemas/RecipientRequest'
                type: array
                x-struct: null
                x-validate: null
            required:
            - id
            - recipients
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - subscriptions
      title: BulkUpsertSubscriptionsRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.BulkUpsertSubscriptionsRequest
      x-validate: null
    ObjectReference:
      description: A reference to a recipient object.
      example:
        collection: projects
        id: project_123
      properties:
        collection:
          description: The collection the recipient object belongs to.
          example: projects
          type: string
          x-struct: null
          x-validate: null
        id:
          description: An identifier for the recipient object.
          example: project_123
          type: string
          x-struct: null
          x-validate: null
      title: ObjectReference
      type: object
      x-struct: null
      x-validate: null
    DiscordChannelConnection:
      description: Discord channel connection.
      example:
        channel_id: '123456789012345678'
      properties:
        channel_id:
          description: Discord channel ID.
          example: '123456789012345678'
          type: string
          x-struct: null
          x-validate: null
      required:
      - channel_id
      title: DiscordChannelConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.DiscordChannelData.ChannelConnection
      x-validate: null
    Condition:
      description: A condition to be evaluated.
      example:
        argument: frog_genome
        operator: contains
        variable: specimen.dna_sequence
      properties:
        argument:
          description: The argument value to compare against in the condition.
          example: some_property
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        operator:
          description: The operator to use in the condition evaluation.
          enum:
          - equal_to
          - not_equal_to
          - greater_than
          - less_than
          - greater_than_or_equal_to
          - less_than_or_equal_to
          - contains
          - not_contains
          - empty
          - not_empty
          - exists
          - not_exists
          - contains_all
          - is_timestamp
          - is_not_timestamp
          - is_timestamp_on_or_after
          - is_timestamp_before
          - is_timestamp_on_or_after_date
          - is_timestamp_before_date
          - is_timestamp_between
          - is_between
          - is_audience_member
          - is_not_audience_member
          example: equal_to
          type: string
          x-struct: null
          x-validate: null
        variable:
          description: The variable to be evaluated in the condition.
          example: recipient.property
          type: string
          x-struct: null
          x-validate: null
      required:
      - variable
      - operator
      - argument
      title: Condition
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.Condition
      x-validate: null
    PushChannelDataDevicesOnly:
      description: Push channel data.
      example:
        devices:
        - locale: en-US
          timezone: America/Los_Angeles
          token: push_token_1
      properties:
        devices:
          description: A list of devices. Each device contains a token, and optionally a locale and timezone.
          items:
            properties:
              locale:
                description: The locale of the object. Used for [message localization](/concepts/translations).
                type:
                - string
                - 'null'
                x-struct: null
                x-validate: null
              timezone:
                description: The timezone of the object. Must be a valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Used for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
                type:
                - string
                - 'null'
                x-struct: null
                x-validate: null
              token:
                description: The device token to send the push notification to.
                type: string
                x-struct: null
                x-validate: null
            required:
            - token
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - devices
      title: PushChannelDataDevicesOnly
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PushChannelDataDevicesOnly
      x-validate: null
    DiscordIncomingWebhookConnection:
      description: Discord incoming webhook connection.
      example:
        incoming_webhook:
          url: https://example.com/webhook
      properties:
        incoming_webhook:
          description: Discord incoming webhook object.
          properties:
            url:
              description: Incoming webhook URL.
              example: https://example.com/webhook
              type: string
              x-struct: null
              x-validate: null
          required:
          - url
          type: object
          x-struct: null
          x-validate: null
      required:
      - incoming_webhook
      title: DiscordIncomingWebhookConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.DiscordChannelData.IncomingWebhookConnection
      x-validate: null
    MsTeamsIncomingWebhookConnection:
      description: Microsoft Teams incoming webhook connection.
      example:
        incoming_webhook:
          url: https://example.com/webhook
      properties:
        incoming_webhook:
          description: Microsoft Teams incoming webhook.
          properties:
            url:
              description: Microsoft Teams incoming webhook URL.
              example: https://example.com/webhook
              type: string
              x-struct: null
              x-validate: null
          required:
          - url
          type: object
          x-struct: null
          x-validate: null
      required:
      - incoming_webhook
      title: MsTeamsIncomingWebhookConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.MsTeamsChannelData.IncomingWebhookConnection
      x-validate: null
    AWSSNSPushChannelDataDevicesOnly:
      description: AWS SNS push channel data.
      example:
        devices:
        - locale: en-US
          target_arn: arn:aws:sns:us-west-2:123456789012:endpoint/GCM/gcmpushapp/5e3e9847-3183-3f18-a7e8-671c3a57d4b3
          timezone: America/Los_Angeles
      properties:
        devices:
          description: A list of devices. Each device contains a target_arn, and optionally a locale and timezone.
          items:
            properties:
              locale:
                description: The locale of the object. Used for [message localization](/concepts/translations).
                type:
                - string
                - 'null'
                x-struct: null
                x-validate: null
              target_arn:
                description: The ARN of a platform endpoint associated with a platform application and a device token. See [Setting up an Amazon SNS platform endpoint for mobile notifications](https://docs.aws.amazon.com/sns/latest/dg/mobile-platform-endpoint.html).
                type: string
                x-struct: null
                x-validate: null
              timezone:
                description: The timezone of the object. Must be a valid [tz database time zone string](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Used for [recurring schedules](/concepts/schedules#scheduling-workflows-with-recurring-schedules-for-recipients).
                type:
                - string
                - 'null'
                x-struct: null
                x-validate: null
            required:
            - target_arn
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - devices
      title: AWSSNSPushChannelDataDevicesOnly
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.AWSSNSPushChannelDataDevicesOnly
      x-validate: null
    SlackIncomingWebhookConnection:
      description: A Slack connection incoming webhook.
      example:
        url: https://hooks.slack.com/services/T01234567890/B01234567890/1234567890
      properties:
        url:
          description: The URL of the incoming webhook for a Slack connection.
          example: https://hooks.slack.com/services/T01234567890/B01234567890/1234567890
          type: string
          x-struct: null
          x-validate: null
      required:
      - url
      title: SlackIncomingWebhookConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.SlackChannelData.IncomingWebhookConnection
      x-validate: null
    SlackTokenConnection:
      description: A Slack connection token.
      example:
        access_token: xoxb-1234567890
        channel_id: C01234567890
        user_id: U01234567890
      properties:
        access_token:
          description: A Slack access token.
          example: xoxb-1234567890
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        channel_id:
          description: A Slack channel ID from the Slack provider.
          example: C01234567890
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        user_id:
          description: A Slack user ID from the Slack provider.
          example: U01234567890
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
      title: SlackTokenConnection
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.SlackChannelData.TokenConnection
      x-validate: null
    BulkDeleteSubscriptionsRequest:
      description: A request to delete subscriptions for many groups of 1 subscribed-to object, N subscriber recipients.
      example:
        subscriptions:
        - id: subscribed-to-object-1
          recipients:
          - collection: projects
            id: subscriber-project-1
          - subscriber-user-1
        - id: subscribed-to-object-2
          recipients:
          - subscriber-user-2
      properties:
        subscriptions:
          description: A nested list of subscriptions.
          items:
          

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/knock-app/refs/heads/main/openapi/knock-app-subscriptions-api-openapi.yml