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.

Path Parameters
  • key
    Type: string
    required

    The entry's key, as returned in a time entry response.

Body
required
application/json

The attributes to change, wrapped in a time_entry key. All of them are optional.

  • time_entry
    Type: object
    required
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for patch/public-api/v1/time_entries/{key}
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"
  }
}