D-Tools Publish Service Orders API

Allows an integration to publish a service order to a SI user.

Operations 2

POST /Publish/ServiceOrder Publish a new service order to SI.
POST /Publish/UpdateServiceOrder Update an existing service order 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-publishserviceorders-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-publishserviceorders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: D-Tools SI API Documentation Publish Service Orders 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: PublishServiceOrders
  description: Allows an integration to publish a service order to a SI user.
paths:
  /Publish/ServiceOrder:
    post:
      tags:
      - PublishServiceOrders
      summary: Publish a new service order to SI.
      requestBody:
        description: The Service Order.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/NewServiceOrder'
          application/json:
            schema:
              $ref: '#/components/schemas/NewServiceOrder'
          text/json:
            schema:
              $ref: '#/components/schemas/NewServiceOrder'
          application/*+json:
            schema:
              $ref: '#/components/schemas/NewServiceOrder'
          application/xml:
            schema:
              $ref: '#/components/schemas/NewServiceOrder'
          text/xml:
            schema:
              $ref: '#/components/schemas/NewServiceOrder'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/NewServiceOrder'
        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/UpdateServiceOrder:
    post:
      tags:
      - PublishServiceOrders
      summary: Update an existing service order in SI.
      requestBody:
        description: Update Service Order.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateServiceOrder'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateServiceOrder'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateServiceOrder'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateServiceOrder'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateServiceOrder'
          text/xml:
            schema:
              $ref: '#/components/schemas/UpdateServiceOrder'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/UpdateServiceOrder'
        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:
    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
    NewServiceOrder:
      type: object
      properties:
        integrationId:
          type:
          - 'null'
          - string
          description: Id for the service order (Optional). The Id must be a valid Guid and can be used to retrieve service order.
        client:
          type:
          - 'null'
          - string
          description: Client name (Required)
        clientNumber:
          type:
          - 'null'
          - string
          description: Client number
        name:
          type:
          - 'null'
          - string
          description: Name (Required)
        start:
          type: string
          description: Start date required (Required)
          format: date-time
        startTicks:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int64
        end:
          type: string
          description: End date required (Required)
          format: date-time
        endTicks:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int64
        description:
          type:
          - 'null'
          - string
          description: Description of the SO
      description: Service Order Information
    ContactInfo:
      type: object
      properties:
        name:
          type:
          - 'null'
          - string
          description: Name of the contact
        title:
          type:
          - 'null'
          - string
        email:
          type:
          - 'null'
          - string
        phone:
          type:
          - 'null'
          - string
        mobile:
          type:
          - 'null'
          - string
    UpdateServiceOrderField:
      type: object
      properties:
        serviceOrderFieldId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: 'ServiceOrderFieldId (pass the correct Id for the field you want to update)

            Service Order Name = 1, Description = 2, Start Date = 3, End Date = 4, Accounting estimate number = 5, Status = 6, Percent complete = 7, Notes = 8, Priority = 9,

            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 service order field.
    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
    UpdateServiceOrder:
      type: object
      properties:
        serviceOrderId:
          type:
          - 'null'
          - string
          description: Id of service order to update (Required).
        contact:
          description: Contact information
          $ref: '#/components/schemas/ContactInfo'
        billingAddress:
          description: Billing address information
          $ref: '#/components/schemas/Address'
        siteAddress:
          description: Site address information
          $ref: '#/components/schemas/Address'
        updateFields:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/UpdateServiceOrderField'
          description: List of UpdateFields for the service order. Each UpdateField has a Id and a Value.
      description: Update Service Order