naftiko: 1.0.0-alpha2 info: label: Knock API — Feeds description: 'Knock API — Feeds. 2 operations. Lead operation: List feed items. Self-contained Naftiko capability covering one Knock business surface.' tags: - Knock - Feeds created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KNOCK_API_KEY: KNOCK_API_KEY capability: consumes: - type: http namespace: knock-feeds baseUri: https://api.knock.app description: Knock API — Feeds business capability. Self-contained, no shared references. resources: - 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 authentication: type: bearer token: '{{env.KNOCK_API_KEY}}' exposes: - type: rest namespace: knock-feeds-rest port: 8080 description: REST adapter for Knock API — Feeds. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - 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-feeds.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: getuserinappfeedsettings description: Get feed settings call: knock-feeds.getuserinappfeedsettings with: user_id: rest.user_id id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: knock-feeds-mcp port: 9090 transport: http description: MCP adapter for Knock API — Feeds. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-feed-items description: List feed items hints: readOnly: true destructive: false idempotent: true call: knock-feeds.listuserinappfeeditems with: user_id: tools.user_id id: tools.id status: tools.status source: tools.source tenant: tools.tenant has_tenant: tools.has_tenant workflow_categories[]: tools.workflow_categories[] archived: tools.archived trigger_data: tools.trigger_data locale: tools.locale exclude: tools.exclude mode: tools.mode after: tools.after before: tools.before page_size: tools.page_size inserted_at.gt: tools.inserted_at.gt inserted_at.gte: tools.inserted_at.gte inserted_at.lt: tools.inserted_at.lt inserted_at.lte: tools.inserted_at.lte outputParameters: - type: object mapping: $. - name: get-feed-settings description: Get feed settings hints: readOnly: true destructive: false idempotent: true call: knock-feeds.getuserinappfeedsettings with: user_id: tools.user_id id: tools.id outputParameters: - type: object mapping: $.