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)
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
Start time tracking (clock in) for a user. Only workspace owners and executive managers can use this endpoint. They can start tracking for any member in their workspace. If a user is already tracking time, they must stop the current tracker before starting a new one.
ID of the user to start tracking for. Must be a member of the specified workspace.
Optional contract ID (project-member assignment). If provided, the time will be tracked for the associated project. If not provided, time will be tracked without a project assignment.
Optional task ID. Can only be provided if contract_id is also provided. The task must belong to the project associated with the contract.
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-tracking/start
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
- with_project
- without_project
curl -i -X POST \
https://api.webwork-tracker.com/api/v2/time-tracking/start \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1,
"user_id": 100,
"contract_id": 20,
"task_id": 5,
"activity_description": "Implementing new feature"
}'Time tracking started successfully
Dynamic message with user name, timestamp, project, task, and activity details. Suitable for Slack bot notifications.
{ "success": true, "data": { "start_time": "2024-01-15T10:30:00+00:00", "user_id": 100, "user_name": "John Smith", "user_email": "john.smith@example.com", "contract_id": 20, "project_id": 10, "project_name": "Website Redesign", "task_id": 5, "task_title": "Implement auth", "activity_description": "Working on feature implementation" }, "message": "Time tracking started for John Smith at 2024-01-15 10:30:00 | Project: Website Redesign | Task: Implement auth | Activity: Working on feature implementation", "meta": { "api_version": "2.0.0", "timestamp": "2024-01-15T10:30:00Z" } }
Request
Stop time tracking (clock out) for a user. Only workspace owners and executive managers can use this endpoint. They can stop tracking for any member in their workspace. The user must have an active tracker running to stop it.
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-tracking/stop
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X POST \
https://api.webwork-tracker.com/api/v2/time-tracking/stop \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1,
"user_id": 100
}'{ "success": true, "data": { "stopped_at": "2024-01-15T12:30:00+00:00", "user_id": 100, "user_name": "John Smith", "user_email": "john.smith@example.com" }, "message": "Time tracking stopped for John Smith at 2024-01-15 12:30:00", "meta": { "api_version": "2.0.0", "timestamp": "2024-01-15T12:30:00Z" } }
Request
Get current running tracker actual time data for a user. Only workspace owners and executive managers can use this endpoint. They can get tracker data for any member in their workspace. Important: This endpoint only works when the tracker is running from the API or from the browser. In other cases, it will not retrieve current tracking information.
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-tracking/current-data
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X GET \
'https://api.webwork-tracker.com/api/v2/time-tracking/current-data?workspace_id=1&user_id=100' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Current tracker data retrieved successfully
Current tracker data including total time tracked. The total_minutes field combines minutes from Timeline entries for the date with minutes from the current running tracker. The total_seconds field represents the remainder seconds from the current tracker.
{ "success": true, "data": { "contract_id": 598672, "user_id": 45696, "activity_description": "Working on API documentation", "task_id": 3917798, "task_title": "Adding timesheets", "total_seconds": 9, "total_minutes": 7, "date": "2025-12-08" }, "message": "Current tracker data retrieved successfully", "meta": { "api_version": "2.0.0", "timestamp": "2025-12-08T11:30:39.529297Z" } }