Skip to main content

Summary reports

POST List project users

https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/projects/summary

Returns summary user projects.

curl -X POST https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/projects/summary \
-H "Content-Type: application/json" \
-d '\{"end_date":"string","start_date":"string"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueWorkspace ID

Body

NameTypeDescription
end_datestringEnd date, example time.DateOnly. Should be greater than Start date. Inclusive calendar date: the whole day is covered, evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set). Entries are matched on their start, so an entry starting on End date is included even if it stops after it.
start_datestringStart date, example time.DateOnly. Should be less than End date. Inclusive calendar date: it is evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set), not in the caller's or the workspace's time zone.

Response

200

Returns summary user projects

NameTypeDescription
itemsArray of object-
items
NameTypeDescription
billable_secondsinteger-
project_idinteger-
tracked_secondsinteger-
user_idinteger-

400

Possible error messages:

  • At least one parameter must be set
  • Invalid workspace id

500

Internal Server Error

POST Load project summary

https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/projects/{project_id}/summary

Returns project's summary.

curl -X POST https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/projects/{project_id}/summary \
-H "Content-Type: application/json" \
-d '\{"end_date":"string","start_date":"string"\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueWorkspace ID
project_idintegertrueProject ID

Body

NameTypeDescription
end_datestringEnd date, example time.DateOnly. Should be greater than Start date. Inclusive calendar date: the whole day is covered, evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set). Entries are matched on their start, so an entry starting on End date is included even if it stops after it.
start_datestringStart date, example time.DateOnly. Should be less than End date. Inclusive calendar date: it is evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set), not in the caller's or the workspace's time zone.

Response

200

Returns project summary

NameTypeDescription
billable_amount_in_centsinteger-
graphArray of object-
labour_cost_in_centsinteger-
ratesArray of object-
resolutionstring-
secondsinteger-
tracked_daysinteger-
graph
NameTypeDescription
billable_amount_in_centsinteger-
by_rateobject-
labour_cost_in_centsinteger-
secondsinteger-
by_rate
rates
NameTypeDescription
billable_secondsinteger-
currencystring-
hourly_rate_in_centsinteger-

400

Possible error messages:

  • Invalid workspace id
  • Invalid project id
  • The {parameter} parameter is required
  • Invalid {parameter} format
  • {date_range} should be within 2006-01-01 to 2030-01-01

402

Workspace needs to have the {feature} feature enabled

403

Possible error messages:

  • Workspace not found/accessible
  • project not found or not accessible

500

Internal Server Error

POST Search time entries

https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/summary/time_entries

Returns time entries for summary report according to the given filters.

curl -X POST https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/summary/time_entries \
-H "Content-Type: application/json" \
-d '\{"audit":\{"group_filter":\{"currency":"string","max_amount_cents":"integer","max_duration_seconds":"integer","min_amount_cents":"integer","min_duration_seconds":"integer"\},"show_empty_groups":"boolean","show_tracked_groups":"boolean"\},"billable":"boolean","client_ids":[\{\}],"description":"string","distinguish_rates":"boolean","end_date":"string","group_ids":[\{\}],"grouping":"string","include_time_entry_ids":"boolean","max_duration_seconds":"integer","min_duration_seconds":"integer","project_ids":[\{\}],"rounding":"integer","rounding_minutes":"integer","start_date":"string","sub_grouping":"string","tag_ids":[\{\}],"task_ids":[\{\}],"time_entry_ids":[\{\}],"user_ids":[\{\}]\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueWorkspace ID

Body

NameTypeDescription
auditobject-
billablebooleanWhether the time entry is set as billable, optional, premium feature.
client_idsArray of integerClient IDs, optional, filtering attribute. To filter records with no clients, use [null].
descriptionstringDescription, optional, filtering attribute.
distinguish_ratesbooleanDistinguishRates will create new subgroups for each rate, optional, default false.
end_datestringEnd date, example time.DateOnly. Should be greater than Start date. Inclusive calendar date: the whole day is covered, evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set). Entries are matched on their start, so an entry starting on End date is included even if it stops after it.
group_idsArray of integerGroup IDs, optional, filtering attribute.
groupingstringGrouping option, optional.
include_time_entry_idsbooleanWhether time entry IDs should be included in the results, optional, default false. Not applicable for export.
max_duration_secondsintegerMax duration seconds, optional, filtering attribute. Time Audit only, should be greater than MinDurationSeconds.
min_duration_secondsintegerMin duration seconds, optional, filtering attribute. Time Audit only, should be less than MaxDurationSeconds.
project_idsArray of integerProject IDs, optional, filtering attribute. To filter records with no projects, use [null].
roundingintegerWhether time should be rounded, optional, default from user preferences.
rounding_minutesintegerRounding minutes value, optional, default from user preferences. Should be 0, 1, 5, 6, 10, 12, 15, 30, 60 or 240.
start_datestringStart date, example time.DateOnly. Should be less than End date. Inclusive calendar date: it is evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set), not in the caller's or the workspace's time zone.
sub_groupingstringSubGrouping option, optional.
tag_idsArray of integerTag IDs, optional, filtering attribute. To filter records with no tags, use [null].
task_idsArray of integerTask IDs, optional, filtering attribute. To filter records with no tasks, use [null].
time_entry_idsArray of integerTimeEntryIDs filters by time entries. This was added to support retro-compatibility with reports v2.
user_idsArray of integerUser IDs, optional, filtering attribute.
audit
NameTypeDescription
group_filterobject-
show_empty_groupsbooleanWhether empty groups should be displayed, default false, premium feature.
show_tracked_groupsbooleanWhether tacked groups should be displayed, default true, premium feature.
group_filter
NameTypeDescription
currencystringAudit currency, optional, example "USD", premium feature.
max_amount_centsintegerAudit max amount in cents, optional, premium feature.
max_duration_secondsintegerAudit max duration in seconds, optional, premium feature.
min_amount_centsintegerAudit min amount in cents, optional, premium feature.
min_duration_secondsintegerAudit min duration in seconds, optional, premium feature.

Response

200

Returns the summary time entries

400

Possible error messages:

  • At least one parameter must be set
  • Invalid workspace id
  • Invalid '{parameter}' value, allowed values are: '{valid_values}'

402

Workspace needs to have this feature enabled

403

Workspace not found/accessible

500

Internal Server Error

POST Export summary report

https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/summary/time_entries.pdf

Downloads summary report in pdf format.

curl -X POST https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/summary/time_entries.pdf \
-H "Content-Type: application/json" \
-d '\{"audit":\{"group_filter":\{"currency":"string","max_amount_cents":"integer","max_duration_seconds":"integer","min_amount_cents":"integer","min_duration_seconds":"integer"\},"show_empty_groups":"boolean","show_tracked_groups":"boolean"\},"billable":"boolean","cents_separator":"string","client_ids":[\{\}],"collapse":"boolean","date_format":"string","description":"string","distinguish_rates":"boolean","duration_format":"string","end_date":"string","group_ids":[\{\}],"grouping":"string","hide_amounts":"boolean","hide_rates":"boolean","include_time_entry_ids":"boolean","max_duration_seconds":"integer","min_duration_seconds":"integer","order_by":"string","order_dir":"string","project_ids":[\{\}],"resolution":"string","rounding":"integer","rounding_minutes":"integer","start_date":"string","sub_grouping":"string","tag_ids":[\{\}],"task_ids":[\{\}],"time_entry_ids":[\{\}],"user_ids":[\{\}]\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueWorkspace ID

Body

NameTypeDescription
auditobject-
billablebooleanWhether the time entry is set as billable, optional, premium feature.
cents_separatorstring-
client_idsArray of integerClient IDs, optional, filtering attribute. To filter records with no clients, use [null].
collapsebooleanWhether collapse others, optional, default false.
date_formatstringDate format, optional, default "MM/DD/YYYY". Can be "MM/DD/YYYY", "DD-MM-YYYY", "MM-DD-YYYY", "YYYY-MM-DD", "DD/MM/YYYY" or "DD.MM.YYYY".
descriptionstringDescription, optional, filtering attribute.
distinguish_ratesbooleanDistinguishRates will create new subgroups for each rate, optional, default false.
duration_formatstringDuration format, optional, default "classic". Can be "classic", "decimal" or "improved". Valid values: classic, decimal, improved.
end_datestringEnd date, example time.DateOnly. Should be greater than Start date. Inclusive calendar date: the whole day is covered, evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set). Entries are matched on their start, so an entry starting on End date is included even if it stops after it.
group_idsArray of integerGroup IDs, optional, filtering attribute.
groupingstringGrouping option, optional.
hide_amountsbooleanWhether amounts should be hidden, optional, default false.
hide_ratesbooleanWhether rates should be hidden, optional, default false.
include_time_entry_idsbooleanWhether time entry IDs should be included in the results, optional, default false. Not applicable for export.
max_duration_secondsintegerMax duration seconds, optional, filtering attribute. Time Audit only, should be greater than MinDurationSeconds.
min_duration_secondsintegerMin duration seconds, optional, filtering attribute. Time Audit only, should be less than MaxDurationSeconds.
order_bystringOrder by option, optional, default title. Can be title or duration.
order_dirstringOrder direction, optional. Can be ASC or DESC.
project_idsArray of integerProject IDs, optional, filtering attribute. To filter records with no projects, use [null].
resolutionstringGraph resolution, optional. Allow clients to explicitly request a resolution.
roundingintegerWhether time should be rounded, optional, default from user preferences.
rounding_minutesintegerRounding minutes value, optional, default from user preferences. Should be 0, 1, 5, 6, 10, 12, 15, 30, 60 or 240.
start_datestringStart date, example time.DateOnly. Should be less than End date. Inclusive calendar date: it is evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set), not in the caller's or the workspace's time zone.
sub_groupingstringSubGrouping option, optional.
tag_idsArray of integerTag IDs, optional, filtering attribute. To filter records with no tags, use [null].
task_idsArray of integerTask IDs, optional, filtering attribute. To filter records with no tasks, use [null].
time_entry_idsArray of integerTimeEntryIDs filters by time entries. This was added to support retro-compatibility with reports v2.
user_idsArray of integerUser IDs, optional, filtering attribute.
audit
NameTypeDescription
group_filterobject-
show_empty_groupsbooleanWhether empty groups should be displayed, default false, premium feature.
show_tracked_groupsbooleanWhether tacked groups should be displayed, default true, premium feature.
group_filter
NameTypeDescription
currencystringAudit currency, optional, example "USD", premium feature.
max_amount_centsintegerAudit max amount in cents, optional, premium feature.
max_duration_secondsintegerAudit max duration in seconds, optional, premium feature.
min_amount_centsintegerAudit min amount in cents, optional, premium feature.
min_duration_secondsintegerAudit min duration in seconds, optional, premium feature.

Response

200

Returns the summary report in pdf format

400

Possible error messages:

  • At least one parameter must be set
  • Invalid workspace id
  • Invalid '{parameter}' value, allowed values are: '{valid_values}'

402

Workspace needs to have this feature enabled

403

Workspace not found/accessible

500

Internal Server Error

POST Export summary report

https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/summary/time_entries.{extension}

Downloads summary report in the specified in the specified format: csv or xlsx.

curl -X POST https://api.track.toggl.com/reports/api/v3/workspace/{workspace_id}/summary/time_entries.{extension} \
-H "Content-Type: application/json" \
-d '\{"audit":\{"group_filter":\{"currency":"string","max_amount_cents":"integer","max_duration_seconds":"integer","min_amount_cents":"integer","min_duration_seconds":"integer"\},"show_empty_groups":"boolean","show_tracked_groups":"boolean"\},"billable":"boolean","client_ids":[\{\}],"collapse":"boolean","description":"string","distinguish_rates":"boolean","duration_format":"string","end_date":"string","group_ids":[\{\}],"grouping":"string","hide_amounts":"boolean","hide_rates":"boolean","include_time_entry_ids":"boolean","max_duration_seconds":"integer","min_duration_seconds":"integer","order_by":"string","order_dir":"string","project_ids":[\{\}],"rounding":"integer","rounding_minutes":"integer","start_date":"string","sub_grouping":"string","tag_ids":[\{\}],"task_ids":[\{\}],"time_entry_ids":[\{\}],"user_ids":[\{\}]\}' \
-u <email>:<password>

Parameters

Path

nametyperequireddescription
workspace_idintegertrueWorkspace ID
extensionstringtruecsv,xlsx

Body

NameTypeDescription
auditobject-
billablebooleanWhether the time entry is set as billable, optional, premium feature.
client_idsArray of integerClient IDs, optional, filtering attribute. To filter records with no clients, use [null].
collapsebooleanWhether collapse others, optional, default false.
descriptionstringDescription, optional, filtering attribute.
distinguish_ratesbooleanDistinguishRates will create new subgroups for each rate, optional, default false.
duration_formatstringDuration format, optional, default "classic". Can be "classic", "decimal" or "improved". Valid values: classic, decimal, improved.
end_datestringEnd date, example time.DateOnly. Should be greater than Start date. Inclusive calendar date: the whole day is covered, evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set). Entries are matched on their start, so an entry starting on End date is included even if it stops after it.
group_idsArray of integerGroup IDs, optional, filtering attribute.
groupingstringGrouping option, optional.
hide_amountsbooleanWhether amounts should be hidden, optional, default false.
hide_ratesbooleanWhether rates should be hidden, optional, default false.
include_time_entry_idsbooleanWhether time entry IDs should be included in the results, optional, default false. Not applicable for export.
max_duration_secondsintegerMax duration seconds, optional, filtering attribute. Time Audit only, should be greater than MinDurationSeconds.
min_duration_secondsintegerMin duration seconds, optional, filtering attribute. Time Audit only, should be less than MaxDurationSeconds.
order_bystringOrder by option, optional, default title. Can be title or duration.
order_dirstringOrder direction, optional. Can be ASC or DESC.
project_idsArray of integerProject IDs, optional, filtering attribute. To filter records with no projects, use [null].
roundingintegerWhether time should be rounded, optional, default from user preferences.
rounding_minutesintegerRounding minutes value, optional, default from user preferences. Should be 0, 1, 5, 6, 10, 12, 15, 30, 60 or 240.
start_datestringStart date, example time.DateOnly. Should be less than End date. Inclusive calendar date: it is evaluated in each time entry creator's own Toggl profile time zone (UTC when that user has none set), not in the caller's or the workspace's time zone.
sub_groupingstringSubGrouping option, optional.
tag_idsArray of integerTag IDs, optional, filtering attribute. To filter records with no tags, use [null].
task_idsArray of integerTask IDs, optional, filtering attribute. To filter records with no tasks, use [null].
time_entry_idsArray of integerTimeEntryIDs filters by time entries. This was added to support retro-compatibility with reports v2.
user_idsArray of integerUser IDs, optional, filtering attribute.
audit
NameTypeDescription
group_filterobject-
show_empty_groupsbooleanWhether empty groups should be displayed, default false, premium feature.
show_tracked_groupsbooleanWhether tacked groups should be displayed, default true, premium feature.
group_filter
NameTypeDescription
currencystringAudit currency, optional, example "USD", premium feature.
max_amount_centsintegerAudit max amount in cents, optional, premium feature.
max_duration_secondsintegerAudit max duration in seconds, optional, premium feature.
min_amount_centsintegerAudit min amount in cents, optional, premium feature.
min_duration_secondsintegerAudit min duration in seconds, optional, premium feature.

Response

200

Returns the summary report on the specified format: csv or xlsx

400

Possible error messages:

  • At least one parameter must be set
  • Invalid workspace id
  • Invalid '{parameter}' value, allowed values are: '{valid_values}'

402

Workspace needs to have this feature enabled

403

Workspace not found/accessible

500

Internal Server Error

© 2026 Toggl. All rights reserved.