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": "7745"
          }
        },
        "service": {
          "data": {
            "type": "services",
            "id": "1161"
          }
        },
        "task": {
          "data": {
            "type": "tasks",
            "id": "415"
          }
        }
      }
    },
    {
      "type": "time_entries",
      "attributes": {
        "note": "second note",
        "date": "2024-08-28",
        "time": 120
      },
      "relationships": {
        "person": {
          "data": {
            "type": "people",
            "id": "7745"
          }
        },
        "service": {
          "data": {
            "type": "services",
            "id": "1161"
          }
        },
        "task": {
          "data": {
            "type": "tasks",
            "id": "415"
          }
        }
      }
    }
  ]
}
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-10-25T06:21:45.914+02:00",
        "time": 120,
        "billable_time": 120,
        "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-10-25T06:21:45.914+02: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-10-25T06:21:45.915+02: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": "2059"
          }
        },
        "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-10-25T06:21:45.954+02:00",
        "time": 120,
        "billable_time": 120,
        "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-10-25T06:21:45.954+02: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-10-25T06:21:45.954+02: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": "2059"
          }
        },
        "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-10-25T06:21:46.444+02:00",
        "time": 480,
        "billable_time": 480,
        "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-10-25T06:21:46.528+02: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-10-25T06:21:46.444+02: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": "2060"
          }
        },
        "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-10-25T06:21:46.472+02:00",
        "time": 480,
        "billable_time": 480,
        "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-10-25T06:21:46.556+02: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-10-25T06:21:46.472+02: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": "2060"
          }
        },
        "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-10-25T06:21:55.972+02:00",
        "time": 480,
        "billable_time": 480,
        "note": "one",
        "track_method_id": 1,
        "started_at": null,
        "timer_started_at": null,
        "timer_stopped_at": null,
        "approved": true,
        "approved_at": "2025-10-25T06:21:56.000+02:00",
        "updated_at": "2025-10-25T06:21:56.206+02: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-10-25T06:21:55.972+02: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": "234",
      "type": "time_entries",
      "attributes": {
        "date": "2016-10-01",
        "created_at": "2025-10-25T06:21:56.001+02:00",
        "time": 480,
        "billable_time": 480,
        "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-10-25T06:21:56.224+02: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-10-25T06:21:56.001+02: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": {}
}

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 its 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-10-25T06:22:06.237+02:00",
        "time": 480,
        "billable_time": 480,
        "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-10-25T06:22:06.560+02: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-10-25T06:22:06.237+02: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": "2071"
          }
        },
        "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-10-25T06:22:06.295+02:00",
        "time": 480,
        "billable_time": 480,
        "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-10-25T06:22:06.617+02: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-10-25T06:22:06.295+02: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": "2071"
          }
        },
        "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 25 Oct 2025