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.