TimeCamp [v3] Time Entry API

The [v3] Time Entry API from TimeCamp — 4 operation(s) for [v3] time entry.

OpenAPI Specification

timecamp-v3-time-entry-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: TimeCamp [v1] Approvals [v1] Approvals [v3] Time Entry 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] Time Entry'
  x-displayName: Time Entry
paths:
  /v3/time-entries:
    parameters: []
    post:
      operationId: tc2--get--time--entries
      deprecated: true
      description: 'Deprecated. This endpoint is being moved to `/time-entries/list`.

        Get time entries by user access and permissions.

        '
      summary: Get time entries by user permissions
      security:
      - api_key_in_header: []
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              x-examples:
                example-1:
                  startDate: '2021-12-01'
                  endDate: '2022-01-31'
                  userIds:
                  - 640
                  - 1961631
                  taskIds:
                  - 85753039
                  tagIds:
                  - 1
              properties:
                startDate:
                  type: string
                  description: Start date
                  format: date
                  example: '2022-01-01'
                endDate:
                  type: string
                  description: End date
                  format: date
                  example: '2022-01-31'
                userIds:
                  type: array
                  uniqueItems: true
                  description: Array of user ids
                  items:
                    type: integer
                    example: 0
                taskIds:
                  type: array
                  uniqueItems: true
                  description: Array of task ids
                  items:
                    type: integer
                    example: 0
                    default: 0
                tagIds:
                  type: array
                  uniqueItems: true
                  description: Array of tag ids
                  items:
                    type: integer
                    example: 0
              required:
              - startDate
              - endDate
            examples:
              'Example #1':
                value:
                  startDate: '2022-01-01'
                  endDate: '2022-01-31'
              'Example #2':
                value:
                  startDate: '2022-01-01'
                  endDate: '2022-01-31'
                  userIds:
                  - 1
                  - 2
                  - 3
                  taskIds:
                  - 1
                  - 10
                  tagIds:
                  - 5
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                type: array
                description: Array of time entry objects
                minItems: 0
                uniqueItems: true
                x-examples:
                  example-1:
                  - id: 1
                    duration: 4210
                    invoice_id: 0
                    last_modify: '2022-01-01 14:28:30'
                    date: '2022-01-01'
                    start_time: '10:54'
                    end_time: '12:28'
                    billable: true
                    description: null
                    user:
                      id: 1
                      email: john.doe@timecamp.com
                      display_name: John Doe
                    task:
                      id: 1
                      name: First task
                      color: '#4DC2E8'
                      billable: true
                    tags: []
                items:
                  type: object
                  description: Time entry object
                  properties:
                    id:
                      type: integer
                      description: Entry id
                      example: 1
                      format: int32
                    duration:
                      type: integer
                      description: Duration in seconds
                      format: int32
                      example: 300
                    invoice_id:
                      type: integer
                      description: Invoice id
                      format: int32
                      example: 1
                    last_modify:
                      type: string
                      format: date-time
                      example: '2022-01-01 10:05:00'
                      description: Last modify date
                    date:
                      type: string
                      format: date
                      example: '2022-01-01'
                      description: Time entry date
                    start_time:
                      type: string
                      example: '15:00'
                      description: Start time
                    end_time:
                      type: string
                      description: End time
                      example: '16:00'
                    billable:
                      type: boolean
                      description: Is billable
                    description:
                      type: string
                      description: Time entry description
                      nullable: true
                    user:
                      type: object
                      description: Related user data
                      nullable: true
                      properties:
                        id:
                          type: integer
                          description: User id
                          example: 1
                        email:
                          type: string
                          description: User email
                          example: john.doe@example.com
                        display_name:
                          type: string
                          description: User display name
                          example: John Doe
                    task:
                      type: object
                      description: Related task data
                      nullable: true
                      properties:
                        id:
                          type: number
                          description: Task id
                          example: 1
                        name:
                          type: string
                          description: Task name
                          example: My task
                        color:
                          type: string
                          description: Task color
                          example: '#000000'
                        billable:
                          type: boolean
                          description: Task is billable
                    tags:
                      type: array
                      description: Related tags data
                      items:
                        type: object
                        properties:
                          id:
                            type: integer
                            description: Tag id
                            example: 1
                          name:
                            type: string
                            description: Tag name
                            example: My first tag
                          tag_list:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: Tag list id
                                example: 1
                              name:
                                type: string
                                description: Tag list name
                                example: Tag list
                  required:
                  - id
                  - duration
                  - invoice_id
                  - last_modify
                  - date
                  - start_time
                  - end_time
                  - billable
                  - user
                  - task
                  - tags
              examples:
                'Example #1':
                  value:
                  - id: 1
                    duration: 4210
                    invoice_id: 0
                    last_modify: '2022-01-01 14:28:30'
                    date: '2022-01-01'
                    start_time: '10:54'
                    end_time: '12:28'
                    billable: true
                    description: null
                    user:
                      id: 1
                      email: john.doe@timecamp.com
                      display_name: John Doe
                    task:
                      id: 1
                      name: First task
                      color: '#4DC2E8'
                      billable: true
                    tags:
                    - id: 1
                      name: My first tag
                      tag_list:
                        id: 1
                        name: My tag list
                'Example #2':
                  value:
                  - id: 2
                    duration: 900
                    invoice_id: 0
                    last_modify: '2022-01-01 16:00:00'
                    date: '2022-01-01'
                    start_time: '13:00'
                    end_time: '13:15'
                    billable: true
                    description: null
                    user:
                      id: 1
                      email: john.doe@timecamp.com
                      display_name: John Doe
                    task: null
                    tags: []
                'Example #3':
                  value: []
          headers:
            Content-Type:
              schema:
                type: string
              description: application/json
      tags:
      - '[v3] Time Entry'
  /v3/time-entries/list:
    parameters: []
    post:
      operationId: tc2--get--time--entries-list
      description: Get time entries by user access and permissions.
      summary: Get time entries by user permissions
      security:
      - api_key_in_header: []
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              x-examples:
                example-1:
                  startDate: '2021-12-01'
                  endDate: '2022-01-31'
                  userIds:
                  - 640
                  - 1961631
                  taskIds:
                  - 85753039
                  tagIds:
                  - 1
              properties:
                startDate:
                  type: string
                  description: Start date
                  format: date
                  example: '2022-01-01'
                endDate:
                  type: string
                  description: End date
                  format: date
                  example: '2022-01-31'
                userIds:
                  type: array
                  uniqueItems: true
                  description: Array of user ids
                  items:
                    type: integer
                    example: 0
                taskIds:
                  type: array
                  uniqueItems: true
                  description: Array of task ids
                  items:
                    type: integer
                    example: 0
                    default: 0
                tagIds:
                  type: array
                  uniqueItems: true
                  description: Array of tag ids
                  items:
                    type: integer
                    example: 0
              required:
              - startDate
              - endDate
            examples:
              'Example #1':
                value:
                  startDate: '2022-01-01'
                  endDate: '2022-01-31'
              'Example #2':
                value:
                  startDate: '2022-01-01'
                  endDate: '2022-01-31'
                  userIds:
                  - 1
                  - 2
                  - 3
                  taskIds:
                  - 1
                  - 10
                  tagIds:
                  - 5
      responses:
        '200':
          description: OK response
          content:
            application/json:
              schema:
                type: array
                description: Array of time entry objects
                minItems: 0
                uniqueItems: true
                x-examples:
                  example-1:
                  - id: 1
                    duration: 4210
                    invoice_id: 0
                    last_modify: '2022-01-01 14:28:30'
                    date: '2022-01-01'
                    start_time: '10:54'
                    end_time: '12:28'
                    billable: true
                    description: null
                    user:
                      id: 1
                      email: john.doe@timecamp.com
                      display_name: John Doe
                    task:
                      id: 1
                      name: First task
                      color: '#4DC2E8'
                      billable: true
                    tags: []
                items:
                  type: object
                  description: Time entry object
                  properties:
                    id:
                      type: integer
                      description: Entry id
                      example: 1
                      format: int32
                    duration:
                      type: integer
                      description: Duration in seconds
                      format: int32
                      example: 300
                    invoice_id:
                      type: integer
                      description: Invoice id
                      format: int32
                      example: 1
                    last_modify:
                      type: string
                      format: date-time
                      example: '2022-01-01 10:05:00'
                      description: Last modify date
                    date:
                      type: string
                      format: date
                      example: '2022-01-01'
                      description: Time entry date
                    start_time:
                      type: string
                      example: '15:00'
                      description: Start time
                    end_time:
                      type: string
                      description: End time
                      example: '16:00'
                    billable:
                      type: boolean
                      description: Is billable
                    description:
                      type: string
                      description: Time entry description
                      nullable: true
                    user:
                      type: object
                      description: Related user data
                      nullable: true
                      properties:
                        id:
                          type: integer
                          description: User id
                          example: 1
                        email:
                          type: string
                          description: User email
                          example: john.doe@example.com
                        display_name:
                          type: string
                          description: User display name
                          example: John Doe
                    task:
                      type: object
                      description: Related task data
                      nullable: true
                      properties:
                        id:
                          type: number
                          description: Task id
                          example: 1
                        name:
                          type: string
                          description: Task name
                          example: My task
                        color:
                          type: string
                          description: Task color
                          example: '#000000'
                        billable:
                          type: boolean
                          description: Task is billable
                    tags:
                      type: array
                      description: Related tags data
                      items:
                        type: object
                        properties:
                          id:
                            type: integer
                            description: Tag id
                            example: 1
                          name:
                            type: string
                            description: Tag name
                            example: My first tag
                          tag_list:
                            type: object
                            properties:
                              id:
                                type: integer
                                description: Tag list id
                                example: 1
                              name:
                                type: string
                                description: Tag list name
                                example: Tag list
                  required:
                  - id
                  - duration
                  - invoice_id
                  - last_modify
                  - date
                  - start_time
                  - end_time
                  - billable
                  - user
                  - task
                  - tags
              examples:
                'Example #1':
                  value:
                  - id: 1
                    duration: 4210
                    invoice_id: 0
                    last_modify: '2022-01-01 14:28:30'
                    date: '2022-01-01'
                    start_time: '10:54'
                    end_time: '12:28'
                    billable: true
                    description: null
                    user:
                      id: 1
                      email: john.doe@timecamp.com
                      display_name: John Doe
                    task:
                      id: 1
                      name: First task
                      color: '#4DC2E8'
                      billable: true
                    tags:
                    - id: 1
                      name: My first tag
                      tag_list:
                        id: 1
                        name: My tag list
                'Example #2':
                  value:
                  - id: 2
                    duration: 900
                    invoice_id: 0
                    last_modify: '2022-01-01 16:00:00'
                    date: '2022-01-01'
                    start_time: '13:00'
                    end_time: '13:15'
                    billable: true
                    description: null
                    user:
                      id: 1
                      email: john.doe@timecamp.com
                      display_name: John Doe
                    task: null
                    tags: []
                'Example #3':
                  value: []
          headers:
            Content-Type:
              schema:
                type: string
              description: application/json
      tags:
      - '[v3] Time Entry'
  /v3/time-entries/create:
    post:
      summary: Create time entry
      description: Create a time entry.
      tags:
      - '[v3] Time Entry'
      operationId: create-time-entry
      security:
      - api_key_in_header: []
      parameters:
      - schema:
          type: string
          example: application/json
        in: header
        name: Accept
      - schema:
          type: string
          example: tc_web
        in: header
        name: Tc-service
        description: Optional service name used for activity and analytics context.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - date
              properties:
                date:
                  type: string
                  format: date
                  example: '2026-06-18'
                startTime:
                  type: string
                  example: 09:00:00
                endTime:
                  type: string
                  example: '10:00:00'
                duration:
                  type: integer
                  format: int32
                  description: Duration in seconds. If omitted, duration is calculated from start and end.
                  example: 3600
                taskId:
                  type: integer
                  format: int32
                  example: 123
                externalTaskId:
                  type: string
                  example: card_123
                assignedUserId:
                  type: integer
                  format: int32
                  example: 456
                userEmail:
                  type: string
                  format: email
                  example: user@example.com
                taskNameSearch:
                  type: string
                  example: Project task
                note:
                  type: string
                  example: Work note
                description:
                  type: string
                  example: Work note
                customId:
                  type: string
                  example: EXT-123
                billable:
                  type: boolean
                  example: true
                tags:
                  type: array
                  items:
                    oneOf:
                    - type: integer
                    - type: object
                      properties:
                        tagId:
                          type: integer
                baseEntryId:
                  type: integer
                  format: int32
                  example: 100
                place:
                  type: string
                  example: timesheet
            examples:
              Create:
                value:
                  date: '2026-06-18'
                  startTime: 09:00:00
                  endTime: '10:00:00'
                  taskId: 123
                  note: Work note
                  billable: true
      responses:
        '201':
          description: Time entry created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        format: int32
                        example: 123
                      duration:
                        type: integer
                        format: int32
                        example: 3600
                      userId:
                        type: integer
                        format: int32
                        example: 456
                      taskId:
                        type: integer
                        format: int32
                        example: 123
                      date:
                        type: string
                        format: date
                        example: '2026-06-18'
                      startTime:
                        type: string
                        example: 09:00:00
                      endTime:
                        type: string
                        example: '10:00:00'
                      description:
                        type: string
                        nullable: true
                        example: Work note
                      billable:
                        type: boolean
                        example: true
                      tags:
                        type: array
                        nullable: true
                        items:
                          type: integer
                          format: int32
                          example: 7
                  meta:
                    type: object
                    properties:
                      tags:
                        type: array
                        description: Tag metadata for tags assigned to the created time entry.
                        items:
                          type: object
                          required:
                          - id
                          - name
                          properties:
                            id:
                              type: integer
                              format: int32
                              example: 7
                            name:
                              type: string
                              example: My tag
              examples:
                Success Response:
                  value:
                    data:
                      id: 123
                      duration: 3600
                      userId: 456
                      taskId: 123
                      date: '2026-06-18'
                      startTime: 09:00:00
                      endTime: '10:00:00'
                      description: Work note
                      billable: true
                      tags:
                      - 7
                    meta:
                      tags:
                      - id: 7
                        name: My tag
        '400':
          description: Invalid request payload.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
  /v3/time-entries/{id}:
    put:
      summary: Update time entry
      description: Update a time entry by id.
      tags:
      - '[v3] Time Entry'
      operationId: update-time-entry
      security:
      - api_key_in_header: []
      parameters:
      - schema:
          type: string
          example: application/json
        in: header
        name: Accept
      - schema:
          type: string
          example: tc_web
        in: header
        name: Tc-service
        description: Optional service name used for activity and analytics context.
      - schema:
          type: integer
          minimum: 1
          example: 123
        in: path
        required: true
        name: id
        description: Time entry id.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              minProperties: 1
              properties:
                date:
                  type: string
                  format: date
                  example: '2026-06-18'
                startTime:
                  type: string
                  example: 09:00:00
                endTime:
                  type: string
                  example: '10:00:00'
                duration:
                  type: integer
                  format: int32
                  description: Duration in seconds.
                  example: 3600
                increase:
                  type: boolean
                  description: When true, adds duration to the current time entry duration instead of replacing it.
                  example: false
                note:
                  type: string
                  description: Time entry note. Takes precedence over description when both are provided.
                  example: Updated work note
                description:
                  type: string
                  description: Time entry description. Used when note is not provided.
                  example: Updated work note
                billable:
                  type: boolean
                  example: true
                invoiceId:
                  type: integer
                  format: int32
                  example: 44
                taskId:
                  type: integer
                  format: int32
                  example: 123
                analyticsPlace:
                  type: string
                  example: report_detailed
                analyticsElement:
                  type: string
                  example: duration
            examples:
              Update:
                value:
                  date: '2026-06-18'
                  startTime: 09:00:00
                  endTime: '10:00:00'
                  duration: 3600
                  increase: false
                  taskId: 123
                  note: Updated work note
                  billable: true
      responses:
        '200':
          description: Time entry updated successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    additionalProperties: true
                    properties:
                      entry_id:
                        type: integer
                        format: int32
                        example: 123
                      task_id:
                        type: integer
                        format: int32
                        example: 456
                      time_span:
                        type: integer
                        format: int32
                        description: Duration in seconds.
                        example: 3600
                      user_id:
                        type: integer
                        format: int32
                        example: 789
                      date:
                        type: string
                        format: date
                        example: '2026-06-18'
                      start_time_hour:
                        type: string
                        example: 09:00:00
                      end_time_hour:
                        type: string
                        example: '10:00:00'
                      note:
                        type: string
                        nullable: true
                        example: Updated work note
                      billable:
                        type: boolean
                        example: true
                      invoiceId:
                        type: integer
                        format: int32
                        example: 44
                      color:
                        type: string
                        nullable: true
                        example: '#4DC2E8'
                      tags:
                        type: array
                        items:
                          type: integer
                          format: int32
                          example: 7
                  meta:
                    type: object
                    properties:
                      tags:
                        type: array
                        description: Tag metadata for tags assigned to the updated time entry.
                        items:
                          type: object
                          required:
                          - id
                          - name
                          properties:
                            id:
                              type: integer
                              format: int32
                              example: 7
                            name:
       

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/timecamp/refs/heads/main/openapi/timecamp-v3-time-entry-api-openapi.yml