Skip to content

Time Entries

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.

FieldTypeDescription
iduuidUnique identifier for the time entry
project_iduuidID of the project the time was logged against
account_iduuidID of the account that owns the time entry
user_iduuidID of the user who logged the time
datestringDate the work was performed in ISO 8601 (YYYY-MM-DD) format
duration_minutesintDuration of the logged work in minutes
descriptionstringDescription of the work performed
billableboolWhether this time is billable to the client; defaults to true
created_atdatetimeTimestamp the time entry was created, ISO 8601
updated_atdatetimeTimestamp the time entry was last updated, ISO 8601
user_namestringName of the user who logged the time (read-only, populated via join)

Endpoint: time-entries-create

FieldTypeRequiredDescription
project_idstringYesID of the project to log time against
datestringNoDate the work was performed in ISO 8601 (YYYY-MM-DD) format; defaults to today if omitted
duration_minutesintYesDuration of the work in minutes; must be greater than 0
descriptionstringNoDescription of the work performed
billablebool?NoWhether this time is billable to the client; defaults to true when omitted
Terminal window
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

FieldTypeRequiredDescription
idstringYesID of the time entry to delete
Terminal window
curl -X POST https://api.driftwoodapp.com/api/time-entries-delete \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'

Endpoint: time-entries-list

FieldTypeRequiredDescription
project_idstringYesID of the project whose time entries to list
Terminal window
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

FieldTypeRequiredDescription
project_idstringYesID of the project to summarize logged time for
Terminal window
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

FieldTypeRequiredDescription
idstringYesID of the time entry to update
datestringNoUpdated work date in ISO 8601 (YYYY-MM-DD) format; ignored if empty
duration_minutesint?NoUpdated duration in minutes
descriptionstring?NoUpdated description of the work performed
billablebool?NoWhether this time is billable to the client
Terminal window
curl -X POST https://api.driftwoodapp.com/api/time-entries-update \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id": "..."}'
CodeDescription
time_entries.invalid_project_idInvalid project id
time_entries.duration_requiredDuration required
time_entries.invalid_idInvalid id
time_entries.not_foundNot found