ScanSource · Capability

ScanSource Product API — Products

ScanSource Product API — Products. 2 operations. Lead operation: Get Product Detail. Self-contained Naftiko capability covering one Scansource business surface.

Run with Naftiko ScansourceProducts

What You Can Do

GET
Getproductdetail — Get Product Detail
/v1/product/detail
GET
Searchproducts — Search Products
/v1/product/search

MCP Tools

get-product-detail

Get Product Detail

read-only idempotent
search-products

Search Products

read-only idempotent

Capability Spec

product-products.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: ScanSource Product API — Products
  description: 'ScanSource Product API — Products. 2 operations. Lead operation: Get Product Detail. Self-contained Naftiko
    capability covering one Scansource business surface.'
  tags:
  - Scansource
  - Products
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SCANSOURCE_API_KEY: SCANSOURCE_API_KEY
capability:
  consumes:
  - type: http
    namespace: product-products
    baseUri: https://services.scansource.com/api
    description: ScanSource Product API — Products business capability. Self-contained, no shared references.
    resources:
    - name: product-detail
      path: /product/detail
      operations:
      - name: getproductdetail
        method: GET
        description: Get Product Detail
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: customerNumber
          in: query
          type: string
          description: Customer account number for the requesting partner
          required: true
        - name: itemNumber
          in: query
          type: string
          description: Item number to retrieve details for
          required: true
        - name: partNumberType
          in: query
          type: string
          description: Type of part number provided
        - name: region
          in: query
          type: string
          description: Geographic region for pricing
    - name: product-search
      path: /product/search
      operations:
      - name: searchproducts
        method: GET
        description: Search Products
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: customerNumber
          in: query
          type: string
          description: Customer account number for the requesting partner
          required: true
        - name: itemNumber
          in: query
          type: string
          description: Specific item number to search for
        - name: partNumberType
          in: query
          type: string
          description: Type of part number (manufacturer, vendor, etc.)
        - name: manufacturer
          in: query
          type: string
          description: Filter by manufacturer name
        - name: catalogName
          in: query
          type: string
          description: Filter by catalog name
        - name: categoryPath
          in: query
          type: string
          description: Filter by category path
        - name: includeObsolete
          in: query
          type: boolean
          description: Include discontinued/obsolete products in results
        - name: searchText
          in: query
          type: string
          description: Free-text search string
        - name: useAndOperator
          in: query
          type: boolean
          description: Use AND operator between search terms (vs OR)
        - name: region
          in: query
          type: string
          description: Geographic region for the search
        - name: page
          in: query
          type: integer
          description: Page number for pagination
        - name: pageSize
          in: query
          type: integer
          description: Number of results per page
    authentication:
      type: apikey
      key: Ocp-Apim-Subscription-Key
      value: '{{env.SCANSOURCE_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: product-products-rest
    port: 8080
    description: REST adapter for ScanSource Product API — Products. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/product/detail
      name: product-detail
      description: REST surface for product-detail.
      operations:
      - method: GET
        name: getproductdetail
        description: Get Product Detail
        call: product-products.getproductdetail
        with:
          customerNumber: rest.customerNumber
          itemNumber: rest.itemNumber
          partNumberType: rest.partNumberType
          region: rest.region
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/product/search
      name: product-search
      description: REST surface for product-search.
      operations:
      - method: GET
        name: searchproducts
        description: Search Products
        call: product-products.searchproducts
        with:
          customerNumber: rest.customerNumber
          itemNumber: rest.itemNumber
          partNumberType: rest.partNumberType
          manufacturer: rest.manufacturer
          catalogName: rest.catalogName
          categoryPath: rest.categoryPath
          includeObsolete: rest.includeObsolete
          searchText: rest.searchText
          useAndOperator: rest.useAndOperator
          region: rest.region
          page: rest.page
          pageSize: rest.pageSize
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: product-products-mcp
    port: 9090
    transport: http
    description: MCP adapter for ScanSource Product API — Products. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: get-product-detail
      description: Get Product Detail
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: product-products.getproductdetail
      with:
        customerNumber: tools.customerNumber
        itemNumber: tools.itemNumber
        partNumberType: tools.partNumberType
        region: tools.region
      outputParameters:
      - type: object
        mapping: $.
    - name: search-products
      description: Search Products
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: product-products.searchproducts
      with:
        customerNumber: tools.customerNumber
        itemNumber: tools.itemNumber
        partNumberType: tools.partNumberType
        manufacturer: tools.manufacturer
        catalogName: tools.catalogName
        categoryPath: tools.categoryPath
        includeObsolete: tools.includeObsolete
        searchText: tools.searchText
        useAndOperator: tools.useAndOperator
        region: tools.region
        page: tools.page
        pageSize: tools.pageSize
      outputParameters:
      - type: object
        mapping: $.