Skip to main content

Time entries

GET TimeEntries

https://api.track.toggl.com/api/v9/me/time_entries

Lists latest time entries.

curl  https://api.track.toggl.com/api/v9/me/time_entries \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters

Query

nametyperequireddescription
metabooleanfalseShould the response contain data for meta entities
include_sharingbooleanfalseInclude sharing details in the response

Query

nametyperequireddescription
sinceintegerfalseGet entries modified since this date using UNIX timestamp, including deleted ones.
beforestringfalseGet entries with start time, before given date (YYYY-MM-DD) or with time in RFC3339 format.
start_datestringfalseGet entries with start time, from start_date YYYY-MM-DD or with time in RFC3339 format. To be used with end_date.
end_datestringfalseGet entries with start time, until end_date YYYY-MM-DD or with time in RFC3339 format. To be used with start_date.

Response

200

NameTypeDescription
itemsArray of object-
items
NameTypeDescription
atstringWhen was last updated, the field follows the ISO 8601 format (HH:mm:ss.ssssssZ)
billablebooleanWhether the time entry is marked as billable
client_namestringRelated entities meta fields - if requested
descriptionstringnull
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanUsed to create a TE with a duration but without a stop time, this field is deprecated for GET endpoints where the value will always be true.
idintegerTime Entry ID
permissionsArray of stringPermission list
pidintegerProject ID, legacy field
project_activeboolean-
project_billableboolean-
project_colorstring-
project_idintegernull
project_namestring-
shared_withArray of objectIndicates who the time entry has been shared with
startstringStart time in UTC
stopstringStop time in UTC, can be null if it's still running or created with "duration" and "duronly" fields
tag_idsArray of integerTag IDs, null if tags were not provided or were later deleted
tagsArray of stringTag names, null if tags were not provided or were later deleted
task_idintegernull
task_namestring-
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_avatar_urlstring-
user_idintegerTime Entry creator ID
user_namestring-
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID
shared_with
NameTypeDescription
acceptedboolean-
user_idinteger-
user_namestring-

403

User does not have access to this resource.

500

Internal Server Error

GET Get current time entry

https://api.track.toggl.com/api/v9/me/time_entries/current

Load running time entry for user ID.

curl  https://api.track.toggl.com/api/v9/me/time_entries/current \
-H "Content-Type: application/json" \
-u <email>:<password>

Response

200

NameTypeDescription
atstringWhen was last updated, the field follows the ISO 8601 format (HH:mm:ss.ssssssZ)
billablebooleanWhether the time entry is marked as billable
client_namestringRelated entities meta fields - if requested
descriptionstringnull
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanUsed to create a TE with a duration but without a stop time, this field is deprecated for GET endpoints where the value will always be true.
idintegerTime Entry ID
permissionsArray of stringPermission list
pidintegerProject ID, legacy field
project_activeboolean-
project_billableboolean-
project_colorstring-
project_idintegernull
project_namestring-
shared_withArray of objectIndicates who the time entry has been shared with
startstringStart time in UTC
stopstringStop time in UTC, can be null if it's still running or created with "duration" and "duronly" fields
tag_idsArray of integerTag IDs, null if tags were not provided or were later deleted
tagsArray of stringTag names, null if tags were not provided or were later deleted
task_idintegernull
task_namestring-
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_avatar_urlstring-
user_idintegerTime Entry creator ID
user_namestring-
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID
shared_with
NameTypeDescription
acceptedboolean-
user_idinteger-
user_namestring-

403

User does not have access to this resource.

404

Resource can not be found

500

Internal Server Error

GET Get a time entry by ID.

https://api.track.toggl.com/api/v9/me/time_entries/{time_entry_id}

Load time entry by ID that is accessible by the current user.

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

Parameters

Path

nametyperequireddescription
time_entry_idintegertrueTimeEntry ID.

Query

nametyperequireddescription
metabooleanfalseShould the response contain data for meta entities
include_sharingbooleanfalseInclude sharing details in the response

Response

200

NameTypeDescription
atstringWhen was last updated, the field follows the ISO 8601 format (HH:mm:ss.ssssssZ)
billablebooleanWhether the time entry is marked as billable
client_namestringRelated entities meta fields - if requested
descriptionstringnull
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanUsed to create a TE with a duration but without a stop time, this field is deprecated for GET endpoints where the value will always be true.
idintegerTime Entry ID
permissionsArray of stringPermission list
pidintegerProject ID, legacy field
project_activeboolean-
project_billableboolean-
project_colorstring-
project_idintegernull
project_namestring-
shared_withArray of objectIndicates who the time entry has been shared with
startstringStart time in UTC
stopstringStop time in UTC, can be null if it's still running or created with "duration" and "duronly" fields
tag_idsArray of integerTag IDs, null if tags were not provided or were later deleted
tagsArray of stringTag names, null if tags were not provided or were later deleted
task_idintegernull
task_namestring-
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_avatar_urlstring-
user_idintegerTime Entry creator ID
user_namestring-
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID
shared_with
NameTypeDescription
acceptedboolean-
user_idinteger-
user_namestring-

404

Resource can not be found

500

Internal Server Error

POST TimeEntries

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

Creates a new workspace TimeEntry.

curl -X POST https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/time_entries \
-H "Content-Type: application/json" \
-d '\{"billable":"boolean","created_with":"string","description":"string","duration":"integer","duronly":"boolean","event_metadata":\{"origin_feature":"string","visible_goals_count":"integer"\},"pid":"integer","project_id":"integer","shared_with_user_ids":[\{\}],"start":"string","start_date":"string","stop":"string","tag_action":"string","tag_ids":[\{\}],"tags":[\{\}],"task_id":"integer","tid":"integer","uid":"integer","user_id":"integer","wid":"integer","workspace_id":"integer"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace

Query

nametyperequireddescription
metabooleanfalseShould the response contain data for meta entities

Body

NameTypeDescription
billablebooleanWhether the time entry is marked as billable, optional, default false
created_withstringMust be provided when creating a time entry and should identify the service/application used to create it
descriptionstringTime entry description, optional
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanDeprecated: Used to create a time entry with a duration but without a stop time. This parameter can be ignored.
event_metadataobject-
pidintegerProject ID, legacy field
project_idintegerProject ID, optional
shared_with_user_idsArray of integerList of user IDs to share this time entry with
startstringStart time in UTC, required for creation. Format: 2006-01-02T15:04:05Z
start_datestringIf provided during creation, the date part will take precedence over the date part of "start". Format: 2006-11-07
stopstringStop time in UTC, can be omitted if it's still running or created with "duration". If "stop" and "duration" are provided, values must be consistent (start + duration == stop)
tag_actionstringCan be "add" or "delete". Used when updating an existing time entry
tag_idsArray of integerIDs of tags to add/remove
tagsArray of stringNames of tags to add/remove. If name does not exist as tag, one will be created automatically
task_idintegerTask ID, optional
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_idintegerTime Entry creator ID, if omitted will use the requester user ID
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID, required
event_metadata
NameTypeDescription
origin_featurestring-
visible_goals_countinteger-

Response

200

A workspace TimeEntry.

NameTypeDescription
atstringWhen was last updated, the field follows the ISO 8601 format (HH:mm:ss.ssssssZ)
billablebooleanWhether the time entry is marked as billable
client_namestringRelated entities meta fields - if requested
descriptionstringnull
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanUsed to create a TE with a duration but without a stop time, this field is deprecated for GET endpoints where the value will always be true.
idintegerTime Entry ID
permissionsArray of stringPermission list
pidintegerProject ID, legacy field
project_activeboolean-
project_billableboolean-
project_colorstring-
project_idintegernull
project_namestring-
shared_withArray of objectIndicates who the time entry has been shared with
startstringStart time in UTC
stopstringStop time in UTC, can be null if it's still running or created with "duration" and "duronly" fields
tag_idsArray of integerTag IDs, null if tags were not provided or were later deleted
tagsArray of stringTag names, null if tags were not provided or were later deleted
task_idintegernull
task_namestring-
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_avatar_urlstring-
user_idintegerTime Entry creator ID
user_namestring-
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID
shared_with
NameTypeDescription
acceptedboolean-
user_idinteger-
user_namestring-

403

User does not have access to this resource.

500

Internal Server Error

PATCH Bulk editing time entries

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

In short: http://tools.ietf.org/html/rfc6902 and http://tools.ietf.org/html/rfc6901 with some additions. Patch will be executed partially when there are errors with some records. No transaction, no rollback.

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

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
time_entry_idsstringtrueNumeric IDs of time_entries, separated by comma. E.g.: 204301830,202700150,202687559. The limit is 100 IDs per request.

Query

nametyperequireddescription
metabooleanfalseShould the response contain data for meta entities

Body

NameTypeDescription
itemsArray of object-
items
NameTypeDescription
opstringOperation (add/remove/replace)
pathstringThe path to the entity to patch (e.g. /description)
valueobjectThe new value for the entity in path.
value

Response

200

NameTypeDescription
failureArray of object-
successArray of integerThe IDs for which the patch was succesful.
failure
NameTypeDescription
idintegerThe ID for which the patch operation failed.
messagestringThe operation failure reason.

500

Internal Server Error

PUT TimeEntries

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

Updates a workspace time entry.

curl -X PUT https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/time_entries/{time_entry_id} \
-H "Content-Type: application/json" \
-d '\{"billable":"boolean","created_with":"string","description":"string","duration":"integer","duronly":"boolean","event_metadata":\{"origin_feature":"string","visible_goals_count":"integer"\},"pid":"integer","project_id":"integer","shared_with_user_ids":[\{\}],"start":"string","start_date":"string","stop":"string","tag_action":"string","tag_ids":[\{\}],"tags":[\{\}],"task_id":"integer","tid":"integer","uid":"integer","user_id":"integer","wid":"integer","workspace_id":"integer"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
time_entry_idintegertrueTimeEntry ID.

Query

nametyperequireddescription
metabooleanfalseShould the response contain data for meta entities
include_sharingbooleanfalseShould the response contain time entry sharing details

Body

NameTypeDescription
billablebooleanWhether the time entry is marked as billable, optional, default false
created_withstringMust be provided when creating a time entry and should identify the service/application used to create it
descriptionstringTime entry description, optional
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanDeprecated: Used to create a time entry with a duration but without a stop time. This parameter can be ignored.
event_metadataobject-
pidintegerProject ID, legacy field
project_idintegerProject ID, optional
shared_with_user_idsArray of integerList of user IDs to share this time entry with
startstringStart time in UTC, required for creation. Format: 2006-01-02T15:04:05Z
start_datestringIf provided during creation, the date part will take precedence over the date part of "start". Format: 2006-11-07
stopstringStop time in UTC, can be omitted if it's still running or created with "duration". If "stop" and "duration" are provided, values must be consistent (start + duration == stop)
tag_actionstringCan be "add" or "delete". Used when updating an existing time entry
tag_idsArray of integerIDs of tags to add/remove
tagsArray of stringNames of tags to add/remove. If name does not exist as tag, one will be created automatically
task_idintegerTask ID, optional
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_idintegerTime Entry creator ID, if omitted will use the requester user ID
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID, required
event_metadata
NameTypeDescription
origin_featurestring-
visible_goals_countinteger-

Response

200

A workspace TimeEntry.

NameTypeDescription
atstringWhen was last updated, the field follows the ISO 8601 format (HH:mm:ss.ssssssZ)
billablebooleanWhether the time entry is marked as billable
client_namestringRelated entities meta fields - if requested
descriptionstringnull
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanUsed to create a TE with a duration but without a stop time, this field is deprecated for GET endpoints where the value will always be true.
idintegerTime Entry ID
permissionsArray of stringPermission list
pidintegerProject ID, legacy field
project_activeboolean-
project_billableboolean-
project_colorstring-
project_idintegernull
project_namestring-
shared_withArray of objectIndicates who the time entry has been shared with
startstringStart time in UTC
stopstringStop time in UTC, can be null if it's still running or created with "duration" and "duronly" fields
tag_idsArray of integerTag IDs, null if tags were not provided or were later deleted
tagsArray of stringTag names, null if tags were not provided or were later deleted
task_idintegernull
task_namestring-
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_avatar_urlstring-
user_idintegerTime Entry creator ID
user_namestring-
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID
shared_with
NameTypeDescription
acceptedboolean-
user_idinteger-
user_namestring-

403

User does not have access to this resource.

500

Internal Server Error

DELETE TimeEntries

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

Deletes a workspace time entry.

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

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
time_entry_idintegertrueTimeEntry ID.

Response

200

Returns only status code.

403

User does not have access to this resource.

500

Internal Server Error

PATCH Stop TimeEntry

https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/time_entries/{time_entry_id}/stop

Stops a workspace time entry.

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

Parameters

Path

nametyperequireddescription
workspace_idintegertrueNumeric ID of the workspace
time_entry_idintegertrueTimeEntry ID.

Response

200

The stopped workspace TimeEntry.

NameTypeDescription
atstringWhen was last updated, the field follows the ISO 8601 format (HH:mm:ss.ssssssZ)
billablebooleanWhether the time entry is marked as billable
client_namestringRelated entities meta fields - if requested
descriptionstringnull
durationintegerTime entry duration. For running entries should be negative, preferable -1
duronlybooleanUsed to create a TE with a duration but without a stop time, this field is deprecated for GET endpoints where the value will always be true.
idintegerTime Entry ID
permissionsArray of stringPermission list
pidintegerProject ID, legacy field
project_activeboolean-
project_billableboolean-
project_colorstring-
project_idintegernull
project_namestring-
shared_withArray of objectIndicates who the time entry has been shared with
startstringStart time in UTC
stopstringStop time in UTC, can be null if it's still running or created with "duration" and "duronly" fields
tag_idsArray of integerTag IDs, null if tags were not provided or were later deleted
tagsArray of stringTag names, null if tags were not provided or were later deleted
task_idintegernull
task_namestring-
tidintegerTask ID, legacy field
uidintegerTime Entry creator ID, legacy field
user_avatar_urlstring-
user_idintegerTime Entry creator ID
user_namestring-
widintegerWorkspace ID, legacy field
workspace_idintegerWorkspace ID
shared_with
NameTypeDescription
acceptedboolean-
user_idinteger-
user_namestring-

400

Invalid or missing time_entry_id

403

User does not have access to this resource.

404

Time entry not found

409

Time entry already stopped

500

Internal Server Error

© 2024 Toggl. All rights reserved.