Summary
The GET /time_tracking_entries endpoint now supports filtering by project, portfolio, task, and user. This enhancement allows you to retrieve time tracking entries across multiple contexts without needing to make separate API calls for each task or project.
What’s new
You can now query time tracking entries using these new optional parameters:
| Parameter | Type | Description |
|---|---|---|
attributable_to |
string | Project GID to get all time tracking entries attributed to a specific project |
portfolio |
string | Portfolio GID to get all time tracking entries from projects within a portfolio |
task |
string | Task GID to get all time tracking entries for a specific task |
user |
string | User GID to get all time tracking entries for a specific user (requires workspace parameter) |
workspace |
string | Workspace GID (required when using user parameter) |
Filter combinations
Multiple parameters can be combined using AND logic for more granular results. For example:
user+attributable_to= entries for a specific user on a specific projectportfolio+user= entries for a specific user across all projects in a portfoliotask+user= entries for a specific user on a specific task
Note: If both attributable_to and portfolio are provided, portfolio will be ignored since attributable_to is more specific.
Who’s affected
This enhancement is valuable for developers building:
- Time tracking dashboards that need to aggregate entries across projects
- Billing systems that require project-level or portfolio-level time reporting
- User productivity tools that track individual time allocation
- Project management applications with cross-project time analysis
Usage
Required parameters
At least one of the following parameter combinations is required:
attributable_toportfoliotaskuser+workspace
Example requests
Get all time entries for a user in a workspace:
GET /time_tracking_entries?user=23456&workspace=01234
Get all time entries attributed to a specific project:
GET /time_tracking_entries?attributable_to=34567
Get time entries for a user on a specific project:
GET /time_tracking_entries?user=23456&attributable_to=34567
Get all time entries across projects in a portfolio:
GET /time_tracking_entries?portfolio=45678
Example response
{
"data": [
{
"gid": "12345",
"resource_type": "time_tracking_entry",
"duration_minutes": 30,
"created_by": {
"gid": "23456",
"name": "Greg Sanchez",
"resource_type": "user"
},
"attributable_to": {
"gid": "34567",
"name": "Sample Project 1",
"resource_type": "project"
},
"entered_on": "2025-01-01"
},
{
"gid": "123451",
"resource_type": "time_tracking_entry",
"duration_minutes": 40,
"created_by": {
"gid": "23456",
"name": "Greg Sanchez",
"resource_type": "user"
},
"attributable_to": {
"gid": "45678",
"name": "Sample Project 2",
"resource_type": "project"
},
"entered_on": "2025-01-01"
}
]
}
Timeline
This is now available!
Next steps
Consider updating your applications to take advantage of:
- Simplified time tracking aggregation across multiple projects
- Portfolio-level time reporting capabilities
- Cross-project user time analysis
- Reduced API calls for bulk time tracking data retrieval
For complete API documentation, visit the Time Tracking Entries reference.