D-Tools Publish Time Sheets API

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

Operations 2

POST /Publish/TimeSheets Publish a new time sheet to SI.
POST /Publish/UpdateTimeSheets Update an existing time sheets 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-publishtimesheets-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-publishtimesheets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: D-Tools SI API Documentation Publish Time Sheets 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: PublishTimeSheets
  description: Allows an integration to publish a time sheet to a SI user.
paths:
  /Publish/TimeSheets:
    post:
      tags:
      - PublishTimeSheets
      summary: Publish a new time sheet to SI.
      requestBody:
        description: NewTimeSheetRequest.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/NewTimeSheetsRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/NewTimeSheetsRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/NewTimeSheetsRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/NewTimeSheetsRequest'
          application/xml:
            schema:
              $ref: '#/components/schemas/NewTimeSheetsRequest'
          text/xml:
            schema:
              $ref: '#/components/schemas/NewTimeSheetsRequest'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/NewTimeSheetsRequest'
        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/UpdateTimeSheets:
    post:
      tags:
      - PublishTimeSheets
      summary: Update an existing time sheets in SI.
      requestBody:
        description: Update Time Sheets.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateTimeSheetsRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTimeSheetsRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateTimeSheetsRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateTimeSheetsRequest'
          application/xml:
            schema:
              $ref: '#/components/schemas/UpdateTimeSheetsRequest'
          text/xml:
            schema:
              $ref: '#/components/schemas/UpdateTimeSheetsRequest'
          application/*+xml:
            schema:
              $ref: '#/components/schemas/UpdateTimeSheetsRequest'
        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
    NewTimeSheetsRequest:
      type: object
      properties:
        name:
          type:
          - 'null'
          - string
          description: Name (Optional)
        newTimeSheets:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/NewTimeSheet'
          description: Array of new time sheets
    UpdateTimeSheet:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id (Required and must the Id of the SI time sheet to update)
        date:
          type:
          - 'null'
          - string
          description: Date
          format: date-time
        dateTicks:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int64
        resource:
          type:
          - 'null'
          - string
          description: Resource
        resourceEmail:
          type:
          - 'null'
          - string
          description: Resource Email
        cF1:
          type:
          - 'null'
          - string
          description: Custom Fields 1 (Text)
        cF2:
          type:
          - 'null'
          - string
          description: Custom Fields 2 (Text)
        cF3:
          type:
          - 'null'
          - string
          description: Custom Fields 3 (Text)
        cF4:
          type:
          - 'null'
          - string
          description: Custom Fields 4 (Text)
        cF5:
          type:
          - 'null'
          - string
          description: Custom Fields 5 (Text)
        cF6:
          type:
          - 'null'
          - boolean
          description: Custom Fields 6 (boolean)
        cF7:
          type:
          - 'null'
          - boolean
          description: Custom Fields 7 (boolean)
        cF8:
          type:
          - 'null'
          - boolean
          description: Custom Fields 8 (boolean)
        cF9:
          type:
          - 'null'
          - boolean
          description: Custom Fields 9 (boolean)
        cF10:
          type:
          - 'null'
          - boolean
          description: Custom Fields 10 (boolean)
        cF11:
          type:
          - 'null'
          - string
          description: Custom Fields 11 (DateTime)
          format: date-time
        cF12:
          type:
          - 'null'
          - string
          description: Custom Fields 12 (DateTime)
          format: date-time
        cF13:
          type:
          - 'null'
          - string
          description: Custom Fields 13 (DateTime)
          format: date-time
        cF14:
          type:
          - 'null'
          - string
          description: Custom Fields 14 (DateTime)
          format: date-time
        cF15:
          type:
          - 'null'
          - string
          description: Custom Fields 15 (DateTime)
          format: date-time
        cF16:
          type:
          - 'null'
          - string
          description: Custom Fields 16 (List)
        cF17:
          type:
          - 'null'
          - string
          description: Custom Fields 17 (List)
        cF18:
          type:
          - 'null'
          - string
          description: Custom Fields 18 (List)
        cF19:
          type:
          - 'null'
          - string
          description: Custom Fields 19 (List)
        cF20:
          type:
          - 'null'
          - string
          description: Custom Fields 20 (List)
        cF21:
          type:
          - 'null'
          - string
          description: Custom Fields 21 (Hyperlink)
        cF22:
          type:
          - 'null'
          - string
          description: Custom Fields 22 (Hyperlink)
        cF23:
          type:
          - 'null'
          - string
          description: Custom Fields 23 (Hyperlink)
        cF24:
          type:
          - 'null'
          - string
          description: Custom Fields 24 (Hyperlink)
        cF25:
          type:
          - 'null'
          - string
          description: Custom Fields 25 (Long Text)
        cF26:
          type:
          - 'null'
          - string
          description: Custom Fields 26 (Long Text)
        cF27:
          type:
          - 'null'
          - string
          description: Custom Fields 27 (Long Text)
        cF28:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 28 (Number)
          format: double
        cF29:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 29 (Number)
          format: double
        cF30:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 30 (Number)
          format: double
        cF31:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 31 (Number)
          format: double
        cF32:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 32 (Number)
          format: double
        phase:
          type:
          - 'null'
          - string
          description: Phase
        laborType:
          type:
          - 'null'
          - string
          description: Labor Type
        subLaborType:
          type:
          - 'null'
          - string
          description: 'Sub-Labor Type: Values can be Install, Miscellaneous, Management, Design'
        typeId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: 'Type: Duration = 1, Time In/Out = 2 (Required)'
          format: uint8
        duration:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - number
          - string
          description: Duration in Hours (applicable if TypeId =  1 (Duration))
          format: double
        startTime:
          type:
          - 'null'
          - string
          description: Start Time (applicable if TypeId =  2 (Time In/Out))
          format: date-time
        endTime:
          type:
          - 'null'
          - string
          description: End Time (applicable if TypeId =  2 (Time In/Out))
          format: date-time
        billable:
          type:
          - 'null'
          - boolean
          description: Billable
        overtime:
          type: boolean
          description: Overtime
        description:
          type:
          - 'null'
          - string
          description: Description
    NewTimeSheet:
      type: object
      properties:
        entityId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: 'Entity associated to Time Sheet: Project = 1, Task = 2, Service Order = 3, Company = 4'
          format: uint8
        entitySourceId:
          type:
          - 'null'
          - string
          description: Id of the Project or Task or Service Order. EntitySourceId is not required If company time sheet
        date:
          type: string
          description: Date (Required)
          format: date-time
        dateTicks:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int64
        resource:
          type:
          - 'null'
          - string
          description: Resource
        resourceEmail:
          type:
          - 'null'
          - string
          description: Resource Email
        cF1:
          type:
          - 'null'
          - string
          description: Custom Fields 1 (Text)
        cF2:
          type:
          - 'null'
          - string
          description: Custom Fields 2 (Text)
        cF3:
          type:
          - 'null'
          - string
          description: Custom Fields 3 (Text)
        cF4:
          type:
          - 'null'
          - string
          description: Custom Fields 4 (Text)
        cF5:
          type:
          - 'null'
          - string
          description: Custom Fields 5 (Text)
        cF6:
          type:
          - 'null'
          - boolean
          description: Custom Fields 6 (boolean)
        cF7:
          type:
          - 'null'
          - boolean
          description: Custom Fields 7 (boolean)
        cF8:
          type:
          - 'null'
          - boolean
          description: Custom Fields 8 (boolean)
        cF9:
          type:
          - 'null'
          - boolean
          description: Custom Fields 9 (boolean)
        cF10:
          type:
          - 'null'
          - boolean
          description: Custom Fields 10 (boolean)
        cF11:
          type:
          - 'null'
          - string
          description: Custom Fields 11 (DateTime)
          format: date-time
        cF12:
          type:
          - 'null'
          - string
          description: Custom Fields 12 (DateTime)
          format: date-time
        cF13:
          type:
          - 'null'
          - string
          description: Custom Fields 13 (DateTime)
          format: date-time
        cF14:
          type:
          - 'null'
          - string
          description: Custom Fields 14 (DateTime)
          format: date-time
        cF15:
          type:
          - 'null'
          - string
          description: Custom Fields 15 (DateTime)
          format: date-time
        cF16:
          type:
          - 'null'
          - string
          description: Custom Fields 16 (List)
        cF17:
          type:
          - 'null'
          - string
          description: Custom Fields 17 (List)
        cF18:
          type:
          - 'null'
          - string
          description: Custom Fields 18 (List)
        cF19:
          type:
          - 'null'
          - string
          description: Custom Fields 19 (List)
        cF20:
          type:
          - 'null'
          - string
          description: Custom Fields 20 (List)
        cF21:
          type:
          - 'null'
          - string
          description: Custom Fields 21 (Hyperlink)
        cF22:
          type:
          - 'null'
          - string
          description: Custom Fields 22 (Hyperlink)
        cF23:
          type:
          - 'null'
          - string
          description: Custom Fields 23 (Hyperlink)
        cF24:
          type:
          - 'null'
          - string
          description: Custom Fields 24 (Hyperlink)
        cF25:
          type:
          - 'null'
          - string
          description: Custom Fields 25 (Long Text)
        cF26:
          type:
          - 'null'
          - string
          description: Custom Fields 26 (Long Text)
        cF27:
          type:
          - 'null'
          - string
          description: Custom Fields 27 (Long Text)
        cF28:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 28 (Number)
          format: double
        cF29:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 29 (Number)
          format: double
        cF30:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 30 (Number)
          format: double
        cF31:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 31 (Number)
          format: double
        cF32:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Custom Fields 32 (Number)
          format: double
        phase:
          type:
          - 'null'
          - string
          description: Phase
        laborType:
          type:
          - 'null'
          - string
          description: Labor Type
        subLaborType:
          type:
          - 'null'
          - string
          description: 'Sub-Labor Type: Values can be Install, Miscellaneous, Management, Design'
        typeId:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: 'Type: Duration = 1, Time In/Out = 2 (Required)'
          format: uint8
        duration:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - number
          - string
          description: Duration in Hours (applicable if TypeId =  1 (Duration))
          format: double
        startTime:
          type:
          - 'null'
          - string
          description: Start Time (applicable if TypeId =  2 (Time In/Out))
          format: date-time
        endTime:
          type:
          - 'null'
          - string
          description: End Time (applicable if TypeId =  2 (Time In/Out))
          format: date-time
        billable:
          type:
          - 'null'
          - boolean
          description: Billable
        overtime:
          type: boolean
          description: Overtime
        description:
          type:
          - 'null'
          - string
          description: Description
    UpdateTimeSheetsRequest:
      type: object
      properties:
        name:
          type:
          - 'null'
          - string
          description: Name (Optional)
        updateTimeSheets:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/UpdateTimeSheet'
          description: Array of update time sheets