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] https://api2.teamlogger.com/api/integration/list_users
List Projects
[GET] https://api2.teamlogger.com/api/integration/list_projects?include_all=false
include_all (boolean): Set this true to get all projects instead of just active
projects
Most recent tasks
[GET] https://api2.teamlogger.com/api/integration/most_recent_tasks
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] https://api2.teamlogger.com/api/integration/get_project_details?
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] https://api2.teamlogger.com/api/integration/get_task_details?task_id=tskid
tskid (string): The id of the task for which you need the details.
Employee Summary Report
[GET] https://api2.teamlogger.com/api/employee_summary_report?
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] https://api2.teamlogger.com/api/projectwise_employee_summary_report?
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] https://api2.teamlogger.com/api/project_summary_report?
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] https://api2.teamlogger.com/api/task_summary_report?
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] https://api2.teamlogger.com/api/timesheet_data?
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] https://api2.teamlogger.com/api/company_punch_in_out_report?
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] https://api2.teamlogger.com/api/user_app_web_report?
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] https://api2.teamlogger.com/api/integration/create_project
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" }' \
https://api2.teamlogger.com/api/integration/create_project
Add user to a project
[POST] https://api2.teamlogger.com/api/integration/add_user_to_project
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":"[email protected]", "project_name":"My Project",
"role":"MEMBER" }' \
https://api2.teamlogger.com/api/integration/add_user_to_project
Change project name
[POST] https://api2.teamlogger.com/api/integration/change_project_name
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] https://api2.teamlogger.com/api/integration/change_project_external_id
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] https://api2.teamlogger.com/api/integration/change_task_name
new_task_name (string): The new desired task name.
task_id (string): The id of the task to be renamed.
Change task name
[POST] https://api2.teamlogger.com/api/integration/change_task_external_id
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] https://api2.teamlogger.com/api/integration/remove_user_from_project
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":"[email protected]", "project_name":"My Project",
"role":"MEMBER" }' \
https://api2.teamlogger.com/api/integration/remove_user_from_project
Mark project as completed
[POST] https://api2.teamlogger.com/api/integration/complete_project
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" }' \
https://api2.teamlogger.com/api/integration/complete_project
Cancel project
[POST] https://api2.teamlogger.com/api/integration/cancel_project
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" }' \
https://api2.teamlogger.com/api/integration/cancel_project
Create a new task
[POST] https://api2.teamlogger.com/api/integration/create_task
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":"[email protected]", "nonbillable":false }' \
https://api2.teamlogger.com/api/integration/create_task
Create a new task (multiple assignees)
[POST] https://api2.teamlogger.com/api/integration/create_task_multi
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":
["[email protected]","[email protected]"] }' \
https://api2.teamlogger.com/api/integration/create_task
Reassign a task
[POST] https://api2.teamlogger.com/api/zapier/reassign_task
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":"[email protected]" }' \
https://api2.teamlogger.com/api/zapier/reassign_task
Reassign a task (multiple assignees)
[POST] https://api2.teamlogger.com/api/zapier/reassign_task_multi
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":
["[email protected]","[email protected]"] }' \
https://api2.teamlogger.com/api/zapier/reassign_task
Mark task as completed
[POST] https://api2.teamlogger.com/api/integration/complete_task
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" }' \
https://api2.teamlogger.com/api/integration/complete_task
Reactivate task
[POST] https://api2.teamlogger.com/api/integration/reactivate_task
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" }' \
https://api2.teamlogger.com/api/integration/reactivate_task
Cancel Task
[POST] https://api2.teamlogger.com/api/integration/cancel_task
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" }' \
https://api2.teamlogger.com/api/integration/cancel_task
S task as completed
[POST] https://api2.teamlogger.com/api/integration/set_task_nonbillable
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 }' \
https://api2.teamlogger.com/api/integration/complete_task
Add a manual time entry
[POST] https://api2.teamlogger.com/api/integration/add_manual_entry
employee_email (string): The email address of the employee as per user record on
teamlogger.com ( 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":"[email protected]", "project_name":"My Project",
"task_name":"My Task"}' \
https://api2.teamlogger.com/api/integration/add_manual_entry
Get Manual Entries
[GET] https://api2.teamlogger.com/api/integration/manual_entries
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 \
https://api2.teamlogger.com/api/manual_entries
Update Manual Entry Status
[POST] https://api2.teamlogger.com/api/integration/update_manual_entry_status
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" }' \
https://api2.teamlogger.com/api/integration/update_manual_entry_status