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

Get All Project Tasks

Request

Retrieve all tasks in a specific project. You can apply filters by status or priority to narrow down results.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
project_idintegerrequired

ID of the project

Example: project_id=100
statusinteger

Filter tasks by status

Enum0102030
Example: status=0
priorityinteger

Filter tasks by priority

Enum10203040
Example: priority=30
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/tasks?workspace_id=1&project_id=100' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Tasks retrieved successfully

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

Create New Task

Request

Create a new task in a project. This endpoint is accessible to Owners, Executive Managers, Project Managers, and Team Managers.

Security
oauth2 or apiKey
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
project_idintegerrequired

ID of the project

Example: 100
titlestring[ 1 .. 1024 ] charactersrequired

Task title

Example: "Implement user authentication"
descriptionstring or null<= 65535 characters

Task description

Example: "Add OAuth2 authentication support"
statusinteger

Task status: 0 = Incomplete, 10 = Doing, 20 = Done, 30 = Completed

Default 0
Enum0102030
Example: 0
priorityinteger

Task priority: 10 = Urgent, 20 = High, 30 = Normal, 40 = Low

Default 30
Enum10203040
Example: 30
start_datestring or null(date)

Task start date

Example: "2024-01-15"
end_datestring or null(date)

Task end date (must be after or equal to start_date)

Example: "2024-01-30"
assigneesArray of integers

Array of user IDs to assign the task to

Example: [100,101]
curl -i -X POST \
  https://api.webwork-tracker.com/api/v2/tasks \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "project_id": 100,
    "title": "Implement user authentication",
    "description": "Add OAuth2 authentication support",
    "status": 0,
    "priority": 30,
    "start_date": "2024-01-15",
    "end_date": "2024-01-30",
    "assignees": [
      100,
      101
    ]
  }'

Responses

Task created successfully

Bodyapplication/json
successboolean
Example: true
dataobject(Task)
messagestring
Example: "Task created successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": { "id": 500, "title": "Implement user authentication", "description": "Add OAuth2 authentication support", "project_id": 100, "owner_id": 10, "creator_id": 100, "status": 0, "priority": 30, "start_date": "2024-01-15", "end_date": "2024-01-30", "completed_at": "2024-01-30T10:00:00Z", "assignees": [ … ], "has_details": false, "created_at": "2024-01-15T09:00:00Z", "updated_at": "2024-01-20T14:30:00Z", "deleted_at": null }, "message": "Task created successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Get Single Task

Request

Retrieve detailed information about a specific task.

Security
oauth2 or apiKey
Path
taskIdintegerrequired

ID of the task

Example: 500
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
project_idintegerrequired

ID of the project

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

Responses

Task retrieved successfully

Bodyapplication/json
successboolean
Example: true
dataobject(Task)
messagestring
Example: "Task retrieved successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": { "id": 500, "title": "Implement user authentication", "description": "Add OAuth2 authentication support", "project_id": 100, "owner_id": 10, "creator_id": 100, "status": 0, "priority": 30, "start_date": "2024-01-15", "end_date": "2024-01-30", "completed_at": "2024-01-30T10:00:00Z", "assignees": [ … ], "has_details": false, "created_at": "2024-01-15T09:00:00Z", "updated_at": "2024-01-20T14:30:00Z", "deleted_at": null }, "message": "Task retrieved successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Update Task

Request

Update an existing task. This endpoint is accessible to Owners, Executive Managers, Project Managers, and Team Managers.

Security
oauth2 or apiKey
Path
taskIdintegerrequired

ID of the task

Example: 500
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
project_idintegerrequired

ID of the project

Example: 100
titlestring[ 1 .. 1024 ] characters

Task title

Example: "Implement user authentication"
descriptionstring or null<= 65535 characters

Task description

Example: "Add OAuth2 authentication support"
statusinteger

Task status: 0 = Incomplete, 10 = Doing, 20 = Done, 30 = Completed

Enum0102030
Example: 10
priorityinteger

Task priority: 10 = Urgent, 20 = High, 30 = Normal, 40 = Low

Enum10203040
Example: 20
start_datestring or null(date)

Task start date

Example: "2024-01-15"
end_datestring or null(date)

Task end date (must be after or equal to start_date)

Example: "2024-01-30"
curl -i -X PUT \
  https://api.webwork-tracker.com/api/v2/tasks/500 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "project_id": 100,
    "title": "Implement user authentication",
    "description": "Add OAuth2 authentication support",
    "status": 10,
    "priority": 20,
    "start_date": "2024-01-15",
    "end_date": "2024-01-30"
  }'

Responses

Task updated successfully

Bodyapplication/json
successboolean
Example: true
dataobject(Task)
messagestring
Example: "Task updated successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": { "id": 500, "title": "Implement user authentication", "description": "Add OAuth2 authentication support", "project_id": 100, "owner_id": 10, "creator_id": 100, "status": 0, "priority": 30, "start_date": "2024-01-15", "end_date": "2024-01-30", "completed_at": "2024-01-30T10:00:00Z", "assignees": [ … ], "has_details": false, "created_at": "2024-01-15T09:00:00Z", "updated_at": "2024-01-20T14:30:00Z", "deleted_at": null }, "message": "Task updated successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Delete Task

Request

Delete (soft delete) a task from a project. This endpoint is accessible to Owners, Executive Managers, Project Managers, and Team Managers.

Security
oauth2 or apiKey
Path
taskIdintegerrequired

ID of the task

Example: 500
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
project_idintegerrequired

ID of the project

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

Responses

Task deleted successfully

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

Get Task Assignees

Request

Retrieve all users assigned to a specific task.

Security
oauth2 or apiKey
Path
taskIdintegerrequired

ID of the task

Example: 500
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
project_idintegerrequired

ID of the project

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

Responses

Task assignees retrieved successfully

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

Assign Task to User

Request

Assign a task to a specific user. The user must be a member of the project. This endpoint is accessible to Owners, Executive Managers, Project Managers, and Team Managers.

Security
oauth2 or apiKey
Path
taskIdintegerrequired

ID of the task

Example: 500
userIdintegerrequired

ID of the user to assign the task to

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

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

Responses

Task assigned successfully

Bodyapplication/json
successboolean
Example: true
dataobject(TaskAssignee)
messagestring
Example: "Task assigned successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": { "id": 100, "firstname": "John", "lastname": "Doe", "email": "john.doe@example.com", "user_id": 100, "task_id": 500, "assigner_id": 101 }, "message": "Task assigned successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Unassign Task from User

Request

Remove a user assignment from a task. This endpoint is accessible to Owners, Executive Managers, Project Managers, and Team Managers.

Security
oauth2 or apiKey
Path
taskIdintegerrequired

ID of the task

Example: 500
userIdintegerrequired

ID of the user to unassign from the task

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

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

Responses

Task unassigned successfully

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

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

Reports

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

Operations