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

Get All Project Viewers

Request

Retrieve all project viewers in your workspace. Project viewers are users with read-only access to specific projects. You can filter by email to find a specific viewer.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
emailstring(email)

Filter project viewers by email address

Example: email=viewer@example.com
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/project-viewers?workspace_id=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Project viewers retrieved successfully

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

Create New Project Viewer

Request

Create a new project viewer (client) in your workspace. This endpoint is only accessible to Owners and Executive Managers. An invitation email will be sent to the viewer.

Security
oauth2 or apiKey
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
emailstring(email)<= 255 charactersrequired

Email address of the project viewer

Example: "viewer@example.com"
firstnamestring<= 255 charactersrequired

First name of the project viewer

Example: "John"
lastnamestring<= 255 charactersrequired

Last name of the project viewer

Example: "Doe"
curl -i -X POST \
  https://api.webwork-tracker.com/api/v2/project-viewers \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "email": "viewer@example.com",
    "firstname": "John",
    "lastname": "Doe"
  }'

Responses

Project viewer created successfully

Bodyapplication/json
successboolean
Example: true
dataobject(ProjectViewer)
messagestring
Example: "Project viewer created successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": { "id": 100, "email": "viewer@example.com", "firstname": "John", "lastname": "Doe", "status": "active", "member_since": "2024-01-15T09:00:00Z", "projects": [ … ] }, "message": "Project viewer created successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Get Single Project Viewer

Request

Retrieve detailed information about a specific project viewer.

Security
oauth2 or apiKey
Path
viewerIdintegerrequired

ID of the project viewer (user_id)

Example: 100
Query
workspace_idintegerrequired

ID of the workspace

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

Responses

Project viewer retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataobject(ProjectViewer)
messagestring
Example: "Project viewer retrieved successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": { "id": 100, "email": "viewer@example.com", "firstname": "John", "lastname": "Doe", "status": "active", "member_since": "2024-01-15T09:00:00Z", "projects": [ … ] }, "message": "Project viewer retrieved successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Delete (Archive) Project Viewer

Request

Delete (archive) a project viewer from your workspace. This is a soft delete - the viewer can be restored later if needed.

Security
oauth2 or apiKey
Path
viewerIdintegerrequired

ID of the project viewer (user_id)

Example: 100
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/project-viewers/100 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1
  }'

Responses

Project viewer deleted successfully

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

Restore Archived Project Viewer

Request

Restore a previously deleted (archived) project viewer to your workspace.

Security
oauth2 or apiKey
Path
viewerIdintegerrequired

ID of the project viewer (user_id)

Example: 100
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

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

Responses

Project viewer restored successfully

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

Assign Project to Viewer

Request

Assign a project to a project viewer, giving them read-only access to that project.

Security
oauth2 or apiKey
Path
viewerIdintegerrequired

ID of the project viewer (user_id)

Example: 100
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
project_idintegerrequired

ID of the project to assign

Example: 100
curl -i -X POST \
  https://api.webwork-tracker.com/api/v2/project-viewers/100/assign-project \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "project_id": 100
  }'

Responses

Project assigned to viewer successfully

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

Unassign Project from Viewer

Request

Remove a project assignment from a project viewer, revoking their access to that project.

Security
oauth2 or apiKey
Path
viewerIdintegerrequired

ID of the project viewer (user_id)

Example: 100
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
project_idintegerrequired

ID of the project to unassign

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

Responses

Project unassigned from viewer successfully

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

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

Reports

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

Operations