Skip to content

WebWork Tracker REST API V2 (2.0.0)

Modern REST API for WebWork Tracker with OAuth2 authentication. This API provides access to workspaces, members, projects, and time tracking features.

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

Get All Workspace Projects

Request

Retrieve all projects in your workspace. Projects are automatically filtered based on your role and permissions. Role-based access: Owners and Executive Managers see all projects; Project Managers and Project Viewers see only managed projects; Team Managers see projects from managed teams; Regular Users see only projects they are assigned to. You can apply additional filters to narrow down results.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace (team_id from owner_user_rel table)

Example: workspace_id=1
namestring

Search projects by name (case-insensitive partial match)

Example: name=Marketing
pageinteger>= 1

Page number for pagination

Default 1
per_pageinteger[ 1 .. 100 ]

Number of items per page (max 100)

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

Responses

Projects retrieved successfully

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

Create New Project

Request

Create a new project in your workspace. This endpoint is only accessible to Owners and Executive Managers.

Security
oauth2 or apiKey
Query
workspace_idintegerrequired

ID of the workspace (team_id from owner_user_rel table)

Example: workspace_id=1
Bodyapplication/jsonrequired
namestring<= 255 charactersrequired

Project name

Example: "Marketing Campaign Q1"
start_datestring(date)

Project start date

Example: "2024-01-15"
deadlinestring(date)

Project deadline (must be after or equal to start_date)

Example: "2024-03-31"
estimationnumber>= 0

Estimated hours

Example: 120
budgetnumber>= 0

Budget estimation

Example: 5000
notesstring

Project notes

Example: "Focus on social media channels"
iconstring<= 255 characters

Project icon identifier

Example: "project-icon-1"
curl -i -X POST \
  'https://api.webwork-tracker.com/api/v2/projects?workspace_id=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Marketing Campaign Q1",
    "start_date": "2024-01-15",
    "deadline": "2024-03-31",
    "estimation": 120,
    "budget": 5000,
    "notes": "Focus on social media channels",
    "icon": "project-icon-1"
  }'

Responses

Project created successfully

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Project created successfully"
dataobject(Project)
metaobject(Meta)
Response
application/json
{ "success": true, "message": "Project created successfully", "data": { "id": 100, "name": "Marketing Campaign Q1", "owner_id": 10, "start_date": "2024-01-15", "deadline": "2024-03-31", "estimation": 120, "budget_estimation": 5000, "notes": "Focus on social media channels", "icon": "project-icon-1", "is_billable": true, "rate": 0, "weekly_hours_limit": 168, "screenshots": "blur", "tags": [], "contracts_count": 3, "status": 1, "created_at": "2024-01-15T09:00:00Z", "updated_at": "2024-01-15T09:00:00Z", "deleted_at": null }, "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Get Single Project

Request

Retrieve detailed information about a specific project in your workspace. Projects are filtered based on your role and permissions.

Security
oauth2 or apiKey
Path
projectIdintegerrequired

ID of the project

Example: 100
Query
workspace_idintegerrequired

ID of the workspace (team_id from owner_user_rel table)

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

Responses

Project retrieved successfully

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Project retrieved successfully"
dataobject(Project)
metaobject(Meta)
Response
application/json
{ "success": true, "message": "Project retrieved successfully", "data": { "id": 100, "name": "Marketing Campaign Q1", "owner_id": 10, "start_date": "2024-01-15", "deadline": "2024-03-31", "estimation": 120, "budget_estimation": 5000, "notes": "Focus on social media channels", "icon": "project-icon-1", "is_billable": true, "rate": 0, "weekly_hours_limit": 168, "screenshots": "blur", "tags": [], "contracts_count": 3, "status": 1, "created_at": "2024-01-15T09:00:00Z", "updated_at": "2024-01-15T09:00:00Z", "deleted_at": null }, "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Update Project

Request

Update an existing project in your workspace. This endpoint is only accessible to Owners and Executive Managers.

Security
oauth2 or apiKey
Path
projectIdintegerrequired

ID of the project to update

Example: 100
Query
workspace_idintegerrequired

ID of the workspace (team_id from owner_user_rel table)

Example: workspace_id=1
Bodyapplication/jsonrequired
namestring<= 255 characters

Project name

Example: "Marketing Campaign Q1 Updated"
start_datestring(date)

Project start date

Example: "2024-01-15"
deadlinestring(date)

Project deadline (must be after or equal to start_date)

Example: "2024-04-30"
estimationnumber>= 0

Estimated hours

Example: 150
budgetnumber>= 0

Budget estimation

Example: 6000
notesstring

Project notes

Example: "Updated focus areas"
iconstring<= 255 characters

Project icon identifier

Example: "project-icon-2"
curl -i -X PUT \
  'https://api.webwork-tracker.com/api/v2/projects/100?workspace_id=1' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Marketing Campaign Q1 Updated",
    "start_date": "2024-01-15",
    "deadline": "2024-04-30",
    "estimation": 150,
    "budget": 6000,
    "notes": "Updated focus areas",
    "icon": "project-icon-2"
  }'

Responses

Project updated successfully

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Project updated successfully"
dataobject(Project)
metaobject(Meta)
Response
application/json
{ "success": true, "message": "Project updated successfully", "data": { "id": 100, "name": "Marketing Campaign Q1", "owner_id": 10, "start_date": "2024-01-15", "deadline": "2024-03-31", "estimation": 120, "budget_estimation": 5000, "notes": "Focus on social media channels", "icon": "project-icon-1", "is_billable": true, "rate": 0, "weekly_hours_limit": 168, "screenshots": "blur", "tags": [], "contracts_count": 3, "status": 1, "created_at": "2024-01-15T09:00:00Z", "updated_at": "2024-01-15T09:00:00Z", "deleted_at": null }, "meta": { "api_version": "2.0.0", "timestamp": "2019-08-24T14:15:22Z" } }

Delete (Archive) Project

Request

Delete (archive) a project from your workspace. This is a soft delete - the project can be restored later if needed. This endpoint is only accessible to Owners and Executive Managers.

Security
oauth2 or apiKey
Path
projectIdintegerrequired

ID of the project to delete

Example: 100
Query
workspace_idintegerrequired

ID of the workspace (team_id from owner_user_rel table)

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

Responses

Project deleted successfully

Bodyapplication/json
successboolean
Example: true
messagestring
Example: "Project deleted successfully"
dataobject or null
Default null
metaobject(Meta)
Response
application/json
{ "success": true, "message": "Project deleted successfully", "data": null, "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. Rate information is only visible if you have permission to view rates and the project is billable.

Operations

Tasks

Manage tasks within projects

Operations

Project Viewers

Manage project viewers - external users who can view specific projects

Operations

Timesheets

Manage timesheet approvals and submissions

Operations

Time Requests

Manage manual time requests and approvals

Operations

Leaves

Manage leave requests, balances, and policies

Operations

Expenses

Manage expenses and expense categories

Operations

Time Tracking

Track and manage time entries

Operations

Reports

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

Operations

Webhooks

Manage webhooks for event notifications

Operations