Skip to main content

Rates

GET List project rates summary​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/projects/rates

Returns a summary list of rates for a given project.

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

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID

Query​

nametyperequireddescription
pageintegerfalsepage number
rowsintegerfalseNumber of items per page (default: 50, max: 100).
order_bystringfalseField and direction to sort by, formatted as 'field,direction'. Fields: 'project_name', 'hourly_rate', 'start_at', 'end_at'. Defaults to 'project_name,asc' if not given.
searchstringfalseProject name to search for. Is a contains-anywhere search

Response​

200​

NameTypeDescription
dataArray of object-
pageinteger-
per_pageinteger-
totalinteger-
data​
NameTypeDescription
billableboolean-
currencystring-
end_atstring-
has_more_ratesboolean-
hourly_ratenumber-
project_colorstring-
project_created_atstring-
project_idinteger-
project_namestring-
project_rate_idinteger-
start_atstring-
workspace_rate_idinteger-

400​

Invalid request

500​

Internal server error

GET List project rates​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/projects/{project_id}/rates

Returns a merged timeline of workspace and project rates for a given project. Project rates take precedence over workspace rates for overlapping periods.

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

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
project_idintegertrueproject ID

Query​

nametyperequireddescription
order_bystringfalseField and direction to sort by, formatted as 'field,direction'. Fields: 'hourly_rate', 'start_at', 'end_at'. Defaults to 'start_at,asc' if not given.

Response​

200​

NameTypeDescription
itemsArray of object-
items​
NameTypeDescription
currencystring-
end_atstring-
hourly_ratenumber-
project_rate_idinteger-
start_atstring-
workspace_rate_idinteger-

400​

Invalid request

500​

Internal server error

POST Create a project rate​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/projects/{project_id}/rates

Creates a new rate for a given project.

curl -X POST https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/projects/{project_id}/rates \
-H "Content-Type: application/json" \
-d '\{"currency":"string","end_at":"string","hourly_rate":"number","start_at":"string"\}' \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
project_idintegertrueproject ID

Body​

NameTypeDescription
currencystring-
end_atstring-
hourly_ratenumber-
start_atstring-

Response​

201​

Rate created successfully

400​

Invalid request

500​

Internal server error

DELETE Delete a project rate​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/projects/{project_id}/rates

Deletes a project rate within a given time range.

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

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
project_idintegertrueproject ID

Query​

nametyperequireddescription
fromstringtruestart of the time range to delete (RFC3339)
tostringtrueend of the time range to delete (RFC3339)

Response​

204​

No Content

400​

Invalid request

500​

Internal server error

GET Get the current rate for a project if any.​

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

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
project_idintegertrueproject ID

Response​

200​

NameTypeDescription
currencystring-
end_atstring-
hourly_ratenumber-
project_rate_idinteger-
start_atstring-
workspace_rate_idinteger-

400​

Invalid request

404​

Not found

500​

Internal server error

POST Create a task rate​

https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tasks/{task_id}/rates

Creates a new rate for a given task.

curl -X POST https://focus.toggl.com/api/organizations/{organization_id}/workspaces/{workspace_id}/tasks/{task_id}/rates \
-H "Content-Type: application/json" \
-d '\{"billable":"boolean"\}' \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
organization_idintegertrueorganization ID
workspace_idintegertrueworkspace ID
task_idintegertruetask ID

Body​

NameTypeDescription
billableboolean-

Response​

204​

No Content

400​

Invalid request

500​

Internal server error

© 2026 Toggl. All rights reserved.