D-Tools Subscribe Product Catalogs API

Allows an integration to subscribe to product catalogs published by SI users.

Operations 3

GET /Subscribe/ProductCatalogs Get product catalogs published by a SI user.
PUT /Subscribe/ProductCatalogs/MarkAsImported Mark a product catalog as imported for a given catalog id.
GET /Subscribe/ProductCatalogs/{id} Get a product catalog for a given catalog id.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/d-tools-subscribeproductcatalogs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

d-tools-subscribeproductcatalogs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: D-Tools SI API Documentation Subscribe Product Catalogs API
  description: 'The API allows integrations to:


    - Publish catalogs and projects to SI users.

    - Subscribe to projects and catalogs published by SI users.


    All API calls must pass an API key in the request header. The API key can be generated in SI 2016 Control Panel using the ''Manage Integrations'' feature.


    An API key is specific to a SI user and an integration.


    API callers must add to each call a custom header named **X-DTSI-ApiKey** along with the value of the API key. For example, if the API key value is `q54R39UBr0Skgd7VHvEbuwiRAOArUpt02o7z/vY+iwrg`, the custom header would be as follows:


    ```

    X-DTSI-ApiKey: q54R39UBr0Skgd7VHvEbuwiRAOArUpt02o7z/vY+iwrg

    ```'
  version: 1.0.0
servers:
- url: https://api.d-tools.com/si
tags:
- name: SubscribeProductCatalogs
  description: Allows an integration to subscribe to product catalogs published by SI users.
paths:
  /Subscribe/ProductCatalogs:
    get:
      tags:
      - SubscribeProductCatalogs
      summary: Get product catalogs published by a SI user.
      parameters:
      - name: includeImported
        in: query
        description: 'Boolean. Include already imported product catalogs. Optional with default value false

          which means by default you will only see product catalogs which are not imported.'
        schema:
          type: boolean
          default: false
      - name: searchText
        in: query
        description: The search text.
        schema:
          type: string
      - name: pageNumber
        in: query
        description: The page number.
        schema:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int32
          default: 1
      - name: pageSize
        in: query
        description: The page size.
        schema:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int32
          default: 50
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogsResult'
            text/json:
              schema:
                $ref: '#/components/schemas/CatalogsResult'
  /Subscribe/ProductCatalogs/MarkAsImported:
    put:
      tags:
      - SubscribeProductCatalogs
      summary: Mark a product catalog as imported for a given catalog id.
      parameters:
      - name: id
        in: query
        description: The product catalog id.
        schema:
          type: string
      responses:
        '200':
          description: ''
  /Subscribe/ProductCatalogs/{id}:
    get:
      tags:
      - SubscribeProductCatalogs
      summary: Get a product catalog for a given catalog id.
      parameters:
      - name: id
        in: path
        description: The product catalog id.
        required: true
        schema:
          type: string
      - name: pageNumber
        in: query
        description: The page number.
        schema:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int32
          default: 1
      - name: pageSize
        in: query
        description: The page size.
        schema:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int32
          default: 10000
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductCatalog'
            text/json:
              schema:
                $ref: '#/components/schemas/ProductCatalog'
            application/xml:
              schema:
                $ref: '#/components/schemas/ProductCatalog'
            text/xml:
              schema:
                $ref: '#/components/schemas/ProductCatalog'
components:
  schemas:
    CatalogsResult:
      type: object
      properties:
        catalogs:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/CatalogInfo'
          description: Catalogs array
        totalCount:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Total count of catalogs
          format: int32
    Product:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id for the product (Required)
        integrationProductId:
          type:
          - 'null'
          - string
          description: Id for the product sent by integration.
        manufacturerId:
          type:
          - 'null'
          - string
          description: Id for the manufacturer.
        manufacturer:
          type:
          - 'null'
          - string
          description: Manufacturer for the product. (Required)
        model:
          type:
          - 'null'
          - string
          description: Model for the product (Required)
        partNumber:
          type:
          - 'null'
          - string
          description: Part Number
        category:
          type:
          - 'null'
          - string
          description: Category
        subcategory:
          type:
          - 'null'
          - string
          description: Subcategory
        description:
          type:
          - 'null'
          - string
          description: Short description
        url:
          type:
          - 'null'
          - string
          description: Product URL (BETA).
        tags:
          type:
          - 'null'
          - string
          description: Tags
        msrp:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - number
          - string
          description: MSRP
          format: double
        unitCost:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - number
          - string
          description: Unit Cost
          format: double
        unitPrice:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - number
          - string
          description: Unit Price
          format: double
        ofe:
          type: boolean
          description: Owner Furnished Equipment
        allowZeroCost:
          type:
          - 'null'
          - boolean
          description: Allow Zero Cost (BETA)
        phase:
          type:
          - 'null'
          - string
          description: Phase
        laborHours:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - number
          - string
          description: Labor Hours to install the item
          format: double
        installPrice:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - number
          - string
          description: Install Price is the sum of product price and labor price to install the item
          format: double
        laborTypes:
          type:
          - 'null'
          - string
          description: Comma separated list of product labor types
        itemLaborTypes:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/ItemLaborType'
          description: Collection of labor types for product with name and hours
        taxable:
          type:
          - 'null'
          - boolean
          description: Is product taxable. Applicable if SI has IsItemLevelTax = false
        tax:
          type:
          - 'null'
          - string
          description: Tax for the product. Applicable if SI has IsItemLevelTax = true
        laborTax:
          type:
          - 'null'
          - string
          description: Labor Tax for the product. Applicable if SI has IsItemLevelTax = true
        avalaraTaxCode:
          type:
          - 'null'
          - string
          description: Avalara tax code
        avalaraLaborTaxCode:
          type:
          - 'null'
          - string
          description: Avalara labor tax code
        acctgName:
          type:
          - 'null'
          - string
          description: Accounting Item Name
        vendor:
          type:
          - 'null'
          - string
          description: Vendor
        vendorNumber:
          type:
          - 'null'
          - string
          description: Vendor Number
        orderUom:
          type:
          - 'null'
          - string
          description: UOM
        orderUomUnits:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - 'null'
          - integer
          - string
          description: UOM units
          format: int32
        doNotOrder:
          type: boolean
          description: Do Not Order
        purchaseCost:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Purchase Cost
          format: double
        purchaseCostCurrencyCode:
          type:
          - 'null'
          - string
          description: Purchase Cost Currency Code
        height:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Height
          format: double
        width:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Width
          format: double
        depth:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Depth
          format: double
        weight:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Weight
          format: double
        rackMounted:
          type: boolean
          description: Product Rack Mounted
        rackUnits:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - 'null'
          - integer
          - string
          description: Product Rack Units
          format: int16
        amps:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Amps
          format: double
        volts:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Volts
          format: double
        watts:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Watts
          format: double
        btu:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product Btu
          format: double
        dispersion:
          type:
          - 'null'
          - string
          description: Product Dispersion
        bulkWire:
          type: boolean
          description: Product Bulk Wire
        inputTerminals:
          type:
          - 'null'
          - string
          description: Product Input Terminals
        inputSignals:
          type:
          - 'null'
          - string
          description: Product Input Signals
        inputLabels:
          type:
          - 'null'
          - string
          description: Product Input Labels
        outputTerminals:
          type:
          - 'null'
          - string
          description: Product Output Terminals
        outputSignals:
          type:
          - 'null'
          - string
          description: Product Output Signals
        outputLabels:
          type:
          - 'null'
          - string
          description: Product Output Labels
        customField1:
          type:
          - 'null'
          - string
          description: Product custom field 1
        customField2:
          type:
          - 'null'
          - string
          description: Product custom field 2
        customField3:
          type:
          - 'null'
          - string
          description: Product custom field 3
        customField4:
          type:
          - 'null'
          - string
          description: Product custom field 4
        customField5:
          type:
          - 'null'
          - string
          description: Product custom field 5
        customField6:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 6
          format: double
        customField7:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 7
          format: double
        customField8:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 8
          format: double
        customField9:
          type:
          - 'null'
          - string
          description: Product custom field 9
          format: date-time
        customField10:
          type:
          - 'null'
          - string
          description: Product custom field 10
          format: date-time
        customField11:
          type:
          - 'null'
          - string
          description: Product custom field 11
          format: date-time
        customField12:
          type:
          - 'null'
          - string
          description: Product custom field 12
        customField13:
          type:
          - 'null'
          - string
          description: Product custom field 13
        customField14:
          type:
          - 'null'
          - string
          description: Product custom field 14
        customField15:
          type:
          - 'null'
          - string
          description: Product custom field 15
        customField16:
          type:
          - 'null'
          - string
          description: Product custom field 16
        customField17:
          type:
          - 'null'
          - string
          description: Product custom field 17
        customField18:
          type:
          - 'null'
          - string
          description: Product custom field 18
        customField19:
          type:
          - 'null'
          - boolean
          description: Product custom field 19
        customField20:
          type:
          - 'null'
          - boolean
          description: Product custom field 20
        customField21:
          type:
          - 'null'
          - boolean
          description: Product custom field 21
        customField22:
          type:
          - 'null'
          - boolean
          description: Product custom field 22
        customField23:
          type:
          - 'null'
          - string
          description: Product custom field 23
        customField24:
          type:
          - 'null'
          - string
          description: Product custom field 24
        customField25:
          type:
          - 'null'
          - string
          description: Product custom field 25
        customField26:
          type:
          - 'null'
          - string
          description: Product custom field 26
        customField27:
          type:
          - 'null'
          - string
          description: Product custom field 27
        customField28:
          type:
          - 'null'
          - string
          description: Product custom field 28
        customField29:
          type:
          - 'null'
          - string
          description: Product custom field 29
        customField30:
          type:
          - 'null'
          - string
          description: Product custom field 30
        customField31:
          type:
          - 'null'
          - string
          description: Product custom field 31
        customField32:
          type:
          - 'null'
          - string
          description: Product custom field 32
        customField33:
          type:
          - 'null'
          - string
          description: Product custom field 33
        customField34:
          type:
          - 'null'
          - string
          description: Product custom field 34
        customField35:
          type:
          - 'null'
          - string
          description: Product custom field 35
        customField36:
          type:
          - 'null'
          - string
          description: Product custom field 36
        customField37:
          type:
          - 'null'
          - string
          description: Product custom field 37
        customField38:
          type:
          - 'null'
          - string
          description: Product custom field 38
        customField39:
          type:
          - 'null'
          - string
          description: Product custom field 39
        customField40:
          type:
          - 'null'
          - string
          description: Product custom field 40
        customField41:
          type:
          - 'null'
          - string
          description: Product custom field 41
        customField42:
          type:
          - 'null'
          - string
          description: Product custom field 42
        customField43:
          type:
          - 'null'
          - string
          description: Product custom field 43
        customField44:
          type:
          - 'null'
          - string
          description: Product custom field 44
        customField45:
          type:
          - 'null'
          - string
          description: Product custom field 45
        customField46:
          type:
          - 'null'
          - string
          description: Product custom field 46
        customField47:
          type:
          - 'null'
          - string
          description: Product custom field 47
        customField48:
          type:
          - 'null'
          - string
          description: Product custom field 48
        customField49:
          type:
          - 'null'
          - string
          description: Product custom field 49
        customField50:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 50
          format: double
        customField51:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 51
          format: double
        customField52:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 52
          format: double
        customField53:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 53
          format: double
        customField54:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 54
          format: double
        customField55:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 55
          format: double
        customField56:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 56
          format: double
        customField57:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 57
          format: double
        customField58:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Product custom field 58
          format: double
        customField59:
          type:
          - 'null'
          - string
          description: Product custom field 59
          format: date-time
        customField60:
          type:
          - 'null'
          - string
          description: Product custom field 60
          format: date-time
        customField61:
          type:
          - 'null'
          - string
          description: Product custom field 61
          format: date-time
        customField62:
          type:
          - 'null'
          - string
          description: Product custom field 62
          format: date-time
        customField63:
          type:
          - 'null'
          - string
          description: Product custom field 63
          format: date-time
        customField64:
          type:
          - 'null'
          - string
          description: Product custom field 64
          format: date-time
        customField65:
          type:
          - 'null'
          - string
          description: Product custom field 65
          format: date-time
        customField66:
          type:
          - 'null'
          - string
          description: Product custom field 66
          format: date-time
        customField67:
          type:
          - 'null'
          - string
          description: Product custom field 67
          format: date-time
        customField68:
          type:
          - 'null'
          - boolean
          description: Product custom field 68
        customField69:
          type:
          - 'null'
          - boolean
          description: Product custom field 69
        customField70:
          type:
          - 'null'
          - boolean
          description: Product custom field 70
        customField71:
          type:
          - 'null'
          - boolean
          description: Product custom field 71
        customField72:
          type:
          - 'null'
          - boolean
          description: Product custom field 72
        customField73:
          type:
          - 'null'
          - boolean
          description: Product custom field 73
        customField74:
          type:
          - 'null'
          - boolean
          description: Product custom field 74
        customField75:
          type:
          - 'null'
          - boolean
          description: Product custom field 75
        updatedOn:
          type:
          - 'null'
          - string
          description: Date the product was updated
          format: date-time
        updatedOnTicks:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Updated on date in ticks (number)
          format: int64
        approved:
          type:
          - 'null'
          - boolean
          description: Product Approved
        discontinued:
          type:
          - 'null'
          - boolean
          description: Product Discontinued
      description: Product object
    ProductCatalog:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id for the catalog
        name:
          type:
          - 'null'
          - string
          description: Name for the catalog (Required)
        description:
          type:
          - 'null'
          - string
          description: Catalog description
        priceType:
          type:
          - 'null'
          - string
          description: Price type
        priceTypeDisplayName:
          type:
          - 'null'
          - string
          description: Price type display name
        isMetric:
          type: boolean
          description: Catalog Item H,W,D are in inches for non-metric catalogs and millimeters for metric catalogs. Item weight is in pounds for non-metric catalogs and kilograms for metric catalogs.
        totalProductsCount:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Total Products Count
          format: int32
        products:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/Product'
          description: Products in the catalog.
        deletedProductIds:
          type:
          - 'null'
          - array
          items:
            type: string
            format: uuid
          description: Product Ids deleted (available only with automated SI Server Exports)
      description: Product catalog object
    ItemLaborType:
      type: object
      properties:
        name:
          type:
          - 'null'
          - string
          description: Labor Type name
        hours:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Labor Type Hours
          format: double
        totalHours:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Total Labor Hours includes Base, Misc, Mgt and Design hours and accounts for wire length (if any) and quantity
          format: double
    CatalogInfo:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id for the catalog
        name:
          type:
          - 'null'
          - string
          description: Catalog name
        description:
          type:
          - 'null'
          - string
          description: Catalog description
        importedOn:
          type:
          - 'null'
          - string
          description: Date catalog was imported by SI user
          format: date-time
        publishedOn:
          type: string
          description: Date catalog was published
          format: date-time
      description: Catalog Information