Time entries let your team log hours against projects. Track billable vs. non-billable time, see per-project summaries, and know where your team’s effort is going.
Field Type Description iduuid Unique identifier for the time entry project_iduuid ID of the project the time was logged against account_iduuid ID of the account that owns the time entry user_iduuid ID of the user who logged the time datestring Date the work was performed in ISO 8601 (YYYY-MM-DD) format duration_minutesint Duration of the logged work in minutes descriptionstring Description of the work performed billablebool Whether this time is billable to the client; defaults to true created_atdatetime Timestamp the time entry was created, ISO 8601 updated_atdatetime Timestamp the time entry was last updated, ISO 8601 user_namestring Name of the user who logged the time (read-only, populated via join)
Endpoint: time-entries-create
Field Type Required Description project_idstring Yes ID of the project to log time against datestring No Date the work was performed in ISO 8601 (YYYY-MM-DD) format; defaults to today if omitted duration_minutesint Yes Duration of the work in minutes; must be greater than 0 descriptionstring No Description of the work performed billablebool? No Whether this time is billable to the client; defaults to true when omitted
curl -X POST https://api.driftwoodapp.com/api/time-entries-create \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"project_id": "...", "duration_minutes": 0} '
Endpoint: time-entries-delete
Field Type Required Description idstring Yes ID of the time entry to delete
curl -X POST https://api.driftwoodapp.com/api/time-entries-delete \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Endpoint: time-entries-list
Field Type Required Description project_idstring Yes ID of the project whose time entries to list
curl -X POST https://api.driftwoodapp.com/api/time-entries-list \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"project_id": "..."} '
Endpoint: time-entries-summary
Field Type Required Description project_idstring Yes ID of the project to summarize logged time for
curl -X POST https://api.driftwoodapp.com/api/time-entries-summary \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
-d ' {"project_id": "..."} '
Endpoint: time-entries-update
Field Type Required Description idstring Yes ID of the time entry to update datestring No Updated work date in ISO 8601 (YYYY-MM-DD) format; ignored if empty duration_minutesint? No Updated duration in minutes descriptionstring? No Updated description of the work performed billablebool? No Whether this time is billable to the client
curl -X POST https://api.driftwoodapp.com/api/time-entries-update \
-H " Authorization: Bearer YOUR_TOKEN " \
-H " Content-Type: application/json " \
Code Description time_entries.invalid_project_idInvalid project id time_entries.duration_requiredDuration required time_entries.invalid_idInvalid id time_entries.not_foundNot found