Skip to main content

Tracking

GET Get current tracked time entry​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tracking/current

Get current tracked time entry.

curl  https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tracking/current \
-H "Content-Type: application/json" \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID

Response​

200​

Time entry

NameTypeDescription
archived_atstring-
billableboolean-
billable_sourcestringWhether billable was set on the entry (manual) or resolved from its task, else its project (task_default). Valid values: manual, task_default.
calendar_event_idinteger-
calendar_idintegerCalendarID is the calendar service's calendar PK. It stays set after a calendar deselect clears calendar_event_id.
created_atstring-
deleted_atstring-
descriptionstring-
durationintegerTracked duration in seconds; omitted while the timer is running and for an entry that is only planned.
idinteger-
pattern_generatedbooleanPatternGenerated is the response-facing derivative of GeneratedByTaskID: true when the entry was materialized by a series pattern.
pattern_managedbooleanPatternManaged reports that the pattern engine owns this entry. Server-owned; present in responses, never bindable from a payload.
planned_atstring-
planned_durationintegerPlanned duration in seconds.
planned_startstringPlanned start, for time planned on the calendar.
project_idinteger-
startstringStart of the tracked time; omitted for an entry that is only planned.
tag_idsArray of integerTagIDs is the entry's manual tag override. NULL (nil) means no override: the effective tags fall through to the linked task's tags. A non-nil value — including an empty array — is entry-authoritative.
tagsArray of objectTags is the hydrated effective tag set: the override when TagIDs is set, else the linked task's active tags. Read-only.
task_idintegernull
time_block_idinteger-
timezonestringTimezone is the entry creator's IANA timezone snapshotted at creation; NULL when unresolved.
toggl_user_idinteger-
tracked_atstring-
typestringThe type of time entry: either an activity or a break. Valid values: activity, break.
updated_atstring-
workspace_idinteger-
tags​
NameTypeDescription
colorstring-
idinteger-
namestring-

204​

Not tracking a time entry

400​

Invalid request

403​

Insufficient permissions

500​

Internal Server Error

POST Start tracking time entry​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tracking/start

Start tracking time entry. If a running entry already exists it is automatically stopped and the new entry is returned.

curl -X POST https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tracking/start \
-H "Content-Type: application/json" \
-d '\{"billable":"boolean","calendar_event_id":"integer","description":"string","project_id":"integer","start":"string","tag_ids":[\{\}],"task_id":"integer","type":"string"\}' \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID

Body​

NameTypeDescription
billableboolean-
calendar_event_idinteger-
descriptionstring-
project_idinteger-
startstring-
tag_idsArray of integerTagIDs sets a manual tag override on the started entry; absent/null inherits the task's tags.
task_idinteger-
typestringThe type of time entry: either an activity or a break. Valid values: activity, break.

Response​

200​

Time entry

NameTypeDescription
archived_atstring-
billableboolean-
billable_sourcestringWhether billable was set on the entry (manual) or resolved from its task, else its project (task_default). Valid values: manual, task_default.
calendar_event_idinteger-
calendar_idintegerCalendarID is the calendar service's calendar PK. It stays set after a calendar deselect clears calendar_event_id.
created_atstring-
deleted_atstring-
descriptionstring-
durationintegerTracked duration in seconds; omitted while the timer is running and for an entry that is only planned.
idinteger-
pattern_generatedbooleanPatternGenerated is the response-facing derivative of GeneratedByTaskID: true when the entry was materialized by a series pattern.
pattern_managedbooleanPatternManaged reports that the pattern engine owns this entry. Server-owned; present in responses, never bindable from a payload.
planned_atstring-
planned_durationintegerPlanned duration in seconds.
planned_startstringPlanned start, for time planned on the calendar.
project_idinteger-
startstringStart of the tracked time; omitted for an entry that is only planned.
tag_idsArray of integerTagIDs is the entry's manual tag override. NULL (nil) means no override: the effective tags fall through to the linked task's tags. A non-nil value — including an empty array — is entry-authoritative.
tagsArray of objectTags is the hydrated effective tag set: the override when TagIDs is set, else the linked task's active tags. Read-only.
task_idintegernull
time_block_idinteger-
timezonestringTimezone is the entry creator's IANA timezone snapshotted at creation; NULL when unresolved.
toggl_user_idinteger-
tracked_atstring-
typestringThe type of time entry: either an activity or a break. Valid values: activity, break.
updated_atstring-
workspace_idinteger-
tags​
NameTypeDescription
colorstring-
idinteger-
namestring-

400​

Invalid request

403​

Insufficient permissions

404​

User task does not exist

422​

Required field is missing (error=required_fields_missing) on the new entry, or on the running entry it would stop (error_values.time_entry_id names that entry)

500​

Internal Server Error

POST Stop tracking time entry​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tracking/stop

Stop tracking time entry.

curl -X POST https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tracking/stop \
-H "Content-Type: application/json" \
-d '\{"end":"string"\}' \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID

Body​

NameTypeDescription
endstring-

Response​

200​

Time entry

NameTypeDescription
archived_atstring-
billableboolean-
billable_sourcestringWhether billable was set on the entry (manual) or resolved from its task, else its project (task_default). Valid values: manual, task_default.
calendar_event_idinteger-
calendar_idintegerCalendarID is the calendar service's calendar PK. It stays set after a calendar deselect clears calendar_event_id.
created_atstring-
deleted_atstring-
descriptionstring-
durationintegerTracked duration in seconds; omitted while the timer is running and for an entry that is only planned.
idinteger-
pattern_generatedbooleanPatternGenerated is the response-facing derivative of GeneratedByTaskID: true when the entry was materialized by a series pattern.
pattern_managedbooleanPatternManaged reports that the pattern engine owns this entry. Server-owned; present in responses, never bindable from a payload.
planned_atstring-
planned_durationintegerPlanned duration in seconds.
planned_startstringPlanned start, for time planned on the calendar.
project_idinteger-
startstringStart of the tracked time; omitted for an entry that is only planned.
tag_idsArray of integerTagIDs is the entry's manual tag override. NULL (nil) means no override: the effective tags fall through to the linked task's tags. A non-nil value — including an empty array — is entry-authoritative.
tagsArray of objectTags is the hydrated effective tag set: the override when TagIDs is set, else the linked task's active tags. Read-only.
task_idintegernull
time_block_idinteger-
timezonestringTimezone is the entry creator's IANA timezone snapshotted at creation; NULL when unresolved.
toggl_user_idinteger-
tracked_atstring-
typestringThe type of time entry: either an activity or a break. Valid values: activity, break.
updated_atstring-
workspace_idinteger-
tags​
NameTypeDescription
colorstring-
idinteger-
namestring-

400​

Invalid request

403​

Insufficient permissions

404​

Not tracking a time entry

422​

Required field is missing (error=required_fields_missing) or is being cleared on a grandfathered entry (error=required_fields_deletion)

500​

Internal Server Error

© 2026 Toggl. All rights reserved.