Update a time entry
Updates a logged time entry. Every field is optional, and anything you leave out keeps its current value.
Move the entry between projects or tasks with project_id and
task_uuid. Sending task_uuid also settles the project — it is taken
from the task, and any project_id you send is ignored. Send either as
null to detach.
Moving the entry to a different project recalculates rate and
non_billable from the new project unless you set them yourself.
As on creation, rate and non_billable are only honoured for a token
allowed to set billing, and reassigning owner_member_id to somebody
else needs permission to manage the whole team's time.
An entry already billed on a paid or in-progress invoice is frozen:
editing it fails with 422 not_accessible. Remove the invoice line item
first if you need to change it.
- Type: stringkeyrequired
The entry's
key, as returned in a time entry response.
The attributes to change, wrapped in a time_entry key. All of them are optional.
- Type: objecttime
_entry required
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl 'https://app.hellobonsai.com/public-api/v1/time_entries/{key}' \
--request PATCH \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"time_entry": {
"seconds": 5400,
"date": "2026-06-17",
"project_id": 51,
"task_uuid": "ad3fdad8-5072-46df-8800-bb57299179df",
"notes": "Homepage build",
"rate": "150.00",
"non_billable": false,
"owner_member_id": "me"
}
}'
{
"data": {
"key": "01JTR8Z9K5QW3M7VX4YB2NC6HD",
"seconds": 3600,
"date": "2026-06-17",
"notes": "Homepage build",
"rate": "150.0",
"non_billable": false,
"billable_amount": "150.0",
"status": "unbilled",
"project_id": 51,
"owner_member_id": 314,
"created_at": "2026-04-14T09:12:04.000Z",
"billing_status": "unbilled",
"currency": "USD",
"formatted_time": "01:00:00",
"task_uuid": "ad3fdad8-5072-46df-8800-bb57299179df"
},
"meta": {
"request_id": "b1f0d2c4-7a9e-4c3b-8d5f-1e2a3b4c5d6e"
}
}