D-Tools Subscribe Time Sheet API

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

Operations 3

GET /Subscribe/TimeSheets Get time sheets published by a SI user.
PUT /Subscribe/TimeSheets/MarkAsImported Mark a time sheet as imported for a given time sheet id
GET /Subscribe/TimeSheets/{id} Get a time sheet for a given time sheet id

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-subscribetimesheet-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-subscribetimesheet-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: D-Tools SI API Documentation Subscribe Time Sheet 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: SubscribeTimeSheet
  description: Allows an integration to subscribe to Time sheets published by SI users.
paths:
  /Subscribe/TimeSheets:
    get:
      tags:
      - SubscribeTimeSheet
      summary: Get time sheets published by a SI user.
      parameters:
      - name: clients
        in: query
        description: Clients to filter time sheets (Optional)
        schema:
          type: array
          items:
            type: string
      - name: includeImported
        in: query
        description: Boolean. Include already imported time sheets. Optional with default value false which means by default you will only see time sheets which are not imported.
        schema:
          type: boolean
          default: false
      - name: searchText
        in: query
        description: The search text.
        schema:
          type: string
      - name: includeDeleted
        in: query
        description: 'Boolean. Include time sheet deleted in SI. Optional with default value false which means

          by default you will only see active time sheets which are not deleted.'
        schema:
          type: boolean
          default: false
      - name: pageNumber
        in: query
        description: The page number.
        schema:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int32
          default: 1
      - name: pageSize
        in: query
        description: The page size.
        schema:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          format: int32
          default: 50
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeSheetsResult'
            text/json:
              schema:
                $ref: '#/components/schemas/TimeSheetsResult'
  /Subscribe/TimeSheets/MarkAsImported:
    put:
      tags:
      - SubscribeTimeSheet
      summary: Mark a time sheet as imported for a given time sheet id
      parameters:
      - name: id
        in: query
        description: The time sheet id.
        schema:
          type: string
      - name: publishedOnUnixTimeMs
        in: query
        description: The published on Unix time in milliseconds.
        schema:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - 'null'
          - integer
          - string
          format: int64
      responses:
        '200':
          description: ''
  /Subscribe/TimeSheets/{id}:
    get:
      tags:
      - SubscribeTimeSheet
      summary: Get a time sheet for a given time sheet id
      parameters:
      - name: id
        in: path
        description: The time sheet id.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeSheet'
            text/json:
              schema:
                $ref: '#/components/schemas/TimeSheet'
            application/xml:
              schema:
                $ref: '#/components/schemas/TimeSheet'
            text/xml:
              schema:
                $ref: '#/components/schemas/TimeSheet'
components:
  schemas:
    TimeSheetEntry:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id
        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
    TimeSheetInfo:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id
        client:
          type:
          - 'null'
          - string
          description: Client name
        number:
          type:
          - 'null'
          - string
          description: Project Number or Task Number or Service Order Number
        importedOn:
          type:
          - 'null'
          - string
          description: Date time sheet was imported by SI user
          format: date-time
        publishedOn:
          type: string
          description: Date time sheet was published by SI
          format: date-time
        publishedOnUnixTimeMs:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Date time sheet was published by SI user in Unix epoch milliseconds (UTC). This property can be passed to the Mark Time Sheet as Imported method optionally to make sure the time sheet was not updated in SI since it was published.
          format: int64
        deleted:
          type:
          - 'null'
          - boolean
          description: Time sheet deleted
      description: Time Sheet Information
    TimeSheet:
      type: object
      properties:
        id:
          type:
          - 'null'
          - string
          description: Unique Id
        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  (Required)
        date:
          type: 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
        client:
          type:
          - 'null'
          - string
          description: Client
        projectName:
          type:
          - 'null'
          - string
          description: Project Name
        projectNumber:
          type:
          - 'null'
          - string
          description: Project Number
        taskOrSVOName:
          type:
          - 'null'
          - string
          description: Task or Service Order Name
        taskOrSVONumber:
          type:
          - 'null'
          - string
          description: Task or Service Order Number
        duration:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Total Duration for all non overtime entries in time sheet
          format: double
        durationOverTime:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Total Duration for all overtime entries in time sheet
          format: double
        createdOn:
          type: string
          description: Date the time sheet was created (UTC Time)
          format: date-time
        updatedOn:
          type: string
          description: Date the time sheet was updated  (UTC Time)
          format: date-time
        approved:
          type:
          - 'null'
          - boolean
          description: Is time sheet Approved
        approvedBy:
          type:
          - 'null'
          - string
          description: If Time Sheet is approved the Time sheet Approved By
        approvedOn:
          type:
          - 'null'
          - string
          description: If Time Sheet is approved the Time sheet Approved Date
          format: date-time
        costHr:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Cost Per Hr for non overtime work
          format: double
        costHrOverTime:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Cost Per Hr for overtime work
          format: double
        totalCost:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
          - 'null'
          - number
          - string
          description: Total Cost
          format: double
        entries:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/TimeSheetEntry'
          description: Entries for time sheet
        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
        publishedOn:
          type: string
          description: Date time sheet was published by SI
          format: date-time
        publishedOnUnixTimeMs:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Date time sheet was published by SI user in Unix epoch milliseconds (UTC). This property can be passed to the Mark Time Sheet as Imported method optionally to make sure the time sheet was not updated in SI since it was published.
          format: int64
    TimeSheetsResult:
      type: object
      properties:
        timeSheets:
          type:
          - 'null'
          - array
          items:
            $ref: '#/components/schemas/TimeSheetInfo'
          description: Time sheets array
        totalCount:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
          - integer
          - string
          description: Total count of time sheet
          format: int32