naftiko: 1.0.0-alpha2 info: label: VTex Legacy Search API — CrossSelling description: 'VTex Legacy Search API — CrossSelling. 7 operations. Lead operation: VTex Get Product Search of Accessories. Self-contained Naftiko capability covering one Vtex business surface.' tags: - Vtex - CrossSelling created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: VTEX_API_KEY: VTEX_API_KEY capability: consumes: - type: http namespace: legacy-search-crossselling baseUri: https://{accountName}.{environment}.com.br description: VTex Legacy Search API — CrossSelling business capability. Self-contained, no shared references. resources: - name: api-catalog_system-pub-products-crossselling-accessories-productId path: /api/catalog_system/pub/products/crossselling/accessories/{productId} operations: - name: productsearchaccessories method: GET description: VTex Get Product Search of Accessories outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand. required: true - name: Content-Type in: header type: string description: Describes the type of the content being sent. required: true - name: productId in: path type: integer description: Product's unique identifier required: true - name: api-catalog_system-pub-products-crossselling-showtogether-productId path: /api/catalog_system/pub/products/crossselling/showtogether/{productId} operations: - name: productsearchshowtogether method: GET description: VTex Get Product Search of Show Together outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand. required: true - name: Content-Type in: header type: string description: Describes the type of the content being sent. required: true - name: productId in: path type: integer description: Product's unique identifier required: true - name: api-catalog_system-pub-products-crossselling-similars-productId path: /api/catalog_system/pub/products/crossselling/similars/{productId} operations: - name: productsearchsimilars method: GET description: VTex Get Product Search of Similars outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand. required: true - name: Content-Type in: header type: string description: Describes the type of the content being sent. required: true - name: productId in: path type: integer description: Product's unique identifier required: true - name: api-catalog_system-pub-products-crossselling-suggestions-productId path: /api/catalog_system/pub/products/crossselling/suggestions/{productId} operations: - name: productsearchsuggestions method: GET description: VTex Get Product Search of Suggestions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand. required: true - name: Content-Type in: header type: string description: Describes the type of the content being sent. required: true - name: productId in: path type: integer description: Product's unique identifier required: true - name: api-catalog_system-pub-products-crossselling-whoboughtalsobought-productId path: /api/catalog_system/pub/products/crossselling/whoboughtalsobought/{productId} operations: - name: productsearchwhoboughtalsobought method: GET description: VTex Get Product Search of Who Bought Also Bought outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand. required: true - name: Content-Type in: header type: string description: Describes the type of the content being sent. required: true - name: productId in: path type: string description: Product unique identifier. required: true - name: api-catalog_system-pub-products-crossselling-whosawalsobought-productId path: /api/catalog_system/pub/products/crossselling/whosawalsobought/{productId} operations: - name: productsearchwhosawalsobought method: GET description: VTex Get Product Search of Who Saw Also Bought outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand. required: true - name: Content-Type in: header type: string description: Describes the type of the content being sent. required: true - name: productId in: path type: string description: Product unique identifier. required: true - name: api-catalog_system-pub-products-crossselling-whosawalsosaw-productId path: /api/catalog_system/pub/products/crossselling/whosawalsosaw/{productId} operations: - name: productsearchwhosawalsosaw method: GET description: VTex Get Product Search of Who Saw Also Saw outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: Accept in: header type: string description: HTTP Client Negotiation Accept Header. Indicates the types of responses the client can understand. required: true - name: Content-Type in: header type: string description: Describes the type of the content being sent. required: true - name: productId in: path type: integer description: Product unique identifier. required: true authentication: type: apikey key: X-VTEX-API-AppKey value: '{{env.VTEX_API_KEY}}' placement: header exposes: - type: rest namespace: legacy-search-crossselling-rest port: 8080 description: REST adapter for VTex Legacy Search API — CrossSelling. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/catalog-system/pub/products/crossselling/accessories/{productid} name: api-catalog-system-pub-products-crossselling-accessories-productid description: REST surface for api-catalog_system-pub-products-crossselling-accessories-productId. operations: - method: GET name: productsearchaccessories description: VTex Get Product Search of Accessories call: legacy-search-crossselling.productsearchaccessories with: Accept: rest.Accept Content-Type: rest.Content-Type productId: rest.productId outputParameters: - type: object mapping: $. - path: /v1/api/catalog-system/pub/products/crossselling/showtogether/{productid} name: api-catalog-system-pub-products-crossselling-showtogether-productid description: REST surface for api-catalog_system-pub-products-crossselling-showtogether-productId. operations: - method: GET name: productsearchshowtogether description: VTex Get Product Search of Show Together call: legacy-search-crossselling.productsearchshowtogether with: Accept: rest.Accept Content-Type: rest.Content-Type productId: rest.productId outputParameters: - type: object mapping: $. - path: /v1/api/catalog-system/pub/products/crossselling/similars/{productid} name: api-catalog-system-pub-products-crossselling-similars-productid description: REST surface for api-catalog_system-pub-products-crossselling-similars-productId. operations: - method: GET name: productsearchsimilars description: VTex Get Product Search of Similars call: legacy-search-crossselling.productsearchsimilars with: Accept: rest.Accept Content-Type: rest.Content-Type productId: rest.productId outputParameters: - type: object mapping: $. - path: /v1/api/catalog-system/pub/products/crossselling/suggestions/{productid} name: api-catalog-system-pub-products-crossselling-suggestions-productid description: REST surface for api-catalog_system-pub-products-crossselling-suggestions-productId. operations: - method: GET name: productsearchsuggestions description: VTex Get Product Search of Suggestions call: legacy-search-crossselling.productsearchsuggestions with: Accept: rest.Accept Content-Type: rest.Content-Type productId: rest.productId outputParameters: - type: object mapping: $. - path: /v1/api/catalog-system/pub/products/crossselling/whoboughtalsobought/{productid} name: api-catalog-system-pub-products-crossselling-whoboughtalsobought-productid description: REST surface for api-catalog_system-pub-products-crossselling-whoboughtalsobought-productId. operations: - method: GET name: productsearchwhoboughtalsobought description: VTex Get Product Search of Who Bought Also Bought call: legacy-search-crossselling.productsearchwhoboughtalsobought with: Accept: rest.Accept Content-Type: rest.Content-Type productId: rest.productId outputParameters: - type: object mapping: $. - path: /v1/api/catalog-system/pub/products/crossselling/whosawalsobought/{productid} name: api-catalog-system-pub-products-crossselling-whosawalsobought-productid description: REST surface for api-catalog_system-pub-products-crossselling-whosawalsobought-productId. operations: - method: GET name: productsearchwhosawalsobought description: VTex Get Product Search of Who Saw Also Bought call: legacy-search-crossselling.productsearchwhosawalsobought with: Accept: rest.Accept Content-Type: rest.Content-Type productId: rest.productId outputParameters: - type: object mapping: $. - path: /v1/api/catalog-system/pub/products/crossselling/whosawalsosaw/{productid} name: api-catalog-system-pub-products-crossselling-whosawalsosaw-productid description: REST surface for api-catalog_system-pub-products-crossselling-whosawalsosaw-productId. operations: - method: GET name: productsearchwhosawalsosaw description: VTex Get Product Search of Who Saw Also Saw call: legacy-search-crossselling.productsearchwhosawalsosaw with: Accept: rest.Accept Content-Type: rest.Content-Type productId: rest.productId outputParameters: - type: object mapping: $. - type: mcp namespace: legacy-search-crossselling-mcp port: 9090 transport: http description: MCP adapter for VTex Legacy Search API — CrossSelling. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: vtex-get-product-search-accessories description: VTex Get Product Search of Accessories hints: readOnly: true destructive: false idempotent: true call: legacy-search-crossselling.productsearchaccessories with: Accept: tools.Accept Content-Type: tools.Content-Type productId: tools.productId outputParameters: - type: object mapping: $. - name: vtex-get-product-search-show description: VTex Get Product Search of Show Together hints: readOnly: true destructive: false idempotent: true call: legacy-search-crossselling.productsearchshowtogether with: Accept: tools.Accept Content-Type: tools.Content-Type productId: tools.productId outputParameters: - type: object mapping: $. - name: vtex-get-product-search-similars description: VTex Get Product Search of Similars hints: readOnly: true destructive: false idempotent: true call: legacy-search-crossselling.productsearchsimilars with: Accept: tools.Accept Content-Type: tools.Content-Type productId: tools.productId outputParameters: - type: object mapping: $. - name: vtex-get-product-search-suggestions description: VTex Get Product Search of Suggestions hints: readOnly: true destructive: false idempotent: true call: legacy-search-crossselling.productsearchsuggestions with: Accept: tools.Accept Content-Type: tools.Content-Type productId: tools.productId outputParameters: - type: object mapping: $. - name: vtex-get-product-search-who description: VTex Get Product Search of Who Bought Also Bought hints: readOnly: true destructive: false idempotent: true call: legacy-search-crossselling.productsearchwhoboughtalsobought with: Accept: tools.Accept Content-Type: tools.Content-Type productId: tools.productId outputParameters: - type: object mapping: $. - name: vtex-get-product-search-who-2 description: VTex Get Product Search of Who Saw Also Bought hints: readOnly: true destructive: false idempotent: true call: legacy-search-crossselling.productsearchwhosawalsobought with: Accept: tools.Accept Content-Type: tools.Content-Type productId: tools.productId outputParameters: - type: object mapping: $. - name: vtex-get-product-search-who-3 description: VTex Get Product Search of Who Saw Also Saw hints: readOnly: true destructive: false idempotent: true call: legacy-search-crossselling.productsearchwhosawalsosaw with: Accept: tools.Accept Content-Type: tools.Content-Type productId: tools.productId outputParameters: - type: object mapping: $.