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

Get All Expenses

Request

Retrieve all expenses in your workspace. Supports filtering by ID and date range. Results are paginated.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace

Example: workspace_id=1
idstring(uuid)

UUID of the expense

Example: id=a1b2c3d4-e5f6-7890-abcd-ef1234567890
date_fromstring(date)

Filter expenses from this date (YYYY-MM-DD)

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

Filter expenses to this date (YYYY-MM-DD)

Example: date_to=2024-01-31
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/expenses?workspace_id=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Expenses retrieved successfully

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

Create Expense

Request

Create a new expense in your workspace. Requires expense_name, date, amount, and category_id.

Security
oauth2 or apiKey
Bodyapplication/jsonrequired
workspace_idintegerrequired

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

Example: 1
expense_namestring<= 255 charactersrequired
Example: "Office Supplies"
datestring(date)required
Example: "2024-01-15"
amountnumberrequired
Example: 150.5
category_idstring(uuid)required

UUID of the expense category

Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
project_idinteger

ID of the project (optional)

Example: 100
notestring

Additional notes about the expense

Example: "Purchased office supplies for Q1"
is_billableboolean

Whether the expense is billable

Default true
Example: true
curl -i -X POST \
  https://api.webwork-tracker.com/api/v2/expenses \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1,
    "expense_name": "Office Supplies",
    "date": "2024-01-15",
    "amount": 150.5,
    "category_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "project_id": 100,
    "note": "Purchased office supplies for Q1",
    "is_billable": true
  }'

Responses

Expense created successfully

Bodyapplication/json
successboolean
Example: true
dataobject(Expense)
messagestring
Example: "Expense created successfully"
metaobject(Meta)
Response
application/json
{ "success": true, "data": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "member": "John Doe", "expense_date": "Jan 15, 2024", "expense_name": "Office Supplies", "project": "Marketing Campaign Q1", "category": "Office Supplies", "amount": 150.5, "note": "Purchased office supplies for Q1", "type": "billable", "added_dte": "Jan 15, 2024" }, "message": "Expense created successfully", "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Update Expense

Request

Update an existing expense. All fields are required.

Security
oauth2 or apiKey
Path
expenseIdstring(uuid)required

UUID of the expense

Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Bodyapplication/jsonrequired
expense_namestring<= 255 charactersrequired
Example: "Office Supplies Updated"
datestring(date)
Example: "2024-01-15"
amountnumber
Example: 200
category_idstring(uuid)

UUID of the expense category

Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
project_idinteger

ID of the project (optional)

Example: 100
notestring

Additional notes about the expense

Example: "Updated expense details"
is_billableboolean

Whether the expense is billable

Example: true
curl -i -X PUT \
  https://api.webwork-tracker.com/api/v2/expenses/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "expense_name": "Office Supplies Updated",
    "date": "2024-01-15",
    "amount": 200,
    "category_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "project_id": 100,
    "note": "Updated expense details",
    "is_billable": true
  }'

Responses

Expense updated successfully

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

Delete Expense

Request

Delete an expense from your workspace.

Security
oauth2 or apiKey
Path
expenseIdstring(uuid)required

UUID of the expense

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 DELETE \
  https://api.webwork-tracker.com/api/v2/expenses/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "workspace_id": 1
  }'

Responses

Expense deleted successfully

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

Get Expense Categories

Request

Retrieve all expense categories 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 expense category

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/expenses/categories?workspace_id=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Expense categories retrieved successfully

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

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