D-Tools Publish Clients API

Allows an integration to update a client list to a SI user.

Operations 2

POST /Publish/Clients Publish a list of clients to SI.
POST /Publish/Clients/Update Update an existing client in SI

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-publishclients-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-publishclients-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: D-Tools SI API Documentation Publish Clients 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: PublishClients
  description: Allows an integration to update a client list to a SI user.
paths:
  /Publish/Clients:
    post:
      tags:
      - PublishClients
      summary: Publish a list of clients to SI.
      requestBody:
        description: The client list.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ClientList'
          application/json:
            schema:
              $ref: '#/components/schemas/ClientList'
          text/json:
            schema:
              $ref: '#/components/schemas/ClientList'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ClientList'
          application/xml:
            schema:
              $ref: '#/components/schemas/ClientList'
          text/xml:
            schema:
              $ref: '#/components/schemas/ClientList'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/ClientList'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/PublishResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/PublishResponse'
            text/xml:
              schema:
                $ref: '#/components/schemas/PublishResponse'
  /Publish/Clients/Update:
    post:
      tags:
      - PublishClients
      summary: Update an existing client in SI
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateClient'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateClient'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateClient'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateClient'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateClient'
          text/xml:
            schema:
              $ref: '#/components/schemas/UpdateClient'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/UpdateClient'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/PublishResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/PublishResponse'
            text/xml:
              schema:
                $ref: '#/components/schemas/PublishResponse'
components:
  schemas:
    UpdateClient:
      type: object
      properties:
        integrationId:
          type:
          - 'null'
          - string
          description: Integration Id of client to update (Must pass either IntegrationId Or Client Number)
        number:
          type:
          - 'null'
          - string
          description: Number of client to update (Must pass either IntegrationId Or Client Number)
        updateFields:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/UpdateClientField'
          description: List of UpdateFields for the client. Each UpdateField has a Id and a Value.
        siteAddress:
          description: Client Site Address
          $ref: '#/components/schemas/Address'
        billingAddress:
          description: Client Billing Address
          $ref: '#/components/schemas/Address'
      description: Update Project
    PublishResponse:
      type: object
      properties:
        messageId:
          type: string
          description: Check the status of the transaction using this Message Id
          format: uuid
        message:
          type:
          - 'null'
          - string
          description: Success Message
      description: Project publish response
    ClientContact:
      type: object
      properties:
        firstName:
          type:
          - 'null'
          - string
        lastName:
          type:
          - 'null'
          - string
        company:
          type:
          - 'null'
          - string
        title:
          type:
          - 'null'
          - string
        email:
          type:
          - 'null'
          - string
        phone:
          type:
          - 'null'
          - string
        fax:
          type:
          - 'null'
          - string
        mobile:
          type:
          - 'null'
          - string
        street1:
          type:
          - 'null'
          - string
        street2:
          type:
          - 'null'
          - string
        city:
          type:
          - 'null'
          - string
        state:
          type:
          - 'null'
          - string
        postalCode:
          type:
          - 'null'
          - string
        country:
          type:
          - 'null'
          - string
        notes:
          type:
          - 'null'
          - string
      description: Client contact object
    UpdateClientField:
      type: object
      properties:
        clientFieldId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: 'ClientFieldId (pass the correct Id for the field you want to udpate)

            Name = 1, Number = 2, Phone = 3, Fax = 4, Email = 5, Website = 6, Inactive = 7,  IntegrationId = 8

            CustomField1 = 101, CustomField2 = 102, CustomField3 = 103, CustomField4 = 104, CustomField5 = 105, CustomField6 = 106, CustomField7 = 107, CustomField8 = 108, CustomField9 = 109, CustomField10 = 110,

            CustomField11 = 111, CustomField12 = 112, CustomField13 = 113, CustomField14 = 114, CustomField15 = 115, CustomField16 = 116, CustomField17 = 117, CustomField18 = 118, CustomField19 = 119, CustomField20 = 120,

            CustomField21 = 121, CustomField22 = 122, CustomField23 = 123, CustomField24 = 124'
          format: uint8
        value:
          type:
          - 'null'
          - string
          description: Value for the client field. Datetime and decimal should be invariant.
    ClientList:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id for the client (Required)
        name:
          type:
          - 'null'
          - string
          description: Name for the client list (Required)
        description:
          type:
          - 'null'
          - string
          description: Client list description
        clients:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/Client'
          description: Client list.
      description: Client List objects
    Client:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id for the client (must be Guid). Client will be created in SI with this Guid and will be used to update client.
        name:
          type:
          - 'null'
          - string
          description: Client name (Required)
        number:
          type:
          - 'null'
          - string
          description: Number
        integrationId:
          type:
          - 'null'
          - string
          description: Optional Id provided by the Integration for client. The IntegrationId can be used to update clients
        phone:
          type:
          - 'null'
          - string
          description: Phone
        fax:
          type:
          - 'null'
          - string
          description: Fax
        email:
          type:
          - 'null'
          - string
          description: Email
        webSite:
          type:
          - 'null'
          - string
          description: Web site
        clientType:
          type:
          - 'null'
          - string
          description: Client Type - must be Lead or Prospect or Client
        leadSource:
          type:
          - 'null'
          - string
          description: Lead source
        tax:
          type:
          - 'null'
          - string
          description: Tax
        laborTax:
          type:
          - 'null'
          - string
          description: Labor tax
        createdOn:
          type: string
          description: Date the client was created (UTC Time)
          format: date-time
        updatedOn:
          type: string
          description: Date the client was updated (UTC Time)
          format: date-time
        updatedBy:
          type:
          - 'null'
          - string
          description: Client Updated By
        publishedBy:
          type:
          - 'null'
          - string
          description: Client Published By
        clientAddresses:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/ClientAddress'
          description: Client addresses for client
        clientContacts:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/ClientContact'
          description: Client contacts for client
        customField1:
          type:
          - 'null'
          - string
          description: CustomField1 (Text) (BETA).
        customField2:
          type:
          - 'null'
          - string
          description: CustomField2 (Text) (BETA).
        customField3:
          type:
          - 'null'
          - string
          description: CustomField3 (Text) (BETA).
        customField4:
          type:
          - 'null'
          - string
          description: CustomField4 (Text) (BETA).
        customField5:
          type:
          - 'null'
          - string
          description: CustomField5 (Text) (BETA).
        customField6:
          type:
          - 'null'
          - boolean
          description: CustomField6 (Boolean) (BETA).
        customField7:
          type:
          - 'null'
          - boolean
          description: CustomField7 (Boolean) (BETA).
        customField8:
          type:
          - 'null'
          - boolean
          description: CustomField8 (Boolean) (BETA).
        customField9:
          type:
          - 'null'
          - boolean
          description: CustomField9 (Boolean) (BETA).
        customField10:
          type:
          - 'null'
          - boolean
          description: CustomField10 (Boolean) (BETA).
        customField11:
          type:
          - 'null'
          - string
          description: CustomField11 (Date) (BETA).
          format: date-time
        customField12:
          type:
          - 'null'
          - string
          description: CustomField12 (Date) (BETA).
          format: date-time
        customField13:
          type:
          - 'null'
          - string
          description: CustomField13 (Date) (BETA).
          format: date-time
        customField14:
          type:
          - 'null'
          - string
          description: CustomField14 (Date) (BETA).
          format: date-time
        customField15:
          type:
          - 'null'
          - string
          description: CustomField15 (Date) (BETA).
          format: date-time
        customField16:
          type:
          - 'null'
          - string
          description: CustomField16 (List) (BETA).
        customField17:
          type:
          - 'null'
          - string
          description: CustomField17 (List) (BETA).
        customField18:
          type:
          - 'null'
          - string
          description: CustomField18 (List) (BETA).
        customField19:
          type:
          - 'null'
          - string
          description: CustomField19 (List) (BETA).
        customField20:
          type:
          - 'null'
          - string
          description: CustomField20 (List) (BETA).
        customField21:
          type:
          - 'null'
          - string
          description: CustomField21 (Hyperlink) (BETA).
        customField22:
          type:
          - 'null'
          - string
          description: CustomField22 (Hyperlink) (BETA).
        customField23:
          type:
          - 'null'
          - string
          description: CustomField23 (Hyperlink) (BETA).
        customField24:
          type:
          - 'null'
          - string
          description: CustomField24 (Hyperlink) (BETA).
      description: Client object
    Address:
      type: object
      properties:
        street1:
          type:
          - 'null'
          - string
        street2:
          type:
          - 'null'
          - string
        city:
          type:
          - 'null'
          - string
        state:
          type:
          - 'null'
          - string
        postalCode:
          type:
          - 'null'
          - string
        country:
          type:
          - 'null'
          - string
        phone:
          type:
          - 'null'
          - string
        fax:
          type:
          - 'null'
          - string
    ClientAddress:
      type: object
      properties:
        typeId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Client Addres Type - must be type 1 = Billing, 2 = Site, 3 = Other
          format: uint8
        name:
          type:
          - 'null'
          - string
        street1:
          type:
          - 'null'
          - string
        street2:
          type:
          - 'null'
          - string
        city:
          type:
          - 'null'
          - string
        state:
          type:
          - 'null'
          - string
        postalCode:
          type:
          - 'null'
          - string
        country:
          type:
          - 'null'
          - string
        phone:
          type:
          - 'null'
          - string
        fax:
          type:
          - 'null'
          - string
      description: Client address object