Knock · Capability

Knock API — Users

Knock API — Users. 35 operations. Lead operation: List users. Self-contained Naftiko capability covering one Knock business surface.

Run with Naftiko KnockUsers

What You Can Do

GET
Listusers — List users
/v1/v1/users
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
DELETE
Deleteuser — Delete user
/v1/v1/users/{user-id}
GET
Getuser — Get user
/v1/v1/users/{user-id}
PUT
Identifyuser — Identify user
/v1/v1/users/{user-id}
DELETE
Unsetuserchanneldata — Unset channel data
/v1/v1/users/{user-id}/channel-data/{channel-id}
GET
Getuserchanneldata — Get channel data
/v1/v1/users/{user-id}/channel-data/{channel-id}
PUT
Setuserchanneldata — Set channel data
/v1/v1/users/{user-id}/channel-data/{channel-id}
GET
Listuserinappfeeditems — List feed items
/v1/v1/users/{user-id}/feeds/{id}
GET
Getuserinappfeedsettings — Get feed settings
/v1/v1/users/{user-id}/feeds/{id}/settings
PUT
Resetuserguideengagement — Reset guide engagement
/v1/v1/users/{user-id}/guides/engagements/reset
DELETE
Markuserguideasunarchived — Mark guide as unarchived
/v1/v1/users/{user-id}/guides/messages/archived
PUT
Markuserguideasarchived2 — Mark guide as archived
/v1/v1/users/{user-id}/guides/messages/archived
PUT
Markuserguideasinteracted2 — Mark guide as interacted
/v1/v1/users/{user-id}/guides/messages/interacted
PUT
Markuserguideasseen2 — Mark guide as seen
/v1/v1/users/{user-id}/guides/messages/seen
PUT
Markuserguideasarchived — Mark guide as archived
/v1/v1/users/{user-id}/guides/messages/{message-id}/archived
PUT
Markuserguideasinteracted — Mark guide as interacted
/v1/v1/users/{user-id}/guides/messages/{message-id}/interacted
PUT
Markuserguideasseen — Mark guide as seen
/v1/v1/users/{user-id}/guides/messages/{message-id}/seen
GET
Listuserguides — List guides
/v1/v1/users/{user-id}/guides/{channel-id}
POST
Mergeuser — Merge users
/v1/v1/users/{user-id}/merge
GET
Listmessagesforuser — List user messages
/v1/v1/users/{user-id}/messages
GET
Listuserpreferencesets — List user preference sets
/v1/v1/users/{user-id}/preferences
DELETE
Deleteuserpreferenceset — Delete user preference set
/v1/v1/users/{user-id}/preferences/{id}
GET
Getuserpreferenceset — Get user preference set
/v1/v1/users/{user-id}/preferences/{id}
PUT
Updateuserpreferenceset — Update user preference set
/v1/v1/users/{user-id}/preferences/{id}
PUT
Updateuserpreferencecategories — Update categories in user preference set
/v1/v1/users/{user-id}/preferences/{id}/categories
PUT
Updateuserpreferencecategory — Update category in user preference set
/v1/v1/users/{user-id}/preferences/{id}/categories/{key}
PUT
Updateuserpreferencechanneltypes — Update channel types in preference set
/v1/v1/users/{user-id}/preferences/{id}/channel-types
PUT
Updateuserpreferencechanneltype — Update channel type in preference set
/v1/v1/users/{user-id}/preferences/{id}/channel-types/{type}
PUT
Updateuserpreferenceworkflows — Update workflows in preference set
/v1/v1/users/{user-id}/preferences/{id}/workflows
PUT
Updateuserpreferenceworkflow — Update workflow in user preference set
/v1/v1/users/{user-id}/preferences/{id}/workflows/{key}
GET
Listuserschedules — List user schedules
/v1/v1/users/{user-id}/schedules
GET
Listsubscriptionsforuser — List user subscriptions
/v1/v1/users/{user-id}/subscriptions

MCP Tools

list-users

List users

read-only idempotent
bulk-delete-users

Bulk delete users

bulk-identify-users

Bulk identify users

bulk-set-preferences

Bulk set preferences

delete-user

Delete user

idempotent
get-user

Get user

read-only idempotent
identify-user

Identify user

idempotent
unset-channel-data

Unset channel data

idempotent
get-channel-data

Get channel data

read-only idempotent
set-channel-data

Set channel data

idempotent
list-feed-items

List feed items

read-only idempotent
get-feed-settings

Get feed settings

read-only idempotent
reset-guide-engagement

Reset guide engagement

idempotent
mark-guide-unarchived

Mark guide as unarchived

idempotent
mark-guide-archived

Mark guide as archived

idempotent
mark-guide-interacted

Mark guide as interacted

idempotent
mark-guide-seen

Mark guide as seen

idempotent
mark-guide-archived-2

Mark guide as archived

idempotent
mark-guide-interacted-2

Mark guide as interacted

idempotent
mark-guide-seen-2

Mark guide as seen

idempotent
list-guides

List guides

read-only idempotent
merge-users

Merge users

list-user-messages

List user messages

read-only idempotent
list-user-preference-sets

List user preference sets

read-only idempotent
delete-user-preference-set

Delete user preference set

idempotent
get-user-preference-set

Get user preference set

read-only idempotent
update-user-preference-set

Update user preference set

idempotent
update-categories-user-preference-set

Update categories in user preference set

idempotent
update-category-user-preference-set

Update category in user preference set

idempotent
update-channel-types-preference-set

Update channel types in preference set

idempotent
update-channel-type-preference-set

Update channel type in preference set

idempotent
update-workflows-preference-set

Update workflows in preference set

idempotent
update-workflow-user-preference-set

Update workflow in user preference set

idempotent
list-user-schedules

List user schedules

read-only idempotent
list-user-subscriptions

List user subscriptions

read-only idempotent

Capability Spec

knock-users.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Knock API — Users
  description: 'Knock API — Users. 35 operations. Lead operation: List users. Self-contained Naftiko capability covering one
    Knock business surface.'
  tags:
  - Knock
  - Users
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    KNOCK_API_KEY: KNOCK_API_KEY
capability:
  consumes:
  - type: http
    namespace: knock-users
    baseUri: https://api.knock.app
    description: Knock API — Users business capability. Self-contained, no shared references.
    resources:
    - name: v1-users
      path: /v1/users
      operations:
      - name: listusers
        method: GET
        description: List users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: include[]
          in: query
          type: array
          description: Associated resources to include in the response.
        - name: after
          in: query
          type: string
          description: The cursor to fetch entries after.
        - name: before
          in: query
          type: string
          description: The cursor to fetch entries before.
        - name: page_size
          in: query
          type: integer
          description: The number of items per page (defaults to 50).
    - 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
    - name: v1-users-user_id
      path: /v1/users/{user_id}
      operations:
      - name: deleteuser
        method: DELETE
        description: Delete user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The ID of the user to delete.
          required: true
      - name: getuser
        method: GET
        description: Get user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The ID of the user to retrieve.
          required: true
      - name: identifyuser
        method: PUT
        description: Identify user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-channel_data-channel_id
      path: /v1/users/{user_id}/channel_data/{channel_id}
      operations:
      - name: unsetuserchanneldata
        method: DELETE
        description: Unset channel data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: channel_id
          in: path
          type: string
          description: The unique identifier for the channel.
          required: true
      - name: getuserchanneldata
        method: GET
        description: Get channel data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: channel_id
          in: path
          type: string
          description: The unique identifier for the channel.
          required: true
      - name: setuserchanneldata
        method: PUT
        description: Set channel data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: channel_id
          in: path
          type: string
          description: The unique identifier for the channel.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-feeds-id
      path: /v1/users/{user_id}/feeds/{id}
      operations:
      - name: listuserinappfeeditems
        method: GET
        description: List feed items
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: id
          in: path
          type: string
          description: The unique identifier for the channel.
          required: true
        - name: status
          in: query
          type: string
          description: The status of the feed items.
        - name: source
          in: query
          type: string
          description: The workflow key associated with the message in the feed.
        - name: tenant
          in: query
          type: string
          description: The tenant associated with the feed items.
        - name: has_tenant
          in: query
          type: boolean
          description: Whether the feed items have a tenant.
        - name: workflow_categories[]
          in: query
          type: array
          description: The workflow categories of the feed items.
        - name: archived
          in: query
          type: string
          description: The archived status of the feed items.
        - name: trigger_data
          in: query
          type: string
          description: The trigger data of the feed items (as a JSON string).
        - name: locale
          in: query
          type: string
          description: The locale to render the feed items in. Must be in the IETF 5646 format (e.g. `en-US`). When not provided,
            will default to the locale that the feed items were r
        - name: exclude
          in: query
          type: string
          description: Comma-separated list of field paths to exclude from the response. Use dot notation for nested fields
            (e.g., `entries.archived_at`). Limited to 3 levels deep.
        - name: mode
          in: query
          type: string
          description: The mode to render the feed items in. Can be `compact` or `rich`. Defaults to `rich`. When `mode` is
            `compact`, feed items will not have `activities` and `total
        - name: after
          in: query
          type: string
          description: The cursor to fetch entries after.
        - name: before
          in: query
          type: string
          description: The cursor to fetch entries before.
        - name: page_size
          in: query
          type: integer
          description: The number of items per page (defaults to 50).
        - name: inserted_at.gt
          in: query
          type: string
          description: Limits the results to items inserted after the given date.
        - name: inserted_at.gte
          in: query
          type: string
          description: Limits the results to items inserted after or on the given date.
        - name: inserted_at.lt
          in: query
          type: string
          description: Limits the results to items inserted before the given date.
        - name: inserted_at.lte
          in: query
          type: string
          description: Limits the results to items inserted before or on the given date.
    - name: v1-users-user_id-feeds-id-settings
      path: /v1/users/{user_id}/feeds/{id}/settings
      operations:
      - name: getuserinappfeedsettings
        method: GET
        description: Get feed settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: id
          in: path
          type: string
          description: The unique identifier for the channel.
          required: true
    - name: v1-users-user_id-guides-engagements-reset
      path: /v1/users/{user_id}/guides/engagements/reset
      operations:
      - name: resetuserguideengagement
        method: PUT
        description: Reset guide engagement
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-guides-messages-archived
      path: /v1/users/{user_id}/guides/messages/archived
      operations:
      - name: markuserguideasunarchived
        method: DELETE
        description: Mark guide as unarchived
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: markuserguideasarchived2
        method: PUT
        description: Mark guide as archived
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-guides-messages-interacted
      path: /v1/users/{user_id}/guides/messages/interacted
      operations:
      - name: markuserguideasinteracted2
        method: PUT
        description: Mark guide as interacted
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-guides-messages-seen
      path: /v1/users/{user_id}/guides/messages/seen
      operations:
      - name: markuserguideasseen2
        method: PUT
        description: Mark guide as seen
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-guides-messages-message_id-archived
      path: /v1/users/{user_id}/guides/messages/{message_id}/archived
      operations:
      - name: markuserguideasarchived
        method: PUT
        description: Mark guide as archived
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-guides-messages-message_id-interacted
      path: /v1/users/{user_id}/guides/messages/{message_id}/interacted
      operations:
      - name: markuserguideasinteracted
        method: PUT
        description: Mark guide as interacted
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-guides-messages-message_id-seen
      path: /v1/users/{user_id}/guides/messages/{message_id}/seen
      operations:
      - name: markuserguideasseen
        method: PUT
        description: Mark guide as seen
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-guides-channel_id
      path: /v1/users/{user_id}/guides/{channel_id}
      operations:
      - name: listuserguides
        method: GET
        description: List guides
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: channel_id
          in: path
          type: string
          description: The unique identifier for the channel.
          required: true
        - name: tenant
          in: query
          type: string
          description: The tenant ID to use for targeting and rendering guides.
        - name: data
          in: query
          type: string
          description: The data (JSON encoded object) to use for targeting and rendering guides.
        - name: type
          in: query
          type: string
          description: The type of guides to filter by.
    - name: v1-users-user_id-merge
      path: /v1/users/{user_id}/merge
      operations:
      - name: mergeuser
        method: POST
        description: Merge users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The id of the user to merge into.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-messages
      path: /v1/users/{user_id}/messages
      operations:
      - name: listmessagesforuser
        method: GET
        description: List user messages
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: after
          in: query
          type: string
          description: The cursor to fetch entries after.
        - name: before
          in: query
          type: string
          description: The cursor to fetch entries before.
        - name: page_size
          in: query
          type: integer
          description: The number of items per page (defaults to 50).
        - name: tenant
          in: query
          type: string
          description: Limits the results to items with the corresponding tenant.
        - name: channel_id
          in: query
          type: string
          description: Limits the results to items with the corresponding channel ID.
        - name: status[]
          in: query
          type: array
          description: Limits the results to messages with the given delivery status.
        - name: engagement_status[]
          in: query
          type: array
          description: Limits the results to messages with the given engagement status.
        - name: message_ids[]
          in: query
          type: array
          description: 'Limits the results to only the message IDs given (max 50). Note: when using this option, the results
            will be subject to any other filters applied to the query.'
        - name: workflow_categories[]
          in: query
          type: array
          description: Limits the results to messages related to any of the provided categories.
        - name: source
          in: query
          type: string
          description: Limits the results to messages triggered by the given workflow key.
        - name: workflow_run_id
          in: query
          type: string
          description: Limits the results to messages associated with the top-level workflow run ID returned by the workflow
            trigger request.
        - name: workflow_recipient_run_id
          in: query
          type: string
          description: Limits the results to messages for a specific recipient's workflow run.
        - name: trigger_data
          in: query
          type: string
          description: Limits the results to only messages that were generated with the given data. See [trigger data filtering](/api-reference/overview/trigger-data-filtering)
            for mo
        - name: inserted_at.gt
          in: query
          type: string
          description: Limits the results to items inserted after the given date.
        - name: inserted_at.gte
          in: query
          type: string
          description: Limits the results to items inserted after or on the given date.
        - name: inserted_at.lt
          in: query
          type: string
          description: Limits the results to items inserted before the given date.
        - name: inserted_at.lte
          in: query
          type: string
          description: Limits the results to items inserted before or on the given date.
        - name: user_id
          in: path
          type: string
          description: The user ID to list messages for.
          required: true
    - name: v1-users-user_id-preferences
      path: /v1/users/{user_id}/preferences
      operations:
      - name: listuserpreferencesets
        method: GET
        description: List user preference sets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
    - name: v1-users-user_id-preferences-id
      path: /v1/users/{user_id}/preferences/{id}
      operations:
      - name: deleteuserpreferenceset
        method: DELETE
        description: Delete user preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: id
          in: path
          type: string
          description: Unique identifier for the preference set.
          required: true
      - name: getuserpreferenceset
        method: GET
        description: Get user preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: id
          in: path
          type: string
          description: Unique identifier for the preference set.
          required: true
        - name: tenant
          in: query
          type: string
          description: The unique identifier for the tenant.
      - name: updateuserpreferenceset
        method: PUT
        description: Update user preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The unique identifier of the user.
          required: true
        - name: id
          in: path
          type: string
          description: Unique identifier for the preference set.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-users-user_id-preferences-id-categories
      path: /v1/users/{user_id}/preferences/{id}/categories
      operations:
      - name: updateuserpreferencecategories
        method: PUT
        description: Update categories in user preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-users-user_id-preferences-id-categories-key
      path: /v1/users/{user_id}/preferences/{id}/categories/{key}
      operations:
      - name: updateuserpreferencecategory
        method: PUT
        description: Update category in user preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-users-user_id-preferences-id-channel_types
      path: /v1/users/{user_id}/preferences/{id}/channel_types
      operations:
      - name: updateuserpreferencechanneltypes
        method: PUT
        description: Update channel types in preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-users-user_id-preferences-id-channel_types-type
      path: /v1/users/{user_id}/preferences/{id}/channel_types/{type}
      operations:
      - name: updateuserpreferencechanneltype
        method: PUT
        description: Update channel type in preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-users-user_id-preferences-id-workflows
      path: /v1/users/{user_id}/preferences/{id}/workflows
      operations:
      - name: updateuserpreferenceworkflows
        method: PUT
        description: Update workflows in preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-users-user_id-preferences-id-workflows-key
      path: /v1/users/{user_id}/preferences/{id}/workflows/{key}
      operations:
      - name: updateuserpreferenceworkflow
        method: PUT
        description: Update workflow in user preference set
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-users-user_id-schedules
      path: /v1/users/{user_id}/schedules
      operations:
      - name: listuserschedules
        method: GET
        description: List user schedules
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The user ID to list schedules for.
          required: true
        - name: workflow
          in: query
          type: string
          description: The workflow key to filter schedules for.
        - name: tenant
          in: query
          type: string
          description: The tenant ID to filter schedules for.
        - name: after
          in: query
          type: string
          description: The cursor to fetch entries after.
        - name: before
          in: query
          type: string
          description: The cursor to fetch entries before.
        - name: page_size
          in: query
          type: integer
          description: The number of items per page (defaults to 50).
    - name: v1-users-user_id-subscriptions
      path: /v1/users/{user_id}/subscriptions
      operations:
      - name: listsubscriptionsforuser
        method: GET
        description: List user subscriptions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          description: The user ID to list subscriptions for.
          required: true
        - name: include[]
          in: query
          type: array
          description: Associated resources to include in the response.
        - name: objects[]
          in: query
          type: array
          description: Only returns subscriptions for the specified object references.
        - name: after
          in: query
          type: string
          description: The cursor to fetch entries after.
        - name: before
          in: query
          type: string
          description: The cursor to fetch entries before.
        - name: page_size
          in: query
          type: integer
          description: The number of items per page (defaults to 50).
    authentication:
      type: bearer
      token: '{{env.KNOCK_API_KEY}}'
  exposes:
  - type: rest
    namespace: knock-users-rest
    port: 8080
    description: REST adapter for Knock API — Users. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/v1/users
      name: v1-users
      description: REST surface for v1-users.
      operations:
      - method: GET
        name: listusers
        description: List users
        call: knock-users.listusers
        with:
          include[]: rest.include[]
          after: rest.after
          before: rest.before
          page_size: rest.page_size
        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-users.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-users.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-users.bulksetuserpreferences
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/users/{user-id}
      name: v1-users-user-id
      description: REST surface for v1-users-user_id.
      operations:
      - method: DELETE
        name: deleteuser
        description: Delete user
        call: knock-users.deleteuser
        with:
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getuser
        description: Get user
        call: knock-users.getuser
        with:
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: identifyuser
        description: Identify user
        call: knock-users.identifyuser
        with:
          user_id: rest.user_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/users/{user-id}/channel-data/{channel-id}
      name: v1-users-user-id-channel-data-channel-id
      description: REST surface for v1-users-user_id-channel_data-channel_id.
      operations:
      - method: DELETE
        name: unsetuserchanneldata
        description: Unset channel data
        call: knock-users.unsetuserchanneldata
        with:
          user_id: rest.user_id
          channel_id: rest.channel_id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getuserchanneldata
        description: Get channel data
        call: knock-users.getuserchanneldata
        with:
          user_id: rest.user_id
          channel_id: rest.channel_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: setuserchanneldata
        description: Set channel data
        call: knock-users.setuserchanneldata
        with:
          user_id: rest.user_id
          channel_id: rest.channel_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/users/{user-id}/feeds/{id}
      name: v1-users-user-id-feeds-id
      description: REST surface for v1-users-user_id-feeds-id.
      operations:
      - method: GET
        name: listuserinappfeeditems
        description: List feed items
        call: knock-users.listuserinappfeeditems
        with:
          user_id: rest.user_id
          id: rest.id
          status: rest.status
          source: rest.source
          tenant: rest.tenant
          has_tenant: rest.has_tenant
          workflow_categories[]: rest.workflow_categories[]
          archived: rest.archived
          trigger_data: rest.trigger_data
          locale: rest.locale
          exclude: rest.exclude
          mode: rest.mode
          after: rest.after
          before: rest.before
          page_size: rest.page_size
          inserted_at.gt: rest.inserted_at.gt
          inserted_at.gte: rest.inserted_at.gte
          inserted_at.lt: rest.inserted_at.lt
          inserted_at.lte: rest.inserted_at.lte
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/users/{user-id}/feeds/{id}/settings
      name: v1-users-user-id-feeds-id-settings
      description: REST surface for v1-users-user_id-feeds-id-settings.
      operations:
      - method: GET
        name: getuser

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