naftiko: 1.0.0-alpha2 info: label: Pipedrive API v1 — Products description: 'Pipedrive API v1 — Products. 6 operations. Lead operation: Get deals where a product is attached to. Self-contained Naftiko capability covering one Pipedrive business surface.' tags: - Pipedrive - Products created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PIPEDRIVE_API_KEY: PIPEDRIVE_API_KEY capability: consumes: - type: http namespace: v1-products baseUri: https://api.pipedrive.com/v1 description: Pipedrive API v1 — Products business capability. Self-contained, no shared references. resources: - name: products-id-deals path: /products/{id}/deals operations: - name: getproductdeals method: GET description: Get deals where a product is attached to outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the product required: true - name: start in: query type: integer description: Pagination start - name: limit in: query type: integer description: Items shown per page - name: status in: query type: string description: 'Only fetch deals with a specific status. If omitted, all not deleted deals are returned. If set to deleted, deals that have been deleted up to 30 days ago will ' - name: products-id-files path: /products/{id}/files operations: - name: getproductfiles method: GET description: List files attached to a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the product required: true - name: start in: query type: integer description: Pagination start - name: limit in: query type: integer description: Items shown per page. Please note that a maximum value of 100 is allowed. - name: sort in: query type: string description: 'Supported fields: `id`, `update_time`' - name: products-id-followers path: /products/{id}/followers operations: - name: getproductfollowers method: GET description: List followers of a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the product required: true - name: start in: query type: integer description: Pagination start - name: limit in: query type: integer description: Items shown per page - name: addproductfollower method: POST description: Add a follower to a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the product required: true - name: body in: body type: object description: Request body (JSON). required: false - name: products-id-followers-follower_id path: /products/{id}/followers/{follower_id} operations: - name: deleteproductfollower method: DELETE description: Delete a follower from a product outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the product required: true - name: follower_id in: path type: integer description: The ID of the relationship between the follower and the product required: true - name: products-id-permittedUsers path: /products/{id}/permittedUsers operations: - name: getproductusers method: GET description: List permitted users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The ID of the product required: true authentication: type: bearer token: '{{env.PIPEDRIVE_API_KEY}}' exposes: - type: rest namespace: v1-products-rest port: 8080 description: REST adapter for Pipedrive API v1 — Products. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/products/{id}/deals name: products-id-deals description: REST surface for products-id-deals. operations: - method: GET name: getproductdeals description: Get deals where a product is attached to call: v1-products.getproductdeals with: id: rest.id start: rest.start limit: rest.limit status: rest.status outputParameters: - type: object mapping: $. - path: /v1/products/{id}/files name: products-id-files description: REST surface for products-id-files. operations: - method: GET name: getproductfiles description: List files attached to a product call: v1-products.getproductfiles with: id: rest.id start: rest.start limit: rest.limit sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/products/{id}/followers name: products-id-followers description: REST surface for products-id-followers. operations: - method: GET name: getproductfollowers description: List followers of a product call: v1-products.getproductfollowers with: id: rest.id start: rest.start limit: rest.limit outputParameters: - type: object mapping: $. - method: POST name: addproductfollower description: Add a follower to a product call: v1-products.addproductfollower with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/products/{id}/followers/{follower-id} name: products-id-followers-follower-id description: REST surface for products-id-followers-follower_id. operations: - method: DELETE name: deleteproductfollower description: Delete a follower from a product call: v1-products.deleteproductfollower with: id: rest.id follower_id: rest.follower_id outputParameters: - type: object mapping: $. - path: /v1/products/{id}/permittedusers name: products-id-permittedusers description: REST surface for products-id-permittedUsers. operations: - method: GET name: getproductusers description: List permitted users call: v1-products.getproductusers with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: v1-products-mcp port: 9090 transport: http description: MCP adapter for Pipedrive API v1 — Products. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-deals-where-product-is description: Get deals where a product is attached to hints: readOnly: true destructive: false idempotent: true call: v1-products.getproductdeals with: id: tools.id start: tools.start limit: tools.limit status: tools.status outputParameters: - type: object mapping: $. - name: list-files-attached-product description: List files attached to a product hints: readOnly: true destructive: false idempotent: true call: v1-products.getproductfiles with: id: tools.id start: tools.start limit: tools.limit sort: tools.sort outputParameters: - type: object mapping: $. - name: list-followers-product description: List followers of a product hints: readOnly: true destructive: false idempotent: true call: v1-products.getproductfollowers with: id: tools.id start: tools.start limit: tools.limit outputParameters: - type: object mapping: $. - name: add-follower-product description: Add a follower to a product hints: readOnly: false destructive: false idempotent: false call: v1-products.addproductfollower with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: delete-follower-product description: Delete a follower from a product hints: readOnly: false destructive: true idempotent: true call: v1-products.deleteproductfollower with: id: tools.id follower_id: tools.follower_id outputParameters: - type: object mapping: $. - name: list-permitted-users description: List permitted users hints: readOnly: true destructive: false idempotent: true call: v1-products.getproductusers with: id: tools.id outputParameters: - type: object mapping: $.