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.