Modern REST API for WebWork Tracker with OAuth2 authentication. This API provides access to workspaces, members, projects, and time tracking features.
- Get All Timesheets
WebWork Tracker REST API V2 (2.0.0)
Contracts
Manage contracts (project-member assignments) within workspaces. Contracts define which members are assigned to which projects, with settings for rates, hours limits, and screenshot modes. Rate information is only visible if you have permission to view rates and the project is billable.
Request
Retrieve all timesheets for a specific workspace. Supports filtering by status, date range, user ID, and specific timesheet ID. Results are paginated and can be sorted by creation date.
Filters:
id: Filter by specific encrypted timesheet IDstatus: Filter by timesheet status (e.g., open, submitted, approved, rejected)date_from/date_to: Filter by date rangeuser_id: Filter by user IDorder_by: Sort by creation date (asc or desc)
Response Structure:
- Totals: Each timesheet includes user information (
user_id,member), date range (date_from,date_to),total_minutes, submission details, and status. - Daily Breakdown: The
daily_breakdownobject contains daily tracked time grouped by date. Each date has an array of project entries showingproject_id,project_name,contract_id, andtotal_minutesfor that day. - Amount Information:
total_amountfields (both at timesheet level and in daily breakdown) are only included if the authenticated user has permission to see rates in the workspace.
Pagination:
- Results are paginated with configurable page size
- Default: 20 items per page, maximum: 100
Filter by specific encrypted timesheet ID. The ID is an encrypted string.
Filter by timesheet status. Possible values: pending, submitted, approved, rejected.
Filter timesheets starting from this date (inclusive). Format: YYYY-MM-DD.
Filter timesheets up to this date (inclusive). Format: YYYY-MM-DD.
Filter timesheets by user ID. Returns only timesheets belonging to the specified user.
Sort order for timesheets by created_at. Possible values: asc (ascending), desc (descending).
- Production Serverhttps://api.webwork-tracker.com/api/v2/timesheets
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X GET \
'https://api.webwork-tracker.com/api/v2/timesheets?workspace_id=1' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "success": true, "data": [ { … } ], "meta": { "api_version": "2.0.0", "timestamp": "2024-01-15T10:30:00.000000Z", "pagination": { … } } }
- Production Serverhttps://api.webwork-tracker.com/api/v2/timesheets/{timesheetId}/approve
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X PUT \
https://api.webwork-tracker.com/api/v2/timesheets/abc123xyz/approve \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1
}'{ "success": true, "data": null, "message": "Timesheet approved successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }
- Production Serverhttps://api.webwork-tracker.com/api/v2/timesheets/{timesheetId}/reject
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X PUT \
https://api.webwork-tracker.com/api/v2/timesheets/abc123xyz/reject \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1,
"reason": "Please correct the hours for Monday - they seem too high"
}'{ "success": true, "data": null, "message": "Timesheet rejected successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }
- Production Serverhttps://api.webwork-tracker.com/api/v2/timesheets/{timesheetId}/submit
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X PUT \
https://api.webwork-tracker.com/api/v2/timesheets/abc123xyz/submit \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1
}'{ "success": true, "data": null, "message": "Timesheet submitted successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }
- Production Serverhttps://api.webwork-tracker.com/api/v2/timesheets/{timesheetId}/unsubmit
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X PUT \
https://api.webwork-tracker.com/api/v2/timesheets/abc123xyz/unsubmit \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1
}'{ "success": true, "data": null, "message": "Timesheet unsubmitted successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }