Skip to main content

Workspace-settings

GET Get current user's permissions in workspace​

https://focus.toggl.com/api/workspaces/{workspace_id}/permissions

Returns the complete list of permissions for the current user in the specified workspace. This combines unconditional permissions from the user's role with conditional permissions based on workspace settings.

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

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID

Response​

200​

Permissions retrieved successfully

NameTypeDescription
permissionsArray of string-

403​

User does not have access to workspace

500​

Internal server error

GET Get workspace permission settings​

https://focus.toggl.com/api/workspaces/{workspace_id}/settings

Returns permission settings for workspace roles. Settings control which roles have access to specific actions on clients, tags, and statuses.

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

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID

Response​

200​

Settings retrieved successfully

NameTypeDescription
created_atstring-
settingsobject-
updated_atstring-
workspace_idinteger-
settings​

403​

User is not authorized to view workspace settings

500​

Internal server error

PUT Update workspace permission settings​

https://focus.toggl.com/api/workspaces/{workspace_id}/settings

Updates permission settings for workspace roles. Creates settings if they don't exist (upsert operation). The settings object should map role IDs to their permissions. Note: Use role IDs as string keys (e.g., "15" for ws_admin, "16" for ws_manager, "17" for ws_user), not role codes. Available permissions:

  • Clients: create_client, rename_client, archive_client, delete_client
  • Statuses: create_status, update_status, delete_status
  • Tags: create_tags, update_tags, delete_tags
\{
"settings": \{
"15": \{
"create_client": true,
"rename_client": true,
"archive_client": true,
"delete_client": true,
"create_status": true,
"update_status": true,
"delete_status": true,
"create_tags": true,
"update_tags": true,
"delete_tags": true
\},
"16": \{
"create_client": true,
"rename_client": true,
"archive_client": false,
"delete_client": false,
"create_status": true,
"update_status": true,
"delete_status": false,
"create_tags": true,
"update_tags": true,
"delete_tags": false
\},
"17": \{
"create_client": false,
"rename_client": false,
"archive_client": false,
"delete_client": false,
"create_status": false,
"update_status": false,
"delete_status": false,
"create_tags": false,
"update_tags": false,
"delete_tags": false
\}
\}
\}
curl -X PUT https://focus.toggl.com/api/workspaces/{workspace_id}/settings \
-H "Content-Type: application/json" \
-d '\{"settings":\{\}\}' \
-u <email>:<password>

Parameters​

Path​

nametyperequireddescription
workspace_idintegertrueworkspace ID

Body​

NameTypeDescription
settingsobject-
settings​

Response​

200​

Settings updated successfully

NameTypeDescription
created_atstring-
settingsobject-
updated_atstring-
workspace_idinteger-
settings​

400​

Invalid request body

403​

User is not authorized to update workspace settings

500​

Internal server error

© 2026 Toggl. All rights reserved.