TimeCamp [v3] Task API

The [v3] Task API from TimeCamp — 5 operation(s) for [v3] task.

OpenAPI Specification

timecamp-v3-task-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: TimeCamp [v1] Approvals [v1] Approvals [v3] Task API
  version: '1.0'
  contact:
    email: support@timecamp.com
  termsOfService: https://www.timecamp.com/terms-conditions/
  description: 'Documentation for the TimeCamp system.


    Get your API token here:

    https://app.timecamp.com/app#/settings/users/me


    Be aware that you can reach API calls limit. Once you do you will get HTTP code 429 response.


    Request example:


    ```

    GET https://app.timecamp.com/third_party/api/user?user_id=1234567


    Headers:

    Authorization: Bearer 87c21299960a88888888fe123

    Accept: application/json

    ```

    '
servers:
- url: https://app.timecamp.com/third_party/api
  description: PRODUCTION
- url: https://v4.api.timecamp.com
  description: PRODUCTION
tags:
- name: '[v3] Task'
  x-displayName: Task
paths:
  /v3/task/remove:
    post:
      summary: Task remove
      tags:
      - '[v3] Task'
      operationId: post-task-remove
      security:
      - api_key_in_header: []
      parameters:
      - schema:
          type: string
          example: application/json
        in: header
        name: Accept
      - schema:
          type: string
          example: application/json
        in: header
        name: Content-Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                taskIds:
                  type: array
                  items:
                    type: integer
              required:
              - taskIds
              x-examples:
                Example 1:
                  taskIds:
                  - 2500464
                  - 91423694
            examples:
              Example 1:
                value:
                  taskIds:
                  - 2500464
                  - 91423694
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                x-examples:
                  Example 1:
                    message: Tasks have been queued for removal
              examples:
                Example 1:
                  value:
                    message: Tasks have been queued for removal
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                x-examples:
                  Example 1:
                    message: Can't remove task
              examples:
                Example 1:
                  value:
                    message: Can't remove task
  /v3/task/duplicate:
    post:
      summary: Task duplicate
      tags:
      - '[v3] Task'
      operationId: post-task-duplicate
      security:
      - api_key_in_header: []
      parameters:
      - schema:
          type: string
          example: application/json
        in: header
        name: Accept
      - schema:
          type: string
          example: application/json
        in: header
        name: Content-Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                taskId:
                  type: integer
              required:
              - taskId
              x-examples:
                Example 1:
                  taskId: 2500464
            examples:
              Example 1:
                value:
                  taskId: 2500464
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                x-examples:
                  Example 1:
                    message: Task has been queued for duplication
              examples:
                Example 1:
                  value:
                    message: Task has been queued for duplication
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                x-examples:
                  Example 1:
                    message: Can't duplicate task
              examples:
                Example 1:
                  value:
                    message: Can't duplicate task
  /v3/task/duplicate-batch:
    post:
      summary: Task duplicate batch
      tags:
      - '[v3] Task'
      operationId: post-task-duplicate-batch
      security:
      - api_key_in_header: []
      parameters:
      - schema:
          type: string
          example: application/json
        in: header
        name: Accept
      - schema:
          type: string
          example: application/json
        in: header
        name: Content-Type
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                taskIds:
                  type: array
                  items:
                    type: integer
                  minItems: 1
                  description: If both an ancestor task ID and its descendant task ID are provided, only the highest selected ancestor is queued for duplication.
              required:
              - taskIds
              x-examples:
                Example 1:
                  taskIds:
                  - 2500464
                  - 2500465
            examples:
              Example 1:
                value:
                  taskIds:
                  - 2500464
                  - 2500465
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                x-examples:
                  Example 1:
                    message: 1 tasks out of 2 have been queued for duplication
              examples:
                Example 1:
                  value:
                    message: 1 tasks out of 2 have been queued for duplication
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                x-examples:
                  Example 1:
                    message: Can't duplicate tasks
              examples:
                Example 1:
                  value:
                    message: Can't duplicate tasks
  /v3/task/{id}/worklogs/move:
    post:
      summary: Task worklog move
      tags:
      - '[v3] Task'
      operationId: post-task-worklog-move
      security:
      - api_key_in_header: []
      parameters:
      - schema:
          type: string
          example: application/json
        in: header
        name: Accept
      - schema:
          type: string
          example: application/json
        in: header
        name: Content-Type
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: Source task ID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                destinationTaskId:
                  type: integer
                  description: Destination task ID.
                from:
                  type: string
                  format: date
                  description: Start date of the period to move in `Y-m-d` format.
                to:
                  type: string
                  format: date
                  description: End date of the period to move in `Y-m-d` format.
                userIds:
                  type: array
                  items:
                    type: integer
              required:
              - destinationTaskId
            examples:
              MoveSelectedPeriod:
                value:
                  destinationTaskId: 2500465
                  from: '2026-04-01'
                  to: '2026-04-10'
                  userIds:
                  - 15
              MoveAllAvailableTime:
                value:
                  destinationTaskId: 2500465
                  userIds:
                  - 15
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  entriesMoved:
                    type: integer
                  userLogsMoved:
                    type: integer
              examples:
                Example 1:
                  value:
                    message: Task worklogs have been moved.
                    entriesMoved: 12
                    userLogsMoved: 24
        '400':
          description: Validation failure or payload processing error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        property:
                          type: string
                        message:
                          type: string
              examples:
                ValidationError:
                  value:
                    message: Request validation failed
                    errors:
                    - property: from
                      message: Invalid time range
                PayloadProcessingError:
                  value:
                    message: There was an internal error while trying to save this payload
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                Example 1:
                  value:
                    message: You are not allowed to move worklogs
  /v3/task/{id}/change-parent:
    post:
      summary: Task change parent
      tags:
      - '[v3] Task'
      operationId: post-task-change-parent
      security:
      - api_key_in_header: []
      parameters:
      - schema:
          type: string
          example: application/json
        in: header
        name: Accept
      - schema:
          type: string
          example: application/json
        in: header
        name: Content-Type
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: Task ID to move.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                parentId:
                  type: integer
                  description: New parent task ID. Use `0` to move the task to the root level.
              required:
              - parentId
            examples:
              MoveUnderParent:
                value:
                  parentId: 2500465
              MoveToRoot:
                value:
                  parentId: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                Example 1:
                  value:
                    message: Task has been queued for change parent
        '400':
          description: Validation failure
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        property:
                          type: string
                        message:
                          type: string
              examples:
                Example 1:
                  value:
                    message: Request validation failed
                    errors:
                    - property: parentId
                      message: Parent task ID must be an integer.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                Example 1:
                  value:
                    message: You are not allowed to change parent task
        '409':
          description: Change parent job already in progress
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                Example 1:
                  value:
                    message: Task change parent is already in progress for taskId 2500465.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              examples:
                Example 1:
                  value:
                    message: An unspecified error occurred.
components:
  securitySchemes:
    api_key_in_header:
      type: http
      scheme: bearer
      description: ''
    OIDC:
      type: openIdConnect
      openIdConnectUrl: authenticate/oidc
x-tagGroups:
- name: TimeCamp API
  tags:
  - '[v1] User'
  - '[v1] Entry'
  - '[v1] Tags'
  - '[v1] Group'
  - '[v1] Approvals'
  - '[v1] Computer Activities'
  - '[v1] Timer'
  - '[v1] Task'
  - '[v1] Attendance'
  - '[v1] Roles & Permissions'
  - '[v1] Billing Rates'
  - '[v1] Userlog'
  - '[v1] Activity alert'
  - '[v3] Timer'
  - '[v3] Invoices'
  - '[v3] Computer Activities'
  - '[v3] Time Entry'
  - '[v3] Task Archive'
  - '[v3] Time Entry Restriction'
  - '[v3] Expense'
  - '[v3] Plan'
  - '[v3] Storage'
  - '[v3] Module'
  - '[v3] Marketplace'
  - '[v3] Remote work detection'
  - '[v3] Data Export'
  - '[v3] Custom Fields'
  - '[v3] Approval'
  - '[v3] Task'
  - '[v3] Projects'
  - '[v3] Attendance'
  - '[v3] Attendance Requests'