Modern REST API for WebWork Tracker with OAuth2 authentication. This API provides access to workspaces, members, projects, and time tracking features.
WebWork Tracker REST API V2 (2.0.0)
Overview
Languages
Servers
Production Server
https://api.webwork-tracker.com/api/v2/
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.
Operations
Query
Filter by status. Must be one of: pending, approved, rejected
Enum"pending""approved""rejected"
Start date for filtering time requests (required). Format: YYYY-MM-DD. Must be before or equal to date_to.
End date for filtering time requests (required). Format: YYYY-MM-DD. Must be after or equal to date_from.
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-requests
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X GET \
'https://api.webwork-tracker.com/api/v2/time-requests?workspace_id=1&date_from=2019-08-24&date_to=2019-08-24' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Response
application/json
{ "success": true, "data": {}, "message": "string", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }
Bodyapplication/jsonrequired
Contract ID (optional). Can be null if creating a time request without a contract.
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-requests
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X POST \
https://api.webwork-tracker.com/api/v2/time-requests \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1,
"user_id": 123,
"contract_id": 456,
"start": "2025-12-05T09:00:00+00:00",
"end": "2025-12-05T17:00:00+00:00",
"activity_description": "Worked on feature implementation",
"task_id": 101
}'Response
application/json
{ "success": true, "data": { "id": "encoded_id_string", "status": "pending" }, "message": "Time request created successfully", "meta": { "api_version": "2.0.0", "timestamp": "2025-12-05T11:00:00.000000Z" } }
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-requests/{timeRequestId}/approve
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X POST \
'https://api.webwork-tracker.com/api/v2/time-requests/{timeRequestId}/approve' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1
}'Response
application/json
{ "success": true, "data": { "id": "encoded_id_string", "status": "approved" }, "message": "Time request approved successfully", "meta": { "api_version": "2.0.0", "timestamp": "2025-12-05T11:00:00.000000Z" } }
- Production Serverhttps://api.webwork-tracker.com/api/v2/time-requests/{timeRequestId}/reject
- cURL
- JS
- Python
- PHP
- Go
- Java 8
- C#
- C++
curl -i -X POST \
'https://api.webwork-tracker.com/api/v2/time-requests/{timeRequestId}/reject' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"workspace_id": 1,
"comment": "Time entry overlaps with existing approved time"
}'Response
application/json
{ "success": true, "data": { "id": "encoded_id_string", "status": "rejected" }, "message": "Time request rejected successfully", "meta": { "api_version": "2.0.0", "timestamp": "2025-12-05T11:00:00.000000Z" } }