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

Get All Leave Requests

Request

Retrieve all leave requests in your workspace. Supports filtering by ID, policy_id, is_paid, status, date range, and user_id. Results are paginated.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
idstring(uuid)

UUID of the leave request

Example: id=a1b2c3d4-e5f6-7890-abcd-ef1234567890
policy_idinteger

Filter by leave policy ID

Example: policy_id=5
is_paidstring

Filter by paid/unpaid status

Enum"yes""no"
Example: is_paid=yes
statusstring

Filter by leave request status

Enum"pending""approved""rejected"
Example: status=pending
date_fromstring(date)

Filter leave requests from this date (YYYY-MM-DD)

Example: date_from=2024-01-01
date_tostring(date)

Filter leave requests to this date (YYYY-MM-DD)

Example: date_to=2024-01-31
user_idinteger

Filter by user ID

Example: user_id=100
pageinteger>= 1

Page number for pagination

Default 1
Example: page=1
per_pageinteger[ 1 .. 100 ]

Number of items per page (max 100)

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

Responses

Leave requests retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataArray of objects(LeaveRequest)
metaobject(Meta)
Response
application/json
{ "success": true, "data": [ { … } ], "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Approve Leave Request

Request

Approve a pending leave request. Only Owners and Executive Managers can approve leave requests. The leave request must be in 'pending' status.

Security
oauth2 or apiKey
Path
leaveRequestIdstring(uuid)required

UUID of the leave request

Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
curl -i -X PUT \
  https://api.webwork-tracker.com/api/v2/leaves/a1b2c3d4-e5f6-7890-abcd-ef1234567890/approve \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1
  }'

Responses

Leave request approved successfully

Bodyapplication/json
successboolean
Example: true
dataobject or null
Default null
messagestring
Example: "Leave request approved successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": null, "message": "Leave request approved successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Reject Leave Request

Request

Reject a pending leave request with a reason. Only Owners and Executive Managers can reject leave requests. The leave request must be in 'pending' status.

Security
oauth2 or apiKey
Path
leaveRequestIdstring(uuid)required

UUID of the leave request

Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
reasonstringrequired

Reason for rejecting the leave request

Example: "Insufficient leave balance"
curl -i -X PUT \
  https://api.webwork-tracker.com/api/v2/leaves/a1b2c3d4-e5f6-7890-abcd-ef1234567890/reject \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "reason": "Insufficient leave balance"
  }'

Responses

Leave request rejected successfully

Bodyapplication/json
successboolean
Example: true
dataobject or null
Default null
messagestring
Example: "Leave request rejected successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": null, "message": "Leave request rejected successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Get Leave Balances

Request

Retrieve leave balances for users within a given date range. Requires date_from and date_to parameters.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
user_idinteger

Filter by user ID

Example: user_id=100
date_fromstring(date)required

Start date for balance calculation (YYYY-MM-DD)

Example: date_from=2024-01-01
date_tostring(date)required

End date for balance calculation (YYYY-MM-DD)

Example: date_to=2024-12-31
pageinteger>= 1

Page number for pagination

Default 1
Example: page=1
curl -i -X GET \
  'https://api.webwork-tracker.com/api/v2/leaves/balances?workspace_id=1&date_from=2024-01-01&date_to=2024-12-31' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Leave balances retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataArray of objects(LeaveBalance)
metaobject(Meta)
Response
application/json
{ "success": true, "data": [ { … } ], "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Get Leave Policies

Request

Retrieve all leave policies (leave types) in your workspace. Supports filtering by ID.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
idstring(uuid)

UUID of the leave policy

Example: id=a1b2c3d4-e5f6-7890-abcd-ef1234567890
pageinteger>= 1

Page number for pagination

Default 1
Example: page=1
per_pageinteger[ 1 .. 100 ]

Number of items per page (max 100)

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

Responses

Leave policies retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataArray of objects(LeavePolicy)
metaobject(Meta)
Response
application/json
{ "success": true, "data": [ { … } ], "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

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

Reports

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

Operations