Skip to main content

Projects

GET Get workspace projects users

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users

List all projects users for a given workspace.

curl  https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace

Query

nametyperequireddescription
project_idsstringfalseNumeric IDs of projects, comma-separated
user_idstringfalseNumeric ID of user, if passed returns only project users for this user's projects
with_group_membersbooleanfalseInclude group members

Response

200

NameTypeDescription
itemsArray of object-
items
NameTypeDescription
atstringWhen was last modified
gidintegerGroup ID, legacy field
group_idintegerGroup ID
idintegerProject User ID
labor_costnumbernull
labor_cost_last_updatedstringDate for labor cost last updated
managerbooleanWhether the user is manager of the project
project_idintegerProject ID
ratenumbernull
rate_last_updatedstringDate for rate last updated
user_idintegerUser ID
workspace_idintegerWorkspace ID

400

Possible error messages:

  • Workspace not found
  • project_ids cannot exceed 200 elements.
  • Invalid user_id

403

User does not have access to this resource.

500

Internal Server Error

POST Add an user into workspace projects users

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users

Include a project user for a given workspace.

curl -X POST https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users \
-H "Content-Type: application/json" \
-d '\{"labor_cost":"number","labor_cost_change_mode":"string","manager":"boolean","project_id":"integer","rate":"number","rate_change_mode":"string","user_id":"integer"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace

Body

NameTypeDescription
labor_costnumberLabor cost for this project user
labor_cost_change_modestringLabor cost change mode for this project user. Can be "start-today", "override-current", "override-all"
managerbooleanWhether the user will be manager of the project
project_idintegerProject ID
ratenumberRate for this project user
rate_change_modestringRate change mode for this project user. Can be "start-today", "override-current", "override-all"
user_idintegerUser ID

Response

200

NameTypeDescription
atstringWhen was last modified
gidintegerGroup ID, legacy field
group_idintegerGroup ID
idintegerProject User ID
labor_costnumbernull
labor_cost_last_updatedstringDate for labor cost last updated
managerbooleanWhether the user is manager of the project
project_idintegerProject ID
ratenumbernull
rate_last_updatedstringDate for rate last updated
user_idintegerUser ID
workspace_idintegerWorkspace ID

400

Possible error messages:

  • Workspace not found
  • Invalid project_id
  • Invalid user_id
  • Project user already exists

403

User does not have access to this resource.

500

Internal Server Error

PATCH Patch project users from workspace

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_ids}

Patch a list of project users for a given workspace.

curl -X PATCH https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_ids} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace

Query

nametyperequireddescription
project_user_ids[]integertrueNumeric IDs of the project users

Response

200

NameTypeDescription
failureArray of objectList of found errors
successArray of integerList of org user IDs that were successfully patched
failure
NameTypeDescription
idintegerOrganization user ID
messagestringFound error message

400

Possible error messages:

  • Invalid value as user IDs
  • No patchable fields defined
  • PATCH expects at least one ID
  • PATCH request is limited to %d entries at once
  • Invalid op:
  • Invalid path format:
  • Path not found:
  • Operation not supported ({patch_operation} {patch_path})
  • Invalid path
  • /manager expects a boolean
  • /labor_cost expects an float64 or null
  • /rate expects an float64 or null
  • Operation not supported (add /labor_cost)
  • Operation not supported (add /rate)
  • Operation not supported (add /manager)

403

User does not have access to this resource.

500

Internal Server Error

PUT Update an user into workspace projects users

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_id}

Update the data for a project user for a given workspace.

curl -X PUT https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_id} \
-H "Content-Type: application/json" \
-d '\{"labor_cost":"number","labor_cost_change_mode":"string","manager":"boolean","rate":"number","rate_change_mode":"string"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
project_user_idintegertrueNumeric ID of the project user

Body

NameTypeDescription
labor_costnumberLabor cost for this project user
labor_cost_change_modestringLabor cost change mode for this project user. Can be "start-today", "override-current", "override-all"
managerbooleanWhether the user will be manager of the project
ratenumberRate for this project user
rate_change_modestringRate change mode for this project user. Can be "start-today", "override-current", "override-all"

Response

200

NameTypeDescription
atstringWhen was last modified
gidintegerGroup ID, legacy field
group_idintegerGroup ID
idintegerProject User ID
labor_costnumbernull
labor_cost_last_updatedstringDate for labor cost last updated
managerbooleanWhether the user is manager of the project
project_idintegerProject ID
ratenumbernull
rate_last_updatedstringDate for rate last updated
user_idintegerUser ID
workspace_idintegerWorkspace ID

400

Possible error messages:

  • Workspace not found
  • Missing data
  • Invalid project_id
  • Invalid user_id

403

User does not have access to this resource.

500

Internal Server Error

DELETE Delete a project user from workspace projects users

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_id}

Delete a project user for a given workspace.

curl -X DELETE https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/project_users/{project_user_id} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
project_user_idintegertrueNumeric ID of the project user

Response

200

Successful operation.

400

Possible error messages:

  • Workspace not found
  • Project user not found/accessible
  • Invalid project_id

403

User does not have access to this resource.

500

Internal Server Error

GET WorkspaceProjects

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects

Get projects for given workspace.

curl  https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace

Query

nametyperequireddescription
sort_pinnedbooleantruePlace pinned projects at top of response

Query

nametyperequireddescription
activebooleanfalseReturn active or inactive project. You can pass 'both' to get both active and inactive projects.
sinceintegerfalseRetrieve projects created/modified/deleted since this date using UNIX timestamp.
billablebooleanfalsebillable
user_idsarrayfalseuser_ids
client_idsarrayfalseclient_ids
group_idsarrayfalsegroup_ids
statusesarrayfalsestatuses
namestringtruename
pageintegertruepage
sort_fieldstringtruesort_field
sort_orderstringtruesort_order
only_templatesbooleantrueonly_templates
only_mebooleanfalseget only projects assigned to the current user
per_pageintegerfalseNumber of items per page, default 151. Cannot exceed 200.

Response

200

NameTypeDescription
itemsArray of object-
items
NameTypeDescription
activebooleanWhether the project is active or archived
actual_hoursintegernull
actual_secondsintegernull
atstringLast updated date
auto_estimatesbooleannull
billablebooleannull
canSeeRatesbooleanAuxiliary and transient variable to check if the current user can see rates for this project.
can_track_timeboolean-
cidintegerClient ID legacy field
client_idintegernull
colorstringColor
created_atstringCreation date
currencystringnull
current_periodobjectCurrent project period, premium feature
end_datestringEnd date
estimated_hoursintegernull
estimated_secondsintegernull
fixed_feenumberFixed fee, premium feature
idintegerProject ID
integration_ext_idstringThe external ID of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_ext_typestringThe external type of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_providerstringThe provider (e.g. JIRA/SalesForce) that has an entity linked to this Toggl Track entity
is_privatebooleanWhether the project is private
is_sharedbooleanShared Project
namestringName
permissionsstring-
pinnedboolean-
ratenumberHourly rate
rate_last_updatedstringnull
recurringbooleanWhether the project is recurring, premium feature
recurring_parametersArray of objectProject recurring parameters, premium feature
shared_atstring-
shared_hashstring-
start_datestringStart date
statusstringStatus of the project (upcoming, active, ended, archived, deleted)
tasks_countinteger-
templatebooleannull
template_idintegernull
widintegerWorkspace ID legacy field
workspace_idintegerWorkspace ID
current_period
NameTypeDescription
end_datestring-
start_datestring-
recurring_parameters
NameTypeDescription
custom_periodintegerCustom period, used when "period" field is "custom"
estimated_secondsintegerEstimated seconds
parameter_end_datestringnull
parameter_start_datestringRecurring start date
periodstringPeriod
project_start_datestringProject start date

403

User does not have access to this resource.

500

Internal Server Error

POST WorkspaceProjects

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects

Create project for given workspace.

curl -X POST https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects \
-H "Content-Type: application/json" \
-d '\{"active":"boolean","auto_estimates":"boolean","billable":"boolean","cid":"integer","client_id":"integer","client_name":"string","color":"string","currency":"string","end_date":"string","estimated_hours":"integer","fixed_fee":"number","is_private":"boolean","is_shared":"boolean","name":"string","rate":"number","rate_change_mode":"string","recurring":"boolean","recurring_parameters":\{"custom_period":"integer","period":"string","project_start_date":"string"\},"start_date":"string","template":"boolean","template_id":"integer"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace

Body

NameTypeDescription
activebooleanWhether the project is active or archived
auto_estimatesbooleanWhether estimates are based on task hours, optional, premium feature
billablebooleanWhether the project is set as billable, optional, premium feature
cidintegerClient ID, legacy
client_idintegerClient ID, optional
client_namestringClient name, optional
colorstringProject color
currencystringProject currency, optional, premium feature
end_datestringEnd date of a project timeframe
estimated_hoursintegerEstimated hours, optional, premium feature
fixed_feenumberProject fixed fee, optional, premium feature
is_privatebooleanWhether the project is private or not
is_sharedbooleanShared
namestringProject name
ratenumberHourly rate, optional, premium feature
rate_change_modestringRate change mode, optional, premium feature. Can be "start-today", "override-current", "override-all"
recurringbooleanProject is recurring, optional, premium feature
recurring_parametersobjectProject recurring parameters, optional, premium feature
start_datestringStart date of a project timeframe
templatebooleanProject is template, optional, premium feature
template_idintegerTemplate ID, optional
recurring_parameters
NameTypeDescription
custom_periodintegerRecurring custom period, the "period" field must be "custom"
periodstringRecurring period, example "monthly"
project_start_datestringRecurring start date

Response

200

NameTypeDescription
activebooleanWhether the project is active or archived
actual_hoursintegernull
actual_secondsintegernull
atstringLast updated date
auto_estimatesbooleannull
billablebooleannull
canSeeRatesbooleanAuxiliary and transient variable to check if the current user can see rates for this project.
can_track_timeboolean-
cidintegerClient ID legacy field
client_idintegernull
colorstringColor
created_atstringCreation date
currencystringnull
current_periodobjectCurrent project period, premium feature
end_datestringEnd date
estimated_hoursintegernull
estimated_secondsintegernull
fixed_feenumberFixed fee, premium feature
idintegerProject ID
integration_ext_idstringThe external ID of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_ext_typestringThe external type of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_providerstringThe provider (e.g. JIRA/SalesForce) that has an entity linked to this Toggl Track entity
is_privatebooleanWhether the project is private
is_sharedbooleanShared Project
namestringName
permissionsstring-
pinnedboolean-
ratenumberHourly rate
rate_last_updatedstringnull
recurringbooleanWhether the project is recurring, premium feature
recurring_parametersArray of objectProject recurring parameters, premium feature
shared_atstring-
shared_hashstring-
start_datestringStart date
statusstringStatus of the project (upcoming, active, ended, archived, deleted)
tasks_countinteger-
templatebooleannull
template_idintegernull
widintegerWorkspace ID legacy field
workspace_idintegerWorkspace ID
current_period
NameTypeDescription
end_datestring-
start_datestring-
recurring_parameters
NameTypeDescription
custom_periodintegerCustom period, used when "period" field is "custom"
estimated_secondsintegerEstimated seconds
parameter_end_datestringnull
parameter_start_datestringRecurring start date
periodstringPeriod
project_start_datestringProject start date

403

User does not have access to this resource.

500

Internal Server Error

PATCH WorkspaceProjects

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_ids}

Bulk editing workspace projects.

curl -X PATCH https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_ids} \
-H "Content-Type: application/json" \
-d '[\{"op":"string","path":"string","value":\{\}\}]' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
project_idsstringtrueNumeric IDs of project ids, separated by comma. E.g.: 204301830,202700150,202687559

Body

NameTypeDescription
itemsArray of object-
items
NameTypeDescription
opstringPatch operation to perform, one of "add", "remove", "replace"
pathstringPath to the field to patch, example: "/color"
valueobjectValue to set when operation is "add" or "replace", example: "#000000". The value type actually depends on the field being patched.
value

Response

200

NameTypeDescription
failureArray of object-
successArray of integer-
failure
NameTypeDescription
idinteger-
messagestring-

500

Internal Server Error

GET WorkspaceProject

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_id}

Get project for given workspace.

curl  https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_id} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
project_idintegertrueNumeric ID of the project

Response

200

NameTypeDescription
activebooleanWhether the project is active or archived
actual_hoursintegernull
actual_secondsintegernull
atstringLast updated date
auto_estimatesbooleannull
billablebooleannull
canSeeRatesbooleanAuxiliary and transient variable to check if the current user can see rates for this project.
can_track_timeboolean-
cidintegerClient ID legacy field
client_idintegernull
colorstringColor
created_atstringCreation date
currencystringnull
current_periodobjectCurrent project period, premium feature
end_datestringEnd date
estimated_hoursintegernull
estimated_secondsintegernull
fixed_feenumberFixed fee, premium feature
idintegerProject ID
integration_ext_idstringThe external ID of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_ext_typestringThe external type of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_providerstringThe provider (e.g. JIRA/SalesForce) that has an entity linked to this Toggl Track entity
is_privatebooleanWhether the project is private
is_sharedbooleanShared Project
namestringName
permissionsstring-
pinnedboolean-
ratenumberHourly rate
rate_last_updatedstringnull
recurringbooleanWhether the project is recurring, premium feature
recurring_parametersArray of objectProject recurring parameters, premium feature
shared_atstring-
shared_hashstring-
start_datestringStart date
statusstringStatus of the project (upcoming, active, ended, archived, deleted)
tasks_countinteger-
templatebooleannull
template_idintegernull
widintegerWorkspace ID legacy field
workspace_idintegerWorkspace ID
current_period
NameTypeDescription
end_datestring-
start_datestring-
recurring_parameters
NameTypeDescription
custom_periodintegerCustom period, used when "period" field is "custom"
estimated_secondsintegerEstimated seconds
parameter_end_datestringnull
parameter_start_datestringRecurring start date
periodstringPeriod
project_start_datestringProject start date

400

Possible errors:

  • Invalid project_id

403

User does not have access to this resource.

500

Internal Server Error

PUT WorkspaceProject

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_id}

Update project for given workspace.

curl -X PUT https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_id} \
-H "Content-Type: application/json" \
-d '\{"active":"boolean","auto_estimates":"boolean","billable":"boolean","cid":"integer","client_id":"integer","client_name":"string","color":"string","currency":"string","end_date":"string","estimated_hours":"integer","fixed_fee":"number","is_private":"boolean","is_shared":"boolean","name":"string","rate":"number","rate_change_mode":"string","recurring":"boolean","recurring_parameters":\{"custom_period":"integer","period":"string","project_start_date":"string"\},"start_date":"string","template":"boolean","template_id":"integer"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
project_idintegertrueNumeric ID of the project

Body

NameTypeDescription
activebooleanWhether the project is active or archived
auto_estimatesbooleanWhether estimates are based on task hours, optional, premium feature
billablebooleanWhether the project is set as billable, optional, premium feature
cidintegerClient ID, legacy
client_idintegerClient ID, optional
client_namestringClient name, optional
colorstringProject color
currencystringProject currency, optional, premium feature
end_datestringEnd date of a project timeframe
estimated_hoursintegerEstimated hours, optional, premium feature
fixed_feenumberProject fixed fee, optional, premium feature
is_privatebooleanWhether the project is private or not
is_sharedbooleanShared
namestringProject name
ratenumberHourly rate, optional, premium feature
rate_change_modestringRate change mode, optional, premium feature. Can be "start-today", "override-current", "override-all"
recurringbooleanProject is recurring, optional, premium feature
recurring_parametersobjectProject recurring parameters, optional, premium feature
start_datestringStart date of a project timeframe
templatebooleanProject is template, optional, premium feature
template_idintegerTemplate ID, optional
recurring_parameters
NameTypeDescription
custom_periodintegerRecurring custom period, the "period" field must be "custom"
periodstringRecurring period, example "monthly"
project_start_datestringRecurring start date

Response

200

NameTypeDescription
activebooleanWhether the project is active or archived
actual_hoursintegernull
actual_secondsintegernull
atstringLast updated date
auto_estimatesbooleannull
billablebooleannull
canSeeRatesbooleanAuxiliary and transient variable to check if the current user can see rates for this project.
can_track_timeboolean-
cidintegerClient ID legacy field
client_idintegernull
colorstringColor
created_atstringCreation date
currencystringnull
current_periodobjectCurrent project period, premium feature
end_datestringEnd date
estimated_hoursintegernull
estimated_secondsintegernull
fixed_feenumberFixed fee, premium feature
idintegerProject ID
integration_ext_idstringThe external ID of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_ext_typestringThe external type of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_providerstringThe provider (e.g. JIRA/SalesForce) that has an entity linked to this Toggl Track entity
is_privatebooleanWhether the project is private
is_sharedbooleanShared Project
namestringName
permissionsstring-
pinnedboolean-
ratenumberHourly rate
rate_last_updatedstringnull
recurringbooleanWhether the project is recurring, premium feature
recurring_parametersArray of objectProject recurring parameters, premium feature
shared_atstring-
shared_hashstring-
start_datestringStart date
statusstringStatus of the project (upcoming, active, ended, archived, deleted)
tasks_countinteger-
templatebooleannull
template_idintegernull
widintegerWorkspace ID legacy field
workspace_idintegerWorkspace ID
current_period
NameTypeDescription
end_datestring-
start_datestring-
recurring_parameters
NameTypeDescription
custom_periodintegerCustom period, used when "period" field is "custom"
estimated_secondsintegerEstimated seconds
parameter_end_datestringnull
parameter_start_datestringRecurring start date
periodstringPeriod
project_start_datestringProject start date

400

Possible errors:

  • Client with the ID {client ID} isn't present in workspace {workspace ID}
  • Error in validating color '{color}'. Project color must be a hex value in the form of #[0-9a-f]{6}.

403

Possible errors:

  • Only admins may create projects in this workspace
  • User does not have access to this resource.

500

Internal Server Error

DELETE WorkspaceProject

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_id}

Delete project for given workspace.

curl -X DELETE https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_id} \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
project_idintegertrueNumeric ID of the project

Query

nametyperequireddescription
teDeletionModestringfalseTime entries deletion mode: 'delete' or 'unassign'

Response

200

Successful operation.

400

Possible errors:

  • Invalid project_id

403

User does not have access to this resource.

500

Internal Server Error

© 2024 Toggl. All rights reserved.