My work

list-worklogs-tool

List your time entries, optionally filtered by date range, project, description or user.

Returns paginated worklog rows for the authenticated user, or for another user if the caller holds times::update_others. Each row includes project, customer, deadline and work-item context.

Inputs

NameTypeRequiredDescription
date_fromstring (Y-m-d)noInclusive lower bound on the worklog date.
date_tostring (Y-m-d)noInclusive upper bound on the worklog date. Must be on or after date_from.
project_idintegernoLimit to one project.
searchstringnoSubstring match on the description (case-insensitive).
user_idintegernoDefaults to the authenticated user. A different value requires times::update_others.
limitintegernoPage size, 1–100, default 25.
offsetintegernoNumber of rows to skip, default 0.

Permissions

  • Own worklogs: none required.
  • Another user's worklogs: times::update_others.

Example

{
  "date_from": "2026-05-11",
  "date_to": "2026-05-17",
  "project_id": 7
}

Response

{
  "data": [
    {
      "id": 42,
      "date": "2026-05-15",
      "minutes": 90,
      "duration": "1:30",
      "description": "Refactor payment gateway",
      "is_overtime": false,
      "is_not_billable": false,
      "project": {
        "id": 7,
        "title": "ACME website",
        "customer": { "id": 3, "name": "ACME", "code": "ACM" }
      },
      "deadline": {
        "id": 21,
        "description": "Launch v2",
        "due_date": "2026-06-01",
        "is_finished": false
      },
      "work_item": { "id": 88, "title": "Stripe SDK upgrade" }
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 25,
    "offset": 0,
    "has_more": false
  }
}

Errors

  • A malformed date_from / date_to (not Y-m-d) returns a validation error.
  • Passing a user_id other than your own without times::update_others returns an authorization error.

On this page