How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

D-Tools System Integrator (SI) API

Cloud middleware API that bridges the on-premises or hosted D-Tools System Integrator application to third-party systems. It is a queue, not a live database: publishers POST projects, change orders, tasks, service orders, time sheets, product catalogs, clients and vendors into the queue for an SI user to apply, and subscribers GET what an SI user has exported, then mark each message imported. Authentication is a per-user, per-integration API key passed in the X-DTSI-ApiKey header and generated in the SI Control Panel under Manage Integrations.

This API exposes 56 operations across 56 paths, organized into 17 resource areas, and defines 93 schemas. It is described by OpenAPI 3.1.1, at version 1.0.0.

Requests are made against a single base URL, https://api.d-tools.com/si.

56 operations 56 paths 93 schemas 24 GET23 POST9 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.1
API Version
1.0.0
Base URL
https://api.d-tools.com/si
Resource Areas
17

Paths & Operations 56

Across 56 paths, the API surfaces 56 operations — 24 GET, 23 POST, 9 PUT. They span 17 resource areas, including PublishProjects, SubscribeProjects, SubscribePartialProjects, PublishTasks, SubscribeTask, PublishServiceOrders, SubscribeServiceOrder, SubscribePurchaseOrder, and 9 more. Each is listed below with its method, path, parameters, and response codes.

PublishProjects 9

Allows an integration to publish or update a project to a SI user.

POST
/Publish/Projects
Publish a new project to SI.
body → 200
POST
/Publish/Projects/Update
Update an existing project in SI
body → 200
POST
/Publish/Projects/NewChangeOrder
Publish a new change order or update an existing change order (using the IntegrationChangeOrderId) for an existing SI project.
body → 200
POST
/Publish/Projects/ArchiveProjects
Mark existing SI projects as archived (must be checked in).
body → 200
POST
/Publish/Projects/LockProjects
Mark existing SI projects as locked (must be checked in).
body → 200
POST
/Publish/Projects/UnarchiveProjects
Mark existing SI projects as unarchived.
body → 200
POST
/Publish/Projects/UnlockProjects
Mark existing SI projects as unlocked (must be checked in).
body → 200
POST
/Publish/Projects/LockChangeOrderStatus
Mark existing SI project change order status as locked or unlocked.
body → 200
POST
/Publish/Projects/ProjectComments
Publish comments to an existing SI project.
body → 200
SubscribeProjects 6

Allows an integration to subscribe to projects and change orders published by SI users.

GET
/Subscribe/Projects
Get projects and change orders published by a SI user.
9 params → 200
GET
/Subscribe/Projects/GetProjectByMessageId
Get a specific project or change order for a given message id published by a SI user.
3 params → 200
GET
/Subscribe/Projects/GetProjectComments
Get project comments published by a SI user.
3 params → 200
PUT
/Subscribe/Projects/MarkAsImported
Mark a project or change order as imported for a given project id.
3 params → 200
PUT
/Subscribe/Projects/MarkAsImportedByMessageId
Mark a project or change order as imported for a given message id.
2 params → 200
GET
/Subscribe/Projects/{id}
Get a specific project or change order for a given project id published by a SI user.
4 params → 200
SubscribePartialProjects 3

Allows an integration to subscribe to partial projects published by SI users.

GET
/SubscribePartialProjects/Projects
Get partial projects published by a SI user .
8 params → 200
PUT
/SubscribePartialProjects/MarkAsImported
Mark a partial project as imported for a given message id.
1 param → 200
GET
/SubscribePartialProjects/Projects/{messageId}
Get a specific partial project for a given message id published by a SI user.
3 params → 200
PublishTasks 3

Allows an integration to publish a task to a SI user.

POST
/Publish/Task
Allows an integration to publish a task to a SI user.
body → 200
POST
/Publish/UpdateTask
Update an existing task in SI.
body → 200
POST
/Publish/DeleteTasks
Delete existing tasks in SI (BETA).
body → 200
SubscribeTask 5

Allows an integration to subscribe to Tasks published by SI users.

GET
/Subscribe/Tasks
Get tasks published by a SI user.
8 params → 200
GET
/Subscribe/Task/GetMobileInstallSiteNotes
Get Mobile Install task site notes for a given task id
1 param → 200
PUT
/Subscribe/Task/MarkAsImported
Mark a task as imported for a given task id.
2 params → 200
GET
/Subscribe/Tasks/ByProject/{projectId}
Get a tasks for a given project id.
1 param → 200
GET
/Subscribe/Tasks/{id}
Get a task for a given task id.
1 param → 200
PublishServiceOrders 2

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

POST
/Publish/ServiceOrder
Publish a new service order to SI.
body → 200
POST
/Publish/UpdateServiceOrder
Update an existing service order in SI.
body → 200
SubscribeServiceOrder 4

Allows an integration to subscribe to Service orders published by SI users.

GET
/Subscribe/ServiceOrders
Get service order published by a SI user.
7 params → 200
GET
/Subscribe/ServiceOrder/GetMobileInstallSiteNotes
Get Mobile Install service order site notes for a given service order id
1 param → 200
PUT
/Subscribe/ServiceOrders/MarkAsImported
Mark a service order as imported for a given service order id.
2 params → 200
GET
/Subscribe/ServiceOrders/{id}
Get a service order for a given service order id.
1 param → 200
SubscribePurchaseOrder 3

Allows an integration to subscribe to Purchase orders published by SI users.

GET
/Subscribe/PurchaseOrders
Get purchase orders published by a SI user.
7 params → 200
PUT
/Subscribe/PurchaseOrders/MarkAsImported
Mark a purchase order as imported for a given purchase order id.
2 params → 200
GET
/Subscribe/PurchaseOrders/{id}
Get a purchase order for a given purchase order id.
1 param → 200
SubscribeServicePlan 3

Allows an integration to subscribe to Service plan published by SI users.

GET
/Subscribe/ServicePlans
Get service plans published by a SI user
7 params → 200
PUT
/Subscribe/ServicePlans/MarkAsImported
Mark a service plan as imported for a given service plan id.
2 params → 200
GET
/Subscribe/ServicePlans/{id}
Get a service plan for a given service plan id.
1 param → 200
PublishTimeSheets 2

Allows an integration to publish a time sheet to a SI user.

POST
/Publish/TimeSheets
Publish a new time sheet to SI.
body → 200
POST
/Publish/UpdateTimeSheets
Update an existing time sheets in SI.
body → 200
SubscribeTimeSheet 3

Allows an integration to subscribe to Time sheets published by SI users.

GET
/Subscribe/TimeSheets
Get time sheets published by a SI user.
6 params → 200
PUT
/Subscribe/TimeSheets/MarkAsImported
Mark a time sheet as imported for a given time sheet id
2 params → 200
GET
/Subscribe/TimeSheets/{id}
Get a time sheet for a given time sheet id
1 param → 200
PublishProductCatalogs 1

Allows an integration to publish a product catalog to a SI user.

POST
/Publish/ProductCatalogs
Publish a product catalog to a SI user.
body → 200
SubscribeProductCatalogs 3

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

GET
/Subscribe/ProductCatalogs
Get product catalogs published by a SI user.
4 params → 200
PUT
/Subscribe/ProductCatalogs/MarkAsImported
Mark a product catalog as imported for a given catalog id.
1 param → 200
GET
/Subscribe/ProductCatalogs/{id}
Get a product catalog for a given catalog id.
3 params → 200
PublishClients 2

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

POST
/Publish/Clients
Publish a list of clients to SI.
body → 200
POST
/Publish/Clients/Update
Update an existing client in SI
body → 200
SubscribeClients 3

Allows an integration to subscribe to clients published by SI users.

GET
/Subscribe/Clients
Get clients published by a SI user.
5 params → 200
POST
/Subscribe/Clients/ClientList
Get clients for given client ids published by a SI user. You can pass a maximum of 100 client ids.
body → 200
POST
/Subscribe/Clients/MarkAsImported
Mark clients as imported for given client ids. You can pass a maximum of 100 client ids.
body → 200
Message 2
GET
/Message/PublishedMessageStatus
Get status of a published message.
1 param → 200
GET
/Message/PublishedMessagesStatus
Get status of published messages.
4 params → 200
PublishVendors 2

Allows an integration to update a vendor list to a SI user. d

POST
/Publish/Vendors
Publish a list of vendors to SI.
body → 200
POST
/Publish/Vendors/Update
Update an existing vendor in SI
body → 200

Schemas 93

The contract defines 93 schemas that model the data the API accepts and returns. The most detailed are Project (210 properties), ProjectItem (152 properties), Product (131 properties), UpdateProjectItem (111 properties). Each schema is shown below with its type and property counts.

Address
object
8 properties
AppProjectComment
object
3 properties
CatalogInfo
object
Catalog Information
5 properties
CatalogsResult
object
2 properties
Client
object
Client object
42 properties
ClientAddress
object
Client address object
10 properties
ClientContact
object
Client contact object
15 properties
ClientInfo
object
Client List Information
7 properties
ClientList
object
Client List objects
4 properties
ClientsResult
object
2 properties
Contact
object
6 properties
ContactInfo
object
5 properties
DeleteTasksRequest
object
1 property
ItemLaborType
object
3 properties
Location
object
7 properties
LockChangeOrderInfo
object
4 properties
LockChangeOrderStatus
object
Lock Change Order Status
4 properties
LockChangeOrderStatusInfo
object
4 properties
MessageResponse
object
Message response
2 properties
MessageStatus
object
Message status
5 properties
MiscItem
object
4 properties
NewChangeOrderInfo
object
70 properties
NewServiceOrder
object
Service Order Information
9 properties
NewTask
object
New Task
35 properties
NewTimeSheet
object
48 properties
NewTimeSheetsRequest
object
2 properties
Package
object
A project item of type package or solution
84 properties
PartialProjectInfo
object
18 properties
PartialProjectsResult
object
2 properties
PaymentTerm
object
6 properties
Product
object
Product object
131 properties
ProductCatalog
object
Product catalog object
9 properties
Project
object
210 properties
ProjectComment
object
3 properties
ProjectCommentsResult
object
2 properties
ProjectInfo
object
Project Information
18 properties
ProjectItem
object
A project item which can be product or labor item or allowance or bundled cable or placeholder. Product and Labor items can be posted to a project. Allowances,…
152 properties
ProjectItemInfo
object
A project item info which can be product or labor
3 properties
ProjectsResult
object
2 properties
PublishProjectResponse
object
Project publish response
3 properties
PublishResponse
object
Project publish response
2 properties
PublishTaskResponse
object
Task publish response
3 properties
PurchaseOrder
object
Purchase order object
28 properties
PurchaseOrderContact
object
Purchase Order Contact
9 properties
PurchaseOrderInfo
object
Purchase Order Information
8 properties
PurchaseOrderItem
object
26 properties
PurchaseOrdersResult
object
2 properties
PurchaseOrderTax
object
5 properties
Resource
object
4 properties
ResourceInfo
object
2 properties
ServiceOrder
object
62 properties
ServiceOrderInfo
object
Service Order Information
10 properties
ServiceOrderLabor
object
Labor Object
45 properties
ServiceOrderProduct
object
Product Object
42 properties
ServiceOrderRepairItem
object
Repair item Object
11 properties
ServiceOrderResource
object
Service Order Resource Object
7 properties
ServiceOrdersResult
object
2 properties
ServicePlan
object
90 properties
ServicePlanFeature
object
Service Plan Feature
3 properties
ServicePlanInfo
object
Service Plan Information
10 properties
ServicePlanItem
object
Service Plan Item object
9 properties
ServicePlanProjectItem
object
21 properties
ServicePlansResult
object
2 properties
ShipToAddress
object
9 properties
SITask
object
51 properties
SiteNote
object
Mobile Install Site Notes
3 properties
System
object
5 properties
TaskInfo
object
Task Information
10 properties
TaskItem
object
Task Item
22 properties
TaskResource
object
7 properties
TasksResult
object
2 properties
Tax
object
6 properties
TimeSheet
object
57 properties
TimeSheetEntry
object
11 properties
TimeSheetInfo
object
Time Sheet Information
7 properties
TimeSheetsResult
object
2 properties
UpdateClient
object
Update Project
5 properties
UpdateClientField
object
2 properties
UpdateProject
object
Update Project
21 properties
UpdateProjectField
object
2 properties
UpdateProjectItem
object
111 properties
UpdateServiceOrder
object
Update Service Order
5 properties
UpdateServiceOrderField
object
2 properties
UpdateTask
object
6 properties
UpdateTaskField
object
2 properties
UpdateTimeSheet
object
47 properties
UpdateTimeSheetsRequest
object
2 properties
UpdateVendor
object
Update Vendor
5 properties
UpdateVendorField
object
2 properties
Vendor
object
Vendor object
15 properties
VendorAddress
object
Vendor address object
10 properties
VendorContact
object
Vendor contact object
15 properties
VendorList
object
Vendor List objects
4 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

d-tools-si-api-openapi.yml Raw ↑
Where this information came from

This is an independent, third-party profile of D-Tools System Integrator (SI) API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.