Knock Subscriptions API

A subscription represents a connection between a recipient and an object, used to represent a list.

Operations 4

GET /v1/users/{user_id}/subscriptions List user 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 #

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-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-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Knock Subscriptions API
  version: '1.0'
  description: A subscription represents a connection between a recipient and an object, used to represent a list.
servers:
- url: https://api.knock.app
  variables: {}
security:
- BearerAuth: []
tags:
- description: A subscription represents a connection between a recipient and an object, used to represent a list.
  name: Subscriptions
paths:
  /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
  /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
components:
  schemas:
    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
    InlineChannelDataRequest:
      additionalProperties:
        description: Channel data for a given channel type.
        oneOf:
        - $ref: '#/components/schemas/PushChannelDataTokensOnly'
        - $ref: '#/components/schemas/PushChannelDataDevicesOnly'
        - $ref: '#/components/schemas/AWSSNSPushChannelDataTargetARNsOnly'
        - $ref: '#/components/schemas/AWSSNSPushChannelDataDevicesOnly'
        - $ref: '#/components/schemas/OneSignalChannelDataPlayerIdsOnly'
        - $ref: '#/components/schemas/SlackChannelData'
        - $ref: '#/components/schemas/MsTeamsChannelData'
        - $ref: '#/components/schemas/DiscordChannelData'
        x-struct: null
        x-validate: null
      description: A request to set channel data for a type of channel inline.
      example:
        97c5837d-c65c-4d54-aa39-080eeb81c69d:
          tokens:
          - push_token_xxx
      title: InlineChannelDataRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.InlineChannelDataRequest
      x-validate: null
    PushChannelDataTokensOnly:
      description: Push channel data.
      example:
        tokens:
        - push_token_1
        - push_token_2
      properties:
        tokens:
          description: A list of push channel tokens.
          items:
            description: The device token to send the push notification to.
            type: string
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - tokens
      title: PushChannelDataTokensOnly
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PushChannelDataTokensOnly
      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
    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
    PreferenceSetRequest:
      description: A request to set a preference set for a recipient.
      example:
        __persistence_strategy__: merge
        categories:
          marketing: false
          transactional:
            channel_types:
              email: false
        channel_types:
          email: true
        channels:
          2f641633-95d3-4555-9222-9f1eb7888a80:
            conditions:
            - argument: US
              operator: equal_to
              variable: recipient.country_code
          aef6e715-df82-4ab6-b61e-b743e249f7b6: true
        commercial_subscribed: true
        workflows:
          dinosaurs-loose:
            channel_types:
              email: false
      properties:
        __persistence_strategy__:
          description: Controls how the preference set is persisted. 'replace' will completely replace the preference set, 'merge' will merge with existing preferences.
          enum:
          - merge
          - replace
          type: string
          x-struct: null
          x-validate: null
        categories:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/PreferenceSetWorkflowCategorySetting'
            description: An object where the key is the category and the values are the preference settings for that category.
            example:
              marketing:
                channel_types:
                  email: false
              transactional: true
            title: PreferenceSetRequestCategories
            type: object
            x-struct: null
            x-validate: null
          - x-struct: null
            x-validate: null
          description: An object where the key is the category and the values are the preference settings for that category.
          x-struct: null
          x-validate: null
        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
        commercial_subscribed:
          description: Whether the recipient is subscribed to commercial communications. When false, the recipient will not receive commercial workflow notifications.
          type:
          - boolean
          - 'null'
          x-struct: null
          x-validate: null
        workflows:
          anyOf:
          - additionalProperties:
              $ref: '#/components/schemas/PreferenceSetWorkflowCategorySetting'
            description: An object where the key is the workflow key and the values are the preference settings for that workflow.
            example:
              dinosaurs-loose:
                channel_types:
                  email: false
                  sms: true
              welcome-sequence: true
            title: PreferenceSetRequestWorkflows
            type: object
            x-struct: null
            x-validate: null
          - x-struct: null
            x-validate: null
          description: An object where the key is the workflow key and the values are the preference settings for that workflow.
          x-struct: null
          x-validate: null
      title: PreferenceSetRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.PreferenceSetRequest
      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
    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
    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
    Object:
      description: A custom [Object](/concepts/objects) entity which belongs to a collection.
      example:
        __typename: Object
        collection: assets
        created_at: null
        id: specimen_25
        properties:
          classification: Theropod
          config:
            biz: baz
            foo: bar
          name: Velociraptor
          status: contained
        updated_at: '2024-05-22T12:00:00Z'
      properties:
        __typename:
          description: The typename of the schema.
          example: Object
          type: string
          x-struct: null
          x-validate: null
        collection:
          description: The collection this object belongs to.
          type: string
          x-struct: null
          x-validate: null
        created_at:
          description: Timestamp when the resource was created.
          format: date-time
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        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 object.
          type: object
          x-struct: null
          x-validate: null
        updated_at:
          description: The timestamp when the resource was last updated.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
      required:
      - __typename
      - id
      - collection
      - updated_at
      title: Object
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.Object
      x-validate: null
    UpsertSubscriptionsRequest:
      description: A request to upsert subscriptions for a set of recipients.
      example:
        properties:
          key: value
        recipients:
        - user_1
        - user_2
      properties:
        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:
      - recipients
      title: UpsertSubscriptionsRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.UpsertSubscriptionsRequest
      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
    InlineIdentifyObjectRequest:
      additionalProperties: true
      description: A custom [Object](/concepts/objects) entity which belongs to a collection.
      example:
        collection: projects
        id: project_1
        name: My project
      properties:
        channel_data:
          description: An optional set of [channel data](/managing-recipients/setting-channel-data) for the object. This is a list of `ChannelData` objects.
          oneOf:
          - $ref: '#/components/schemas/InlineChannelDataRequest'
          - x-struct: null
            x-validate: null
          x-struct: null
          x-validate: null
        collection:
          description: The collection this object belongs to.
          type: string
          x-struct: null
          x-validate: null
        created_at:
          description: Timestamp when the resource was created.
          format: date-time
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        id:
          description: Unique identifier for the object.
          type: string
          x-struct: null
          x-validate: null
        name:
          description: An optional name for the object.
          type:
          - string
          - 'null'
          x-struct: null
          x-validate: null
        preferences:
          description: An optional set of [preferences](/concepts/preferences) for the object.
          oneOf:
          - $ref: '#/components/schemas/InlinePreferenceSetRequest'
          - x-struct: null
            x-validate: null
          x-struct: null
          x-validate: null
      required:
      - id
      - collection
      title: InlineIdentifyObjectRequest
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.InlineIdentifyObjectRequest
      x-validate: null
    DiscordChannelData:
      description: Discord channel data.
      example:
        connections:
        - channel_id: '123456789012345678'
      properties:
        connections:
          description: List of Discord channel connections.
          items:
            description: Discord channel connection, either a channel connection or an incoming webhook connection.
            oneOf:
            - $ref: '#/components/schemas/DiscordChannelConnection'
            - $ref: '#/components/schemas/DiscordIncomingWebhookConnection'
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
      required:
      - connections
      title: DiscordChannelData
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.DiscordChannelData
      x-validate: null
    SlackChannelData:
      description: Slack channel data.
      example:
        connections:
        - access_token: xoxb-1234567890
          channel_id: C01234567890
          user_id: U01234567890
        token:
          access_token: xoxb-1234567890
      properties:
        connections:
          description: List of Slack channel connections.
          items:
            description: A Slack connection, either an access token or an incoming webhook
            oneOf:
            - $ref: '#/components/schemas/SlackTokenConnection'
            - $ref: '#/components/schemas/SlackIncomingWebhookConnection'
            type: object
            x-struct: null
            x-validate: null
          type: array
          x-struct: null
          x-validate: null
        token:
          description: A Slack connection token.
          example:
            access_token: xoxb-1234567890
          properties:
            access_token:
              description: A Slack access token.
              example: xoxb-1234567890
              type:
              - string
              - 'null'
              x-struct: null
              x-validate: null
          required:
          - access_token
          title: SlackChannelDataTokenObject
          type:
          - object
          - 'null'
          x-struct: null
          x-validate: null
      required:
      - connections
      title: SlackChannelData
      type: object
      x-struct: Elixir.SwitchboardWeb.V1.Specs.SlackChannelData
      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
    SubscriptionsResponse:
      description: A response containing a list of subscriptions.
      example:
      - __typename: Subscription
        inserted_at: '2021-01-01T00:00:00Z'
        object:
          __typename: Object
          collection: assets
          created_at: null
          id: specimen_25
          properties:
            classification: Theropod
            config:
              biz: baz
              foo: bar
            name: Velociraptor
            status: contained
          updated_at: '2024-05-22T12:00:00Z'
        recipient:
          __typename: User
          avatar: null
          created_at: null
          email: jane@ingen.net
          id: jane
          name: Jane Doe
          phone_number: null
          timezone: null
          updated_at: '2024-05-22T12:00:00Z'
        updated_at: '2021-01-01T00:00:00Z'
      items:
        $ref: '#/components/schemas/Subscription'
      title: SubscriptionsResponse
      type: array
      x-struct: Elixir.SwitchboardWeb.V1.Specs.SubscriptionsResponse
      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
    AWSSNSPushChannelDataTargetARNsOnly:
      description: AWS SNS push channel data.
      example:
    

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