Get time bookings grid
Retrieves a paginated, filterable grid of all time booking entries in the workspace.
What are Time Bookings? Time bookings (also called time logs or time entries) are records of working hours that employees have logged to specific tasks or projects. They document how much time was spent on different activities, which is essential for:
- Project planning and resource allocation
- Billing customers accurately
- Analyzing productivity and team workload
- Understanding where time is being spent in the organization
What data is returned: The grid returns time booking entries with the following information:
- Date: When the time was logged
- Hours: Amount of time logged (decimal format, e.g., 8.5 for 8 hours 30 minutes)
- Comment: Optional notes about the work performed
- Project ID: The project the time was logged to
- Task ID: The specific task (if time was logged to a task rather than just a project)
- User ID: Which employee logged the time
- Activity ID: The type of work performed (e.g., development, research, management)
- Value Group: The project value group for categorization
Response includes:
- Paginated list of time booking items
- Total count of matching entries
- totalHours: Sum of all hours across filtered entries (useful for reporting)
- Current page and page size
Filtering and sorting: You can filter by date range, project, task, user, activity, or value group. Quick search is available on comments. Results are sorted by date (newest first) by default.
Permissions: Requires either “seeLoggedTimeDetails” (to see your own time) or “seeCompanyLoggedTime” (to see all company time).
/timebookings/timeGridAuthorizationOAuth2 access token · headerrequiredapi:readAuthorizationBearer token (JWT) · headerrequiredpagenumberPage number (1-based)
pageSizenumberNumber of items per page
viewIdstringView identifier for saved grid configurations
quickSearchstringQuick search text. Searches across: comment
filtersstringJSON string containing filter configuration.
Available Fields:
- date (date): Date of the time log entry
- hours (number): Hours logged
- comment (string): Comment for the time log entry
- projectId (set): Project ID
- taskId (set): Task ID
- userId (set): User ID who logged the time
- activityId (set): Activity ID
- valueGroup (set): Project value group
Filter Structure:
[
{
"type": "string|number|date|set|boolean|array|task_status|task_type",
"fieldName": "field_name",
"value": {
"comparison": "comparison_type",
"value": "filter_value"
}
}
]
Group Filters (AND/OR Combinations):
[
{
"type": "group",
"fieldName": "group0.18807479823070028",
"value": {
"type": "or",
"filters": [
{
"type": "string",
"fieldName": "fileName",
"value": {
"comparison": "contain",
"value": "aa"
}
},
{
"type": "number",
"fieldName": "rowCount",
"value": {
"comparison": ">=",
"value": 33
}
}
]
}
}
]
Available Comparison Operators:
- date (date): Date of the time log entry (date filter). Available comparisons: equal, not_equal, >, <, >=, <=, between, lastMonth, thisMonth, is_empty, is_not_empty
- hours (number): Hours logged (number filter). Available comparisons: equal, not_equal, >, <, >=, <=, is_empty, is_not_empty
- comment (string): Comment for the time log entry (string filter). Available comparisons: contain, not_contain, equal, starts_with, ends_with, is_empty, is_not_empty
- projectId (set): Project ID (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
- taskId (set): Task ID (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
- userId (set): User ID who logged the time (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
- activityId (set): Activity ID (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
- valueGroup (set): Project value group (set filter). Available comparisons: in, not_in, is_empty, is_not_empty
Note: Use quickSearch parameter for simple text search instead of adding it to filters.
sortstringJSON array of sort objects.
Sortable Fields:
- date: Date of the time log entry
- hours: Hours logged
- projectId: Project ID
- taskId: Task ID
- userId: User ID who logged the time
- activityId: Activity ID
Sort Structure:
[
{
"field": "field_name",
"direction": "asc|desc"
}
]
Default Sort: date (desc)
fieldsToReturnstring[]Comma-separated list of field names to include in response items. If not provided, all fields are returned.
Available Fields: date, hours, comment, projectId, taskId, userId, activityId, valueGroup
groupstringGroup time bookings by date. When set, response includes groupMeta with fragment/full totals per group. Use "none" for ungrouped list. Default: none.
dayweekmonthnoneSuccessfully retrieved time bookings grid
groupMetaobject[]Group metadata when grouping is enabled (e.g. group=day, group=week, group=month). Each entry describes a group on the current page: groupKey, pageFragmentCount, fullGroupCount, pageFragmentSum, fullGroupSum, and continuation flags. Order matches group appearance in items.
Show propertiesHide properties
objectcontinuedFromPreviousbooleancontinuesToNextbooleanfullGroupCountnumberfullGroupSumnumbergroupKeystringpageFragmentCountnumberpageFragmentSumnumberitemsobject[]requiredArray of time booking entries matching the filter criteria. Each item represents a single time log entry with details about when, who, what, and how much time was logged.
Show propertiesHide properties
objectactivityIdstringUUID of the activity type (e.g., Development, Design, Management)
commentstring | nullOptional comment describing the work performed
datestring<date-time>Date when the work was performed (ISO 8601 format)
hoursnumberNumber of hours logged (decimal format, e.g., 8.5 for 8 hours 30 minutes)
idstringUnique identifier of the time booking entry
projectIdstringUUID of the project this time was logged to. Always present.
taskIdstring | nullUUID of the task this time was logged to. Null if time was logged directly to a project.
userIdstringUUID of the user (employee) who logged this time
pagenumberrequiredCurrent page number (1-based). The first page is page 1.
pageSizenumberrequiredNumber of items per page. This is the page size you requested (or the default if not specified). The actual number of items in the items array may be less than this if you are on the last page.
totalnumberrequiredTotal number of time booking entries matching the filter criteria across all pages. Use this to calculate total pages: Math.ceil(total / pageSize)
totalChildrennumberTotal number of child items when grouping is enabled. With strict raw-record pagination, this equals total. Only present when grouping is used.
totalHoursnumberrequiredSum of all hours across all filtered time booking entries. This is useful for reporting and calculating total time spent. The value is the sum of the hours field from all matching entries.
Invalid query parameters
Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions