List time entries
Lists logged time, newest first, a page at a time.
What comes back depends on the token: without permission to see the whole team's time, you only get your own entries, and filter[owner_member_id] cannot reach anyone else's.
The money fields — rate, billable_amount, non_billable and billing_status — are left out entirely for a token that is not allowed to see billing. Treat them as optional keys rather than assuming they are always there. The same token cannot filter on filter[billing_status] either: that would hand back the value the field is hiding, so it returns 403 instead.
Filtering
- filter[date_from] and filter[date_to] — a date range over the day the work was done. Both bounds are inclusive, and either works alone.
- filter[owner_member_id] — one or more team member ids, or me for whoever the token belongs to.
- filter[project_id] — one or more project ids.
- filter[company_id] — one or more client company ids, matched through each entry's project.
- filter[billing_status] — billed, unbilled or non_billable, or several at once. Needs permission to see billing.
- filter[currency] — one or more three-letter ISO 4217 currency codes.
Request
- Base URLhttps://app.hellobonsai.com
- URLhttps://app.hellobonsai.com/public-api/v1/time_entries
- Auth
- OAuth 2Authorization code: https://app.hellobonsai.com/oauth/authorizeToken URL: https://app.hellobonsai.com/oauth/token
- or HTTP bearer
Query parameters
Page to return, starting at 1.
Records per page. Defaults to 25; anything above 100 is reduced to 100.
Return entries dated on or after this day.
Return entries dated on or before this day.
One or more team member ids, comma-separated or repeated. Pass me for whoever the token belongs to. Reaching another member's time needs permission to see the whole team's time.
One or more project ids, comma-separated or repeated.
One or more client company ids, comma-separated or repeated. Matched through each entry's project.
Return entries in one or more billing states, comma-separated or repeated. Needs permission to see billing; without it this filter returns 403.
One or more three-letter ISO 4217 currency codes, comma-separated or repeated.
Response
A page of time entries, newest first.
Example response
{
"data": [
{
"key": "01JTR8Z9K5QW3M7VX4YB2NC6HD",
"seconds": 3600,
"date": "2026-06-17",
"notes": "Homepage build",
"rate": "150.0",
"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",
"pagination": {
"page": 1,
"page_size": 25,
"has_more": true
}
}
}Changes
No recorded changes to this operation across all 1 revision of this API.