D-Tools Publish Projects API

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

Operations 9

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

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-publishprojects-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-publishprojects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: D-Tools SI API Documentation Publish Projects 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: PublishProjects
  description: Allows an integration to publish or update a project to a SI user.
paths:
  /Publish/Projects:
    post:
      tags:
      - PublishProjects
      summary: Publish a new project to SI.
      requestBody:
        description: The project.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Project'
          application/json:
            schema:
              $ref: '#/components/schemas/Project'
          text/json:
            schema:
              $ref: '#/components/schemas/Project'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Project'
          application/xml:
            schema:
              $ref: '#/components/schemas/Project'
          text/xml:
            schema:
              $ref: '#/components/schemas/Project'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/Project'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishProjectResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/PublishProjectResponse'
            application/xml:
              schema:
                $ref: '#/components/schemas/PublishProjectResponse'
            text/xml:
              schema:
                $ref: '#/components/schemas/PublishProjectResponse'
  /Publish/Projects/Update:
    post:
      tags:
      - PublishProjects
      summary: Update an existing project in SI
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateProject'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProject'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateProject'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateProject'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateProject'
          text/xml:
            schema:
              $ref: '#/components/schemas/UpdateProject'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/UpdateProject'
        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/Projects/NewChangeOrder:
    post:
      tags:
      - PublishProjects
      summary: Publish a new change order or update an existing change order (using the IntegrationChangeOrderId) for an existing SI project.
      requestBody:
        description: The new change order information.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/NewChangeOrderInfo'
          application/json:
            schema:
              $ref: '#/components/schemas/NewChangeOrderInfo'
          text/json:
            schema:
              $ref: '#/components/schemas/NewChangeOrderInfo'
          application/*+json:
            schema:
              $ref: '#/components/schemas/NewChangeOrderInfo'
          application/xml:
            schema:
              $ref: '#/components/schemas/NewChangeOrderInfo'
          text/xml:
            schema:
              $ref: '#/components/schemas/NewChangeOrderInfo'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/NewChangeOrderInfo'
        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/Projects/ArchiveProjects:
    post:
      tags:
      - PublishProjects
      summary: Mark existing SI projects as archived (must be checked in).
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: string
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
          application/*+json:
            schema:
              type: array
              items:
                type: string
          application/xml:
            schema:
              type: array
              items:
                type: string
          text/xml:
            schema:
              type: array
              items:
                type: string
          application/*+xml:
            schema:
              type: array
              items:
                type: string
        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/Projects/LockProjects:
    post:
      tags:
      - PublishProjects
      summary: Mark existing SI projects as locked (must be checked in).
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: string
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
          application/*+json:
            schema:
              type: array
              items:
                type: string
          application/xml:
            schema:
              type: array
              items:
                type: string
          text/xml:
            schema:
              type: array
              items:
                type: string
          application/*+xml:
            schema:
              type: array
              items:
                type: string
        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/Projects/UnarchiveProjects:
    post:
      tags:
      - PublishProjects
      summary: Mark existing SI projects as unarchived.
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: string
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
          application/*+json:
            schema:
              type: array
              items:
                type: string
          application/xml:
            schema:
              type: array
              items:
                type: string
          text/xml:
            schema:
              type: array
              items:
                type: string
          application/*+xml:
            schema:
              type: array
              items:
                type: string
        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/Projects/UnlockProjects:
    post:
      tags:
      - PublishProjects
      summary: Mark existing SI projects as unlocked (must be checked in).
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: string
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
          application/*+json:
            schema:
              type: array
              items:
                type: string
          application/xml:
            schema:
              type: array
              items:
                type: string
          text/xml:
            schema:
              type: array
              items:
                type: string
          application/*+xml:
            schema:
              type: array
              items:
                type: string
        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/Projects/LockChangeOrderStatus:
    post:
      tags:
      - PublishProjects
      summary: Mark existing SI project change order status as locked or unlocked.
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/LockChangeOrderStatus'
          application/json:
            schema:
              $ref: '#/components/schemas/LockChangeOrderStatus'
          text/json:
            schema:
              $ref: '#/components/schemas/LockChangeOrderStatus'
          application/*+json:
            schema:
              $ref: '#/components/schemas/LockChangeOrderStatus'
          application/xml:
            schema:
              $ref: '#/components/schemas/LockChangeOrderStatus'
          text/xml:
            schema:
              $ref: '#/components/schemas/LockChangeOrderStatus'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/LockChangeOrderStatus'
        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/Projects/ProjectComments:
    post:
      tags:
      - PublishProjects
      summary: Publish comments to an existing SI project.
      requestBody:
        description: ''
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppProjectComment'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppProjectComment'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppProjectComment'
          application/*+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppProjectComment'
          application/xml:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppProjectComment'
          text/xml:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppProjectComment'
          application/*+xml:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AppProjectComment'
        required: true
      responses:
        '200':
          description: ''
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
    PublishProjectResponse:
      type: object
      properties:
        projectId:
          type:
          - 'null'
          - string
          description: Unique Id of project (will be generated if not provided. Can be used to update project)
        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
    Contact:
      type: object
      properties:
        name:
          type:
          - 'null'
          - string
          description: Name of the contact (Required)
        title:
          type:
          - 'null'
          - string
          description: Contact Title
        email:
          type:
          - 'null'
          - string
          description: Contact Email
        phone:
          type:
          - 'null'
          - string
          description: Contact Phone
        mobile:
          type:
          - 'null'
          - string
          description: Contact Mobile
        isPrimary:
          type: boolean
          description: Is contact the primary contact for the project? One contact can be marked as the primary contact in project.
    Resource:
      type: object
      properties:
        name:
          type:
          - 'null'
          - string
          description: Name of the resource (Required)
        email:
          type:
          - 'null'
          - string
        roles:
          type:
          - 'null'
          - string
        isOwner:
          type: boolean
          description: Is resource the owner for the project? One resource can be marked as the owner in project.
    UpdateProjectItem:
      type: object
      properties:
        componentId:
          type:
          - 'null'
          - string
          description: Component ID of the project item to update (matching field can be SI Item Id or Component ID)
        quantity:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Quantity of the project item. For bulk wire is the wire length.
          format: int64
        siItemId:
          type:
          - 'null'
          - string
          description: SI Item ID - unique id of an item in SI project (matching field can be SI Item Id or Component ID)
        serialNumber:
          type:
          - 'null'
          - string
          description: Serial number
        ipAddress:
          type:
          - 'null'
          - string
          description: IP Address
        ipAddress2:
          type:
          - 'null'
          - string
          description: IP Address 2
        macAddress1:
          type:
          - 'null'
          - string
          description: MAC Address 1
        macAddress2:
          type:
          - 'null'
          - string
          description: MAC Address 2
        shortDescription:
          type:
          - 'null'
          - string
          description: Short Description
        longDescription:
          type:
          - 'null'
          - string
          description: Long Description
        location:
          type:
          - 'null'
          - string
          description: Location
        system:
          type:
          - 'null'
          - string
          description: System
        isOfe:
          type:
          - 'null'
          - boolean
          description: If project item owner furnished
        isNonBillable:
          type:
          - 'null'
          - boolean
          description: Is project item non-billable
        unitCost:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Unit Cost
          format: double
        unitPrice:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Unit Price (includes Discount)
          format: double
        discount:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Discount
          format: double
        laborCalculationMethodId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - 'null'
          - integer
          - string
          description: Id of the LaborCalculation. Fixed = 1, Variable = 2, Phase = 3
          format: uint8
        phase:
          type:
          - 'null'
          - string
          description: Phase
        laborHours:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Labor Hours
          format: double
        laborTypes:
          type:
          - 'null'
          - string
          description: Labor type (pass one labor type only)
        itemLaborTypes:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/ItemLaborType'
          description: Collection of labor types for item with name and hours (pass one labor labor type only)
        isTaxable:
          type:
          - 'null'
          - boolean
          description: Is project item taxable. Applicable if project has IsItemLevelTax = false
        tax:
          type:
          - 'null'
          - string
          description: Tax for the project item. Applicable if project has IsItemLevelTax = true
        doNotOrder:
          type:
          - 'null'
          - boolean
          description: Do not order item
        orderStatus:
          type:
          - 'null'
          - string
          description: Order Status (Ordered, Not Ordered etc.).
        orderNumber:
          type:
          - 'null'
          - string
          description: Order Number
        orderedDate:
          type:
          - 'null'
          - string
          description: Ordered Date (ISO 8601 format - yyyy-mm-dd)
        expectedDeliveryDate:
          type:
          - 'null'
          - string
          description: Expected Delivery Date (ISO 8601 format - yyyy-mm-dd)
        receivedDate:
          type:
          - 'null'
          - string
          description: Received Date (ISO 8601 format - yyyy-mm-dd)
        picked:
          type:
          - 'null'
          - boolean
          description: Picked (Is Item Picked?)
        pickedDate:
          type:
          - 'null'
          - string
          description: Picked Date (ISO 8601 format - yyyy-mm-dd)
        installed:
          type:
          - 'null'
          - boolean
          description: Installed (Is Item Installed?)
        installedDate:
          type:
          - 'null'
          - string
          description: Installed Date (ISO 8601 format - yyyy-mm-dd)
        installedNotes:
          type:
          - 'null'
          - string
          description: Install Notes
        trackingNumber:
          type:
          - 'null'
          - string
          description: Tracking Number
        customField1:
          type:
          - 'null'
          - string
          description: Custom Field 1
        customField2:
          type:
          - 'null'
          - string
          description: Custom Field 2
        customField3:
          type:
          - 'null'
          - string
          description: Custom Field 3
        customField4:
          type:
          - 'null'
          - string
          description: Custom Field 4
        customField5:
          type:
          - 'null'
          - string
          description: Custom Field 5
        customField6:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Field 6 (Decimal)
          format: double
        customField7:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Field 7 (Decimal)
          format: double
        customField8:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Field 8 (Decimal)
          format: double
        customField9:
          type:
          - 'null'
          - string
          description: Custom Field 9 Date (ISO 8601 format - yyyy-mm-dd)
        customField10:
          type:
          - 'null'
          - string
          description: Custom Field 10 Date (ISO 8601 format - yyyy-mm-dd)
        customField11:
          type:
          - 'null'
          - string
          description: Custom Field 11 Date (ISO 8601 format - yyyy-mm-dd)
        customField12:
          type:
          - 'null'
          - string
          description: Custom Field 12 (Long Text)
        customField13:
          type:
          - 'null'
          - string
          description: Custom Field 13 (Long Text)
        customField14:
          type:
          - 'null'
          - string
          description: Custom Field 14 (Long Text)
        customField15:
          type:
          - 'null'
          - string
          description: Custom field 15
        customField16:
          type:
          - 'null'
          - string
          description: Custom field 16
        customField17:
          type:
          - 'null'
          - string
          description: Custom field 17
        customField18:
          type:
          - 'null'
          - string
          description: Custom field 18
        customField19:
          type:
          - 'null'
          - boolean
          description: Custom field 19 (Boolean)
        customField20:
          type:
          - 'null'
          - boolean
          description: Custom field 20 (Boolean)
        customField21:
          type:
          - 'null'
          - boolean
          description: Custom field 21 (Boolean)
        customField22:
          type:
          - 'null'
          - boolean
          description: Custom field 22 (Boolean)
        customField23:
          type:
          - 'null'
          - string
          description: Custom field 23
        customField24:
          type:
          - 'null'
          - string
          description: Custom field 24
        customField25:
          type:
          - 'null'
          - string
          description: Custom field 25
        customField26:
          type:
          - 'null'
          - string
          description: Custom field 26
        customField27:
          type:
          - 'null'
          - string
          description: Custom field 27
        customField28:
          type:
          - 'null'
          - string
          description: Custom field 28
        customField29:
          type:
          - 'null'
          - string
          description: Custom field 29
        customField30:
          type:
          - 'null'
          - string
          description: Custom field 30
        customField31:
          type:
          - 'null'
          - string
          description: Custom field 31
        customField32:
          type:
          - 'null'
          - string
          description: Custom field 32
        customField33:
          type:
          - 'null'
          - string
          description: Custom field 33
        customField34:
          type:
          - 'null'
          - string
          description: Custom field 34
        customField35:
          type:
          - 'null'
          - string
          description: Custom field 35
        customField36:
          type:
          - 'null'
          - string
          description: Custom field 36
        customField37:
          type:
          - 'null'
          - string
          description: Custom field 37
        customField38:
          type:
          - 'null'
          - string
          description: Custom field 38
        customField39:
          type:
          - 'null'
          - string
          description: Custom field 39
        customField40:
          type:
          - 'null'
          - string
          description: Custom field 40
        customField41:
          type:
          - 'null'
          - string
          description: Custom field 41
        customField42:
          type:
          - 'null'
          - string
          description: Custom field 42
        customField43:
          type:
          - 'null'
          - string
          description: Custom field 43
        customField44:
          type:
          - 'null'
          - string
          description: Custom field 44
        customField45:
          type:
          - 'null'
          - string
          description: Custom field 45
        customField46:
          type:
          - 'null'
          - string
          description: Custom field 46
        customField47:
          type:
          - 'null'
          - string
          description: Custom field 47
        customField48:
          type:
          - 'null'
          - string
          description: Custom field 48
        customField49:
          type:
          - 'null'
          - string
          description: Custom field 49
        customField50:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 50
          format: double
        customField51:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 51
          format: double
        customField52:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 52
          format: double
        customField53:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 53
          format: double
        customField54:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 54
          format: double
        customField55:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 55
          format: double
        customField56:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 56
          format: double
        customField57:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 57
          format: double
        customField58:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom field 58
          format: double
        customField59:
          type:
          - 'null'
          - string
          description: Custom field 59
          format: date-time
        customField60:
          type:
          - 'null'
          - string
          description: Custom field 60
          format: date-time
        customField61:
          type:
          - 'null'
          - string
          description: Custom field 61
          format: date-time
        customField62:
          type:
          - 'null'
          - string
          description: Custom field 62
          format: date-time
        customField63:
          type:
          - 'null'
          - string
          description: Custom field 63
          format: date-time
        customField64:
          type:
          - 'null'
          - string
          description: Custom field 64
          format: date-time
        customField65:
          type:
          - 'null'
          - string
          description: Custom field 65
          format: date-time
        customField66:
          type:
          - 'null'
          - string
          description: Custom field 66
          format: date-time
        customField67:
          type:
          - 'null'
          - string
          description: Custom field 67
          format: date-time
        customField68:
          type:
          - 'null'
          - boolean
          description: Custom field 68
        customField69:
          type:
          - 'null'
          - boolean
          description: Custom field 69
        customField70:
          type:
          - 'null'
          - boolean
          description: Custom field 70
        customField71:
          type:
          - 'null'
          - boolean
          description: Custom field 71
        customField72:
          type:
          - 'null'
          - boolean
          description: Custom field 72
        customField73:
          type:
          - 'null'
          - boolean
          description: Custom field 73
        customField74:
          type:
          - 'null'
          - boolean
          description: Custom field 74
        customField75:
          type:
          - 'null'
          - boolean
          description: Custom field 75
    Project:
      type: object
      properties:
        

# --- truncated at 32 KB (127 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/d-tools/refs/heads/main/openapi/d-tools-publishprojects-api-openapi.yml