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-
rowsinteger-
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.