API Documentation
Authentiaction
Please use the key above as a bearer token. Your autorization request header should
look like this.
Authorization: Bearer YOUR_API_KEY_VALUE_HERE
API Calls
List Users
[GET] [Link]
List Projects
[GET] [Link]
include_all (boolean): Set this true to get all projects instead of just active
projects
Most recent tasks
[GET] [Link]
Returns a list of most recent project and task that the employees have worked on in
the last one hour. It also returns a unix timestamp in milliseconds with each entry
for the most recent activity.
Get Project Details
[GET] [Link]
project_id=prjid
prjid (string): The id of the project for which you need the details.
active_only (true/false): Set to true to return only the active tasks in task list.
[GET] [Link]
tskid (string): The id of the task for which you need the details.
Employee Summary Report
[GET] [Link]
startTime=start_time_epoch_ms&endTime=end_time_epoch_ms
startTime (long integer): Start time of the summary report in milliseconds since
UNIX epoch.
endTime (long integer): End time of the summary report in milliseconds since UNIX
epoch.
Projectwise Employee Summary Report
[GET] [Link]
startTime=start_time_epoch_ms&endTime=end_time_epoch_ms&daywise=daywise_flag
startTime (long integer): Start time of the summary report in milliseconds since
UNIX epoch.
endTime (long integer): End time of the summary report in milliseconds since UNIX
epoch.
daywise (true or false): Set this to true if you want the data to be also grouped
daywise.
Project Summary Report
[GET] [Link]
startTime=start_time_epoch_ms&endTime=end_time_epoch_ms
startTime (long integer): Start time of the summary report in milliseconds since
UNIX epoch.
endTime (long integer): End time of the summary report in milliseconds since UNIX
epoch.
Task Summary Report
[GET] [Link]
startTime=start_time_epoch_ms&endTime=end_time_epoch_ms&projectId=project_id
startTime (long integer): Start time of the summary report in milliseconds since
UNIX epoch.
endTime (long integer): End time of the summary report in milliseconds since UNIX
epoch.
projectId (string): The unique id of the project as per the response of
list_projects API.
Raw timesheet data
[GET] [Link]
startTime=start_time_epoch_ms&endTime=end_time_epoch_ms
startTime (long integer): Start time of the summary report in milliseconds since
UNIX epoch.
endTime (long integer): End time of the summary report in milliseconds since UNIX
epoch.
accountId (string): The id of the user as per the 'List Users' API.
projectId (string): The id of the project as per the 'List Projects' API.
taskId (string): The id of the task as per the 'Get Project Details' API.
Company punch in out report
[GET] [Link]
year=2023&month=10&day=10&timezoneOffsetMinutes=330&dayStartsAtHours=6&dayEndsAtHou
rs=23
year (integer, required): The year of the day for which the punch-in/out report is
being requested.
month (integer, required): The month of the day for which the punch-in/out report
is being requested.
day (integer, required): The day of the day for which the punch-in/out report is
being requested.
timezoneOffsetMinutes (integer, required): The time zone offset in minutes from UTC
for example for India GMT +530 this will be 330.
dayStartsAtHours (double, optional): The start time for the day in hours before
which punch in is not allowed.
dayEndsAtHours (double, optional): The end time for the day in hours which is the
last allowed punch out time.
Application and website usage report
[GET] [Link]
employee=TJ001&year=2023&month=10&day=22&timezoneOffsetMinutes=330&dayStartsAtHours
=6&dayEndsAtHours=23
employee (string, required): The email id or the employee name for whom the report
is being requested.
year (integer, required): The year of the day for which the punch-in/out report is
being requested.
month (integer, required): The month of the day for which the punch-in/out report
is being requested.
day (integer, required): The day of the day for which the punch-in/out report is
being requested.
timezoneOffsetMinutes (integer, required): The time zone offset in minutes from UTC
for example for India GMT +530 this will be 330.
dayStartsAtHours (double, optional): The start time for the day in hours before
which punch in is not allowed.
dayEndsAtHours (double, optional): The end time for the day in hours which is the
last allowed punch out time.
Create a new project
[POST] [Link]
name (string): The name of the project.
type (string): The type of project. One of OPEN or RESTRICTED ( case-sensitive ).
external_id (string, optional): Id to track integration with other systems.
All employees of the company can work on OPEN projects.
Only project MEMBERs or MANAGERs can work on RESTRICTED projects.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Project", "type":"OPEN" }' \
[Link]
Add user to a project
[POST] [Link]
assignee_email (string): Email address of the user to be removed from the project.
project_name/project_id (string): The name of the project (case-sensitive) or
project id.
role (string): The role of the user. One of MANAGER or MEMBER (case-sensitive).
Example:
Note: You do not need to add/remove project to an OPEN project. All employees can
work on OPEN projects.
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "assignee_email":"emp@[Link]", "project_name":"My Project",
"role":"MEMBER" }' \
[Link]
Change project name
[POST] [Link]
new_project_name (string): The new desired project name.
project_id (string): The id of the project to be renamed.
Change project external id
[POST] [Link]
new_external_id (string): The new external id for integration. Cannot be blank or
empty.
project_id (string): The id of the task to be renamed.
Change task name
[POST] [Link]
new_task_name (string): The new desired task name.
task_id (string): The id of the task to be renamed.
Change task name
[POST] [Link]
new_external_id (string): The new external id for integration. Cannot be blank or
empty.
task_id (string): The id of the task to be renamed.
Remove user from a project
[POST] [Link]
assignee_email (string): Email address of the user to be removed from the project.
project_name/project_id (string): The name of the project (case-sensitive) or
project id.
role (string): The role from which to remove the user. One of MANAGER or MEMBER
( case-sensitive ).
Example:
Note: You do not need to add/remove project to an OPEN project. All employees can
work on OPEN projects.
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "assignee_email":"emp@[Link]", "project_name":"My Project",
"role":"MEMBER" }' \
[Link]
Mark project as completed
[POST] [Link]
project_id (string): The id of the project to mark complete.
name (string): The name of the project to mark complete. This is not required to be
provided if project_id is provided.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Project" }' \
[Link]
Cancel project
[POST] [Link]
project_id (string): The id of the project to cancel.
name (string): The name of the project to cancel. This is not required to be
provided if project_id is provided.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Project" }' \
[Link]
Create a new task
[POST] [Link]
name (string): The name of the task.
project_id (string): The id of the project under which the tast will be added.
project_name (string): The name of the project under which the tast will be added.
Do not provide this if project_id is provided.
assignee_email (string) OPTIONAL: If not specified all project members (in case of
a RESTRICTED project) or all employees (in case of an OPEN project) will be able to
work on this task.
nonbillable (boolean): Set this to true to make task non-billable, set this to
false to make task billable.
external_id (string, optional): Id to track integration with other systems.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project",
"assignee_email":"emp@[Link]", "nonbillable":false }' \
[Link]
Create a new task (multiple assignees)
[POST] [Link]
name (string): The name of the task.
project_name (string): The name of the project under which the tast will be added.
assignee_emails (array of strings) : The list of emails of employees to whom the
task is assigned.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project", "assignee_emails":
["emp1@[Link]","emp2@[Link]"] }' \
[Link]
Reassign a task
[POST] [Link]
task_id (string): The id of the task to be reassigned.
name (string): The name of the task to be reassigned. This is not required is
task_id is provided.
project_id (string): The id of the project under which the task is to be
reassigned.
project_name (string): The name of the project under which the task is to be
reassigned. This is not required if project_id is provided.
assignee_email (string) OPTIONAL: If not specified all project members (in case of
a RESTRICTED project) or all employees (in case of an OPEN project) will be able to
work on this task.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project",
"assignee_email":"emp@[Link]" }' \
[Link]
Reassign a task (multiple assignees)
[POST] [Link]
task_id (string): The id of the task to be reassigned.
name (string): The name of the task. This is not required to be provided if task_id
is provided.
project_id (string): The id of the project.
project_name (string): The name of the project under which the task is to be
reassigned. This is not required to be provided if project_id is provided.
assignee_emails (array of strings) : The list of emails of employees to whom the
task is assigned.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project", "assignee_emails":
["emp1@[Link]","emp2@[Link]"] }' \
[Link]
Mark task as completed
[POST] [Link]
project_id (string): The id of the project the task belongs to.
project_name (string): The name of the project the task belongs to. (Do not provide
this if project_id is provided)
task_id (string): The id of the task to mark complete.
name (string): The name of the task to mark complete. This is not required to be
provided if task_id is provided.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project" }' \
[Link]
Reactivate task
[POST] [Link]
project_id (string): The id of the project the task belongs to.
project_name (string): The name of the project the task belongs to. (Do not provide
this if project_id is provided)
task_id (string): The id of the task to reactivate (mark as pending).
name (string): The name of the task to reactivate (mark as pending). This is not
required to be provided if task_id is provided.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project" }' \
[Link]
Cancel Task
[POST] [Link]
project_id (string): The id of the project the task belongs to.
project_name (string): The name of the project the task belongs to. (Do not provide
this if project_id is provided)
task_id (string): The id of the task to cancel.
name (string): The name of the task to cancel. This is not required to be provided
if task_id is provided.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project" }' \
[Link]
S task as completed
[POST] [Link]
project_id (string): The id of the project the task belongs to.
project_name (string): The name of the project the task belongs to. Do not prvoide
this if project_id parameter is provided.
task_id (string): The id of the task to mark complete.
name (string): The name of the task to mark complete. This is not required to be
provided if task_id is provided.
nonbillable (boolean): Set this to true to make task non-billable, set this to
false to make task billable.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "name":"My Task", "project_name":"My Project", "nonbillable":true }' \
[Link]
Add a manual time entry
[POST] [Link]
employee_email (string): The email address of the employee as per user record on
[Link] ( case-sensitive ).
task_id (string): The task id for which to record the manual entry. If task_id is
provided, do no provide project_name or task_name.
project_name (string): The name of the project ( case-sensitive ).
task_name (string): The name of the task ( case-sensitive ).
start_time: Start time in unix milliseconds.
end_time: End time in unix milliseconds.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" --request POST \
--data '{ "start_time":1666152000000, "end_time":1666153000000,
"employee_email":"employee@[Link]", "project_name":"My Project",
"task_name":"My Task"}' \
[Link]
Get Manual Entries
[GET] [Link]
Retrieves a list of manual entries associated with the authenticated user.
Response Fields:
id (string): The unique identifier of the manual entry.
startTime (datetime): The start time of the manual entry.
endTime (datetime): The end time of the manual entry.
status (string): The status of the work session (e.g., Approved, Rejected).
employeeName (string): The name of the employee associated with the entry.
employeeCode (string): The unique code of the employee.
employeeEmail (string): The email of the employee.
Example:
curl --header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" \
--request GET \
[Link]
Update Manual Entry Status
[POST] [Link]
Updates the status of specified manual entries. The IDs provided in the request
should match the ones returned by the GET request.
Request Parameters:
entry_ids (array of strings): The list of entry IDs to be updated (e.g., "550e8400-
e29b-41d4-a716-446655440000").
status (string): The new status to be applied ("approved" or "rejected").
Response Fields:
message (string): Confirmation message indicating the number of entries
successfully updated.
Example:
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer YOUR_API_KEY_VALUE_HERE" \
--request POST \
--data '{ "entry_ids":["550e8400-e29b-41d4-a716-446655440000", "123e4567-e89b-12d3-
a456-426614174000"], "status":"approved" }' \
[Link]