Modern REST API for WebWork Time Tracker with OAuth2 authentication. This API provides access to workspaces, members, projects, and time tracking features.
WebWork Time Tracker API V2 Documentation (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.
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-entries
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X GET \
'https://api.webwork-tracker.com/api/v2/time-entries?workspace_id=1&user_id=100&date=2026-01-29' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "success": true, "data": [ { … } ], "meta": { "api_version": "2.0.0", "timestamp": "2026-01-29T12:00:00.000000Z", "pagination": { … } } }
Request
Create a new time entry manually. This is useful for adding historical time entries or entries that weren't tracked in real-time. Requires workspace owner or executive manager permissions.
Important Notes:
- Time entries are validated against member and contract limits
- Overlapping time entries may result in partial time being saved
- The response will indicate if only partial time was added due to limits or overlaps
Activity notes or description
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-entries
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X POST \
https://api.webwork-tracker.com/api/v2/time-entries \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1,
"user_id": 100,
"contract_id": 20,
"task_id": 5,
"notes": "Working on feature implementation",
"date": "2026-01-29",
"start_time": "09:00",
"end_time": "17:00"
}'Time entry created successfully (full or partial)
Human-readable message indicating the result. May include warnings about partial saves.
Number of minutes actually saved. May be less than requested if limits were reached.
{ "success": true, "message": "8 hr successfully added for John Doe.", "saved_minutes": 480, "data": { "user_id": 100, "contract_id": 20, "project_id": 10, "project_name": "Website Redesign", "task_id": 5, "task_title": "Update homepage design", "activity_description": "Working on feature implementation", "method": "Manually added time", "date": "2026-01-29", "start_time": "2026-01-29T09:00:00Z", "end_time": "2026-01-29T17:00:00Z", "duration_minutes": 480 }, "meta": { "api_version": "2.0.0", "timestamp": "2026-01-29T12:00:00.000000Z" } }
Request
Update an existing time entry. You can update the activity description, notes, task, project assignment, date, or time range. Requires workspace owner or executive manager permissions.
Important Notes:
- All fields except workspace_id are optional
- If you update only start_time or end_time, the other will be preserved from the existing entry
- Times are validated to ensure end_time is after start_time
Activity notes or description
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-entries/{time_entry_id}
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X PUT \
https://api.webwork-tracker.com/api/v2/time-entries/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1,
"project_id": 10,
"task_id": 5,
"notes": "Updated activity description",
"date": "2026-01-29",
"start_time": "09:00",
"end_time": "17:30"
}'{ "success": true, "message": "Time entry updated successfully", "meta": { "api_version": "2.0.0", "timestamp": "2026-01-29T12:00:00.000000Z" } }
Request
Delete a time entry. This permanently removes the time entry from the system. Requires workspace owner or executive manager permissions.
Important Notes:
- The workspace_id must be provided in the request body
- The time entry identifier in the path must be a valid encrypted UUID
- Only time entries within the authenticated user's workspace can be deleted
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-entries/{time_entry_id}
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X DELETE \
https://api.webwork-tracker.com/api/v2/time-entries/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1
}'{ "success": true, "message": "Time entry deleted successfully", "meta": { "api_version": "2.0.0", "timestamp": "2026-01-29T12:00:00.000000Z" } }