Skip to content

WebWork Tracker REST API V2 (2.0.0)

WebWork Tracker REST API V2 provides programmatic access to your workspace data. This API allows you to manage members, projects, tasks, time tracking, leaves, and expenses. Access is restricted to workspace owners and executive managers only.

Languages
Servers
Production Server
https://api.webwork-tracker.com/api/v2/

Workspaces

Read workspace information for the authenticated user for using it in the other endpoints

Operations

Members

Manage workspace members - invite, update roles, and remove members

Operations

Projects

Manage projects within workspaces

Operations

Tasks

Manage tasks within projects. As a workspace owner or executive manager, you have full access to all tasks in your workspace.

Operations

Project Viewers

Manage project viewers (clients) within workspaces. Project viewers are users with read-only access to specific projects. Project viewers can only view projects they are assigned to.

Operations

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.

Operations

Time Tracking

Track and manage time entries

Operations

Timesheets

Manage timesheet approvals - view, approve, reject, submit, and unsubmit timesheets.

Operations

Time Requests

Manage manual time requests - create time requests for team members, approve or reject pending requests.

Operations

Leaves

Manage leave requests - view, approve, reject leave requests, view leave balances and policies.

Operations

Expenses

Manage expenses - create, update, delete expenses and view expense categories.

Operations

Webhooks

Manage webhooks - register callback URLs to receive real-time event notifications from the platform.

Operations

List All Webhooks

Request

Retrieve all webhooks in your workspace. By default, results are paginated with 50 rows per page. Use this resource to manage and administer your webhooks. With this resource, you can register callback URLs to receive real-time event notifications from our platform. Once registered, you'll automatically receive notifications whenever new events occur—such as data updates, member actions, or system alerts.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
pageinteger>= 1

Page number for pagination

Default 1
Example: page=1
curl -i -X GET \
  'https://api.webwork-tracker.com/api/v2/webhooks?workspace_id=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Webhooks retrieved successfully

Bodyapplication/json
max_rowsinteger

Total number of webhooks

Example: 50
current_pageinteger

Current page number

Example: 1
total_pagesinteger

Total number of pages

Example: 3
dataArray of objects(Webhook)
Response
application/json
{ "max_rows": 50, "current_page": 1, "total_pages": 3, "data": [ { … } ] }

Create a Webhook

Request

Create a new webhook by registering a callback URL and specifying which events to listen for. You can create a new webhook using POST method and adding all necessary parameters to request body. Include one of the following content types in your request header: Content-Type: application/x-www-form-urlencoded or application/json

Security
oauth2 or apiKey
Bodyrequired
workspace_idintegerrequired

ID of the workspace (Team.id from owner_user_rel table)

Example: 1
urlstring(uri)required

The callback URL where webhook events will be sent

Example: "https://example.com/webhook/endpoint"
eventsArray of stringsrequired

Array of event types to subscribe to

Items Enum"tracker.started""tracker.stopped"
Example: ["tracker.started","tracker.stopped"]
curl -i -X POST \
  https://api.webwork-tracker.com/api/v2/webhooks \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "url": "https://example.com/webhook/endpoint",
    "events": [
      "tracker.started",
      "tracker.stopped"
    ]
  }'

Responses

Webhook created successfully

Bodyapplication/json
successboolean
Example: true
dataobject(Webhook)
Response
application/json
{ "success": true, "data": { "id": "abc123def456", "url": "https://example.com/webhook/endpoint", "events": [ … ], "token": "whsec_1234567890abcdef" } }

Get a Single Webhook

Request

Retrieve information about a specific webhook by its ID. If you need to get information regarding a specific webhook, you need to add the webhook_id at the end of the URL.

Security
oauth2 or apiKey
Path
webhookIdstringrequired

ID of the webhook

Example: abc123def456
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
curl -i -X GET \
  'https://api.webwork-tracker.com/api/v2/webhooks/abc123def456?workspace_id=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Webhook retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataobject(Webhook)
Response
application/json
{ "success": true, "data": { "id": "abc123def456", "url": "https://example.com/webhook/endpoint", "events": [ … ], "token": "whsec_1234567890abcdef" } }

Update a Webhook

Request

Update an existing webhook. To update a webhook, you should send a request to the same URL using PUT method and adding a webhook_id at the end of it. Include one of the following content types in your request header: Content-Type: application/x-www-form-urlencoded or application/json

Security
oauth2 or apiKey
Path
webhookIdstringrequired

ID of the webhook

Example: abc123def456
Bodyrequired
workspace_idintegerrequired

ID of the workspace (Team.id from owner_user_rel table)

Example: 1
urlstring(uri)required

The callback URL where webhook events will be sent

Example: "https://example.com/webhook/endpoint"
eventsArray of strings

Array of event types to subscribe to

Items Enum"tracker.started""tracker.stopped"
Example: ["tracker.started","tracker.stopped"]
curl -i -X PUT \
  https://api.webwork-tracker.com/api/v2/webhooks/abc123def456 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "url": "https://example.com/webhook/endpoint",
    "events": [
      "tracker.started",
      "tracker.stopped"
    ]
  }'

Responses

Webhook updated successfully

Bodyapplication/json
successboolean
Example: true
Response
application/json
{ "success": true }

Delete a Webhook

Request

Delete a webhook by its ID. To delete a webhook, you should send a request to the same URL using DELETE method and adding a webhook_id at the end of it, as shown in the example.

Security
oauth2 or apiKey
Path
webhookIdstringrequired

ID of the webhook

Example: abc123def456
Bodyapplication/jsonrequired
workspace_idintegerrequired

ID of the workspace (Team.id from owner_user_rel table)

Example: 1
curl -i -X DELETE \
  https://api.webwork-tracker.com/api/v2/webhooks/abc123def456 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1
  }'

Responses

Webhook deleted successfully

Bodyapplication/json
successboolean
Example: true
Response
application/json
{ "success": true }

Reports

Generate and retrieve various reports including tracked hours, timeline, activity descriptions, tasks, and activity level reports

Operations