API Documentation

API Endpoint

Time Entries - Bulk

Time Entries - Bulk

The Time Entries Bulk endpoint enables efficient management of multiple time entries simultaneously. This API provides bulk operations for creating, updating, deleting, and managing approval state for time entries.

Available Actions

  • Create

  • Update

  • Delete

  • Approve

  • Unapprove

POST /api/v2/time_entries
Requestscreates time_entries

POST  /api/v2/time_entries

Headers
Accept: application/vnd.api+json; ext=bulk
Content-Type: application/vnd.api+json; ext=bulk
Body
{
  "data": [
    {
      "type": "time_entries",
      "attributes": {
        "note": "first note",
        "date": "2024-08-28",
        "time": 120
      },
      "relationships": {
        "person": {
          "data": {
            "type": "people",
            "id": "7759"
          }
        },
        "service": {
          "data": {
            "type": "services",
            "id": "1161"
          }
        },
        "task": {
          "data": {
            "type": "tasks",
            "id": "414"
          }
        }
      }
    },
    {
      "type": "time_entries",
      "attributes": {
        "note": "second note",
        "date": "2024-08-28",
        "time": 120
      },
      "relationships": {
        "person": {
          "data": {
            "type": "people",
            "id": "7759"
          }
        },
        "service": {
          "data": {
            "type": "services",
            "id": "1161"
          }
        },
        "task": {
          "data": {
            "type": "tasks",
            "id": "414"
          }
        }
      }
    }
  ]
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "219",
      "type": "time_entries",
      "attributes": {
        "date": "2024-08-28",
        "created_at": "2025-11-15T05:19:16.470+01:00",
        "time": 120,
        "billable_time": 120,
        "recognized_time": 0,
        "note": "first note",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": false,
        "approved_at": null,
        "updated_at": "2025-11-15T05:19:16.470+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:16.470+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 4000,
        "cost_default": 5000,
        "cost_normalized": 4000,
        "work_cost": 4000,
        "work_cost_default": 5000,
        "work_cost_normalized": 4000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2065"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "220",
      "type": "time_entries",
      "attributes": {
        "date": "2024-08-28",
        "created_at": "2025-11-15T05:19:16.509+01:00",
        "time": 120,
        "billable_time": 120,
        "recognized_time": 0,
        "note": "second note",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": false,
        "approved_at": null,
        "updated_at": "2025-11-15T05:19:16.509+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:16.509+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 4000,
        "cost_default": 5000,
        "cost_normalized": 4000,
        "work_cost": 4000,
        "work_cost_default": 5000,
        "work_cost_normalized": 4000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2065"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "meta": {}
}

Create time entries
POST/api/v2/time_entries

URI Parameters
HideShow
date
date (required) Example: 2018-01-01

date

service_id
number (required) Example: 1

service id

person_id
number (required) Example: 1

person id

task_id
number (optional) Example: 1

task id

note
string (optional) Example: Note

note

time
number (optional) Example: 60

time in minutes


PATCH /api/v2/time_entries
Requestsupdates time entries when valid params

PATCH  /api/v2/time_entries

Headers
Accept: application/vnd.api+json; ext=bulk
Content-Type: application/vnd.api+json; ext=bulk
Body
{
  "data": [
    {
      "id": 221,
      "type": "time_entries",
      "attributes": {
        "note": "new first note"
      }
    },
    {
      "id": 222,
      "type": "time_entries",
      "attributes": {
        "note": "new second note"
      }
    }
  ]
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "221",
      "type": "time_entries",
      "attributes": {
        "date": "2016-10-01",
        "created_at": "2025-11-15T05:19:16.981+01:00",
        "time": 480,
        "billable_time": 480,
        "recognized_time": 0,
        "note": "new first note",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": false,
        "approved_at": null,
        "updated_at": "2025-11-15T05:19:17.074+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:16.981+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 16000,
        "cost_default": 20000,
        "cost_normalized": 16000,
        "work_cost": 16000,
        "work_cost_default": 20000,
        "work_cost_normalized": 16000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2066"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "222",
      "type": "time_entries",
      "attributes": {
        "date": "2016-10-01",
        "created_at": "2025-11-15T05:19:17.019+01:00",
        "time": 480,
        "billable_time": 480,
        "recognized_time": 0,
        "note": "new second note",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": false,
        "approved_at": null,
        "updated_at": "2025-11-15T05:19:17.101+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:17.019+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 16000,
        "cost_default": 20000,
        "cost_normalized": 16000,
        "work_cost": 16000,
        "work_cost_default": 20000,
        "work_cost_normalized": 16000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2066"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "meta": {}
}

Update time entries
PATCH/api/v2/time_entries

URI Parameters
HideShow
date
date (required) Example: 2018-01-01

date

service_id
number (required) Example: 1

service id

person_id
number (required) Example: 1

person id

task_id
number (optional) Example: 1

task id

note
string (optional) Example: Note

note

time
number (optional) Example: 60

time in minutes


DELETE /api/v2/time_entries
Requestsdeletes time entries

DELETE  /api/v2/time_entries

Headers
Accept: application/vnd.api+json; ext=bulk
Content-Type: application/vnd.api+json; ext=bulk
Body
{
  "data": [
    {
      "id": 229,
      "type": "time_entries"
    },
    {
      "id": 230,
      "type": "time_entries"
    }
  ]
}
Responses204
This response has no content.

Deletes time entries
DELETE/api/v2/time_entries

URI Parameters
HideShow
id
number (required) Example: 1

time_entry id


PATCH /api/v2/time_entries/approve
Requestsapproves time entries and its approval statuses if flag enabled

PATCH  /api/v2/time_entries/approve

Headers
Accept: application/vnd.api+json; ext=bulk
Content-Type: application/vnd.api+json; ext=bulk
Body
{
  "data": [
    {
      "id": 233,
      "type": "time_entries"
    },
    {
      "id": 234,
      "type": "time_entries"
    }
  ]
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "233",
      "type": "time_entries",
      "attributes": {
        "date": "2016-10-01",
        "created_at": "2025-11-15T05:19:23.766+01:00",
        "time": 480,
        "billable_time": 480,
        "recognized_time": 0,
        "note": "one",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": true,
        "approved_at": "2025-11-15T05:19:23.000+01:00",
        "updated_at": "2025-11-15T05:19:23.992+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:23.766+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 16000,
        "cost_default": 20000,
        "cost_normalized": 16000,
        "work_cost": 16000,
        "work_cost_default": 20000,
        "work_cost_normalized": 16000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2072"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "234",
      "type": "time_entries",
      "attributes": {
        "date": "2016-10-01",
        "created_at": "2025-11-15T05:19:23.794+01:00",
        "time": 480,
        "billable_time": 480,
        "recognized_time": 0,
        "note": "two",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": false,
        "approved_at": null,
        "updated_at": "2025-11-15T05:19:24.010+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:23.794+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 16000,
        "cost_default": 20000,
        "cost_normalized": 16000,
        "work_cost": 16000,
        "work_cost_default": 20000,
        "work_cost_normalized": 16000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2072"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "meta": {}
}

Approves time entries
PATCH/api/v2/time_entries/approve

URI Parameters
HideShow
id
number (required) Example: 1

time_entry id


PATCH /api/v2/time_entries/unapprove
Requestsunapproves time entries and recreates approval statuses if flag enabled

PATCH  /api/v2/time_entries/unapprove

Headers
Accept: application/vnd.api+json; ext=bulk
Content-Type: application/vnd.api+json; ext=bulk
Body
{
  "data": [
    {
      "id": 243,
      "type": "time_entries"
    },
    {
      "id": 244,
      "type": "time_entries"
    }
  ]
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "243",
      "type": "time_entries",
      "attributes": {
        "date": "2016-10-01",
        "created_at": "2025-11-15T05:19:31.213+01:00",
        "time": 480,
        "billable_time": 480,
        "recognized_time": 0,
        "note": "one",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": false,
        "approved_at": null,
        "updated_at": "2025-11-15T05:19:31.457+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:31.213+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 16000,
        "cost_default": 20000,
        "cost_normalized": 16000,
        "work_cost": 16000,
        "work_cost_default": 20000,
        "work_cost_normalized": 16000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2077"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    },
    {
      "id": "244",
      "type": "time_entries",
      "attributes": {
        "date": "2016-10-01",
        "created_at": "2025-11-15T05:19:31.254+01:00",
        "time": 480,
        "billable_time": 480,
        "recognized_time": 0,
        "note": "two",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": false,
        "approved_at": null,
        "updated_at": "2025-11-15T05:19:31.496+01:00",
        "calendar_event_id": null,
        "invoice_attribution_id": null,
        "invoiced": false,
        "overhead": true,
        "rejected": false,
        "rejected_reason": null,
        "rejected_at": null,
        "last_activity_at": "2025-11-15T05:19:31.254+01:00",
        "submitted": false,
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "cost": 16000,
        "cost_default": 20000,
        "cost_normalized": 16000,
        "work_cost": 16000,
        "work_cost_default": 20000,
        "work_cost_normalized": 16000,
        "overhead_cost": 0,
        "overhead_cost_default": 0,
        "overhead_cost_normalized": 0,
        "internal_overhead_cost": 0,
        "internal_overhead_cost_default": 0,
        "internal_overhead_cost_normalized": 0,
        "facility_overhead_cost": 0,
        "facility_overhead_cost_default": 0,
        "facility_overhead_cost_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "2077"
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "service": {
          "meta": {
            "included": false
          }
        },
        "task": {
          "meta": {
            "included": false
          }
        },
        "approver": {
          "meta": {
            "included": false
          }
        },
        "updater": {
          "meta": {
            "included": false
          }
        },
        "rejecter": {
          "meta": {
            "included": false
          }
        },
        "creator": {
          "meta": {
            "included": false
          }
        },
        "last_actor": {
          "meta": {
            "included": false
          }
        },
        "person_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "deal_subsidiary": {
          "meta": {
            "included": false
          }
        },
        "timesheet": {
          "meta": {
            "included": false
          }
        },
        "invoice_attribution": {
          "meta": {
            "included": false
          }
        },
        "approval_statuses": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "meta": {}
}

Unapproves time entries
PATCH/api/v2/time_entries/unapprove

URI Parameters
HideShow
id
number (required) Example: 1

time_entry id


Generated by aglio on 15 Nov 2025