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_sourcestringValid values: manual, task_default.
calendar_event_idinteger-
created_atstring-
deleted_atstring-
descriptionstring-
durationinteger-
idinteger-
planned_atstring-
planned_durationinteger-
planned_startstring-
project_idinteger-
startstring-
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 effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; 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","time_block_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-
time_block_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_sourcestringValid values: manual, task_default.
calendar_event_idinteger-
created_atstring-
deleted_atstring-
descriptionstring-
durationinteger-
idinteger-
planned_atstring-
planned_durationinteger-
planned_startstring-
project_idinteger-
startstring-
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 effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; 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) or is being cleared on a grandfathered entry (error=required_fields_deletion)

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_sourcestringValid values: manual, task_default.
calendar_event_idinteger-
created_atstring-
deleted_atstring-
descriptionstring-
durationinteger-
idinteger-
planned_atstring-
planned_durationinteger-
planned_startstring-
project_idinteger-
startstring-
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 effective IANA timezone hydrated on reads: the workspace timezone snapshotted at creation when set, else the creator's snapshot; 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.