Knock · Capability

Knock API — Bulk operations

Knock API — Bulk operations. 12 operations. Lead operation: Get bulk operation. Self-contained Naftiko capability covering one Knock business surface.

Run with Naftiko KnockBulk operations

What You Can Do

GET
Getbulkoperation — Get bulk operation
/v1/v1/bulk-operations/{id}
POST
Bulkupdatemessagesforchannel — Bulk update message statuses for channel
/v1/v1/channels/{channel-id}/messages/bulk/{action}
POST
Bulkdeleteobjects — Bulk delete objects
/v1/v1/objects/{collection}/bulk/delete
POST
Bulksetobjects — Bulk set objects
/v1/v1/objects/{collection}/bulk/set
POST
Bulkaddsubscriptions — Bulk add subscriptions
/v1/v1/objects/{collection}/bulk/subscriptions/add
POST
Bulkdeletesubscriptions — Bulk delete subscriptions
/v1/v1/objects/{collection}/bulk/subscriptions/delete
POST
Bulkcreateschedules — Create schedules in bulk
/v1/v1/schedules/bulk/create
POST
Bulkdeletetenants — Bulk delete tenants
/v1/v1/tenants/bulk/delete
POST
Bulksettenants — Bulk set tenants
/v1/v1/tenants/bulk/set
POST
Bulkdeleteusers — Bulk delete users
/v1/v1/users/bulk/delete
POST
Bulkidentifyusers — Bulk identify users
/v1/v1/users/bulk/identify
POST
Bulksetuserpreferences — Bulk set preferences
/v1/v1/users/bulk/preferences

MCP Tools

get-bulk-operation

Get bulk operation

read-only idempotent
bulk-update-message-statuses-channel

Bulk update message statuses for channel

bulk-delete-objects

Bulk delete objects

bulk-set-objects

Bulk set objects

bulk-add-subscriptions

Bulk add subscriptions

bulk-delete-subscriptions

Bulk delete subscriptions

create-schedules-bulk

Create schedules in bulk

bulk-delete-tenants

Bulk delete tenants

bulk-set-tenants

Bulk set tenants

bulk-delete-users

Bulk delete users

bulk-identify-users

Bulk identify users

bulk-set-preferences

Bulk set preferences

Capability Spec

knock-bulk-operations.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Knock API — Bulk operations
  description: 'Knock API — Bulk operations. 12 operations. Lead operation: Get bulk operation. Self-contained Naftiko capability
    covering one Knock business surface.'
  tags:
  - Knock
  - Bulk operations
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    KNOCK_API_KEY: KNOCK_API_KEY
capability:
  consumes:
  - type: http
    namespace: knock-bulk-operations
    baseUri: https://api.knock.app
    description: Knock API — Bulk operations business capability. Self-contained, no shared references.
    resources:
    - name: v1-bulk_operations-id
      path: /v1/bulk_operations/{id}
      operations:
      - name: getbulkoperation
        method: GET
        description: Get bulk operation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID of the bulk operation to retrieve.
          required: true
    - name: v1-channels-channel_id-messages-bulk-action
      path: /v1/channels/{channel_id}/messages/bulk/{action}
      operations:
      - name: bulkupdatemessagesforchannel
        method: POST
        description: Bulk update message statuses for channel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: channel_id
          in: path
          type: string
          description: The ID of the channel to update messages for.
          required: true
        - name: action
          in: path
          type: string
          description: The target status to be applied to the messages.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-objects-collection-bulk-delete
      path: /v1/objects/{collection}/bulk/delete
      operations:
      - name: bulkdeleteobjects
        method: POST
        description: Bulk delete objects
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collection
          in: path
          type: string
          description: The collection this object belongs to.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-objects-collection-bulk-set
      path: /v1/objects/{collection}/bulk/set
      operations:
      - name: bulksetobjects
        method: POST
        description: Bulk set objects
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collection
          in: path
          type: string
          description: The collection this object belongs to.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-objects-collection-bulk-subscriptions-add
      path: /v1/objects/{collection}/bulk/subscriptions/add
      operations:
      - name: bulkaddsubscriptions
        method: POST
        description: Bulk add subscriptions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collection
          in: path
          type: string
          description: The collection this object belongs to.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-objects-collection-bulk-subscriptions-delete
      path: /v1/objects/{collection}/bulk/subscriptions/delete
      operations:
      - name: bulkdeletesubscriptions
        method: POST
        description: Bulk delete subscriptions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: collection
          in: path
          type: string
          description: The collection this object belongs to.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-schedules-bulk-create
      path: /v1/schedules/bulk/create
      operations:
      - name: bulkcreateschedules
        method: POST
        description: Create schedules in bulk
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-tenants-bulk-delete
      path: /v1/tenants/bulk/delete
      operations:
      - name: bulkdeletetenants
        method: POST
        description: Bulk delete tenants
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tenant_ids[]
          in: query
          type: array
          description: The IDs of the tenants to delete.
          required: true
    - name: v1-tenants-bulk-set
      path: /v1/tenants/bulk/set
      operations:
      - name: bulksettenants
        method: POST
        description: Bulk set tenants
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-bulk-delete
      path: /v1/users/bulk/delete
      operations:
      - name: bulkdeleteusers
        method: POST
        description: Bulk delete users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-bulk-identify
      path: /v1/users/bulk/identify
      operations:
      - name: bulkidentifyusers
        method: POST
        description: Bulk identify users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-bulk-preferences
      path: /v1/users/bulk/preferences
      operations:
      - name: bulksetuserpreferences
        method: POST
        description: Bulk set preferences
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.KNOCK_API_KEY}}'
  exposes:
  - type: rest
    namespace: knock-bulk-operations-rest
    port: 8080
    description: REST adapter for Knock API — Bulk operations. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v1/bulk-operations/{id}
      name: v1-bulk-operations-id
      description: REST surface for v1-bulk_operations-id.
      operations:
      - method: GET
        name: getbulkoperation
        description: Get bulk operation
        call: knock-bulk-operations.getbulkoperation
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/channels/{channel-id}/messages/bulk/{action}
      name: v1-channels-channel-id-messages-bulk-action
      description: REST surface for v1-channels-channel_id-messages-bulk-action.
      operations:
      - method: POST
        name: bulkupdatemessagesforchannel
        description: Bulk update message statuses for channel
        call: knock-bulk-operations.bulkupdatemessagesforchannel
        with:
          channel_id: rest.channel_id
          action: rest.action
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/objects/{collection}/bulk/delete
      name: v1-objects-collection-bulk-delete
      description: REST surface for v1-objects-collection-bulk-delete.
      operations:
      - method: POST
        name: bulkdeleteobjects
        description: Bulk delete objects
        call: knock-bulk-operations.bulkdeleteobjects
        with:
          collection: rest.collection
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/objects/{collection}/bulk/set
      name: v1-objects-collection-bulk-set
      description: REST surface for v1-objects-collection-bulk-set.
      operations:
      - method: POST
        name: bulksetobjects
        description: Bulk set objects
        call: knock-bulk-operations.bulksetobjects
        with:
          collection: rest.collection
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/objects/{collection}/bulk/subscriptions/add
      name: v1-objects-collection-bulk-subscriptions-add
      description: REST surface for v1-objects-collection-bulk-subscriptions-add.
      operations:
      - method: POST
        name: bulkaddsubscriptions
        description: Bulk add subscriptions
        call: knock-bulk-operations.bulkaddsubscriptions
        with:
          collection: rest.collection
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/objects/{collection}/bulk/subscriptions/delete
      name: v1-objects-collection-bulk-subscriptions-delete
      description: REST surface for v1-objects-collection-bulk-subscriptions-delete.
      operations:
      - method: POST
        name: bulkdeletesubscriptions
        description: Bulk delete subscriptions
        call: knock-bulk-operations.bulkdeletesubscriptions
        with:
          collection: rest.collection
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/schedules/bulk/create
      name: v1-schedules-bulk-create
      description: REST surface for v1-schedules-bulk-create.
      operations:
      - method: POST
        name: bulkcreateschedules
        description: Create schedules in bulk
        call: knock-bulk-operations.bulkcreateschedules
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/tenants/bulk/delete
      name: v1-tenants-bulk-delete
      description: REST surface for v1-tenants-bulk-delete.
      operations:
      - method: POST
        name: bulkdeletetenants
        description: Bulk delete tenants
        call: knock-bulk-operations.bulkdeletetenants
        with:
          tenant_ids[]: rest.tenant_ids[]
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/tenants/bulk/set
      name: v1-tenants-bulk-set
      description: REST surface for v1-tenants-bulk-set.
      operations:
      - method: POST
        name: bulksettenants
        description: Bulk set tenants
        call: knock-bulk-operations.bulksettenants
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/users/bulk/delete
      name: v1-users-bulk-delete
      description: REST surface for v1-users-bulk-delete.
      operations:
      - method: POST
        name: bulkdeleteusers
        description: Bulk delete users
        call: knock-bulk-operations.bulkdeleteusers
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/users/bulk/identify
      name: v1-users-bulk-identify
      description: REST surface for v1-users-bulk-identify.
      operations:
      - method: POST
        name: bulkidentifyusers
        description: Bulk identify users
        call: knock-bulk-operations.bulkidentifyusers
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/users/bulk/preferences
      name: v1-users-bulk-preferences
      description: REST surface for v1-users-bulk-preferences.
      operations:
      - method: POST
        name: bulksetuserpreferences
        description: Bulk set preferences
        call: knock-bulk-operations.bulksetuserpreferences
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: knock-bulk-operations-mcp
    port: 9090
    transport: http
    description: MCP adapter for Knock API — Bulk operations. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: get-bulk-operation
      description: Get bulk operation
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: knock-bulk-operations.getbulkoperation
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-update-message-statuses-channel
      description: Bulk update message statuses for channel
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkupdatemessagesforchannel
      with:
        channel_id: tools.channel_id
        action: tools.action
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-delete-objects
      description: Bulk delete objects
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkdeleteobjects
      with:
        collection: tools.collection
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-set-objects
      description: Bulk set objects
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulksetobjects
      with:
        collection: tools.collection
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-add-subscriptions
      description: Bulk add subscriptions
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkaddsubscriptions
      with:
        collection: tools.collection
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-delete-subscriptions
      description: Bulk delete subscriptions
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkdeletesubscriptions
      with:
        collection: tools.collection
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-schedules-bulk
      description: Create schedules in bulk
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkcreateschedules
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-delete-tenants
      description: Bulk delete tenants
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkdeletetenants
      with:
        tenant_ids[]: tools.tenant_ids[]
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-set-tenants
      description: Bulk set tenants
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulksettenants
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-delete-users
      description: Bulk delete users
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkdeleteusers
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-identify-users
      description: Bulk identify users
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulkidentifyusers
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-set-preferences
      description: Bulk set preferences
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: knock-bulk-operations.bulksetuserpreferences
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.