Edit Worker Permissions
Updates granular permission flags for a specific worker. Only include the permissions you want to change — omitted permissions remain unchanged. The admin and owner flags cannot be modified through this endpoint.
curl --request PATCH \
--url https://api.roostedhr.com/api/1_12/workers/{id}/permissions \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"permissions": {}
}
'import requests
url = "https://api.roostedhr.com/api/1_12/workers/{id}/permissions"
payload = { "permissions": {} }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({permissions: {}})
};
fetch('https://api.roostedhr.com/api/1_12/workers/{id}/permissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roostedhr.com/api/1_12/workers/{id}/permissions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'permissions' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.roostedhr.com/api/1_12/workers/{id}/permissions"
payload := strings.NewReader("{\n \"permissions\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.roostedhr.com/api/1_12/workers/{id}/permissions")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"permissions\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roostedhr.com/api/1_12/workers/{id}/permissions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"permissions\": {}\n}"
response = http.request(request)
puts response.read_body{
"admin": 0,
"owner": 0,
"permissions": {
"print_timesheets": 0,
"create_edit_jobs": 0,
"create_edit_all_jobs": 0,
"text_release": 0,
"gridview": 0,
"configuration": 0,
"reports": 0,
"add_edit_workers": 0,
"view_company_info": 0,
"add_edit_locations": 0,
"time_off_manager": 0,
"request_manager": 0,
"modify_skillsets": 0,
"modify_permissions": 0,
"approve_punches": 0,
"modify_punches": 0,
"timekeeping_manager": 0,
"communications_module": 0,
"view_recent_reviews": 0,
"view_edit_wages": 0,
"create_edit_clients": 0,
"create_group_chats": 0,
"view_edit_all_chats": 0,
"view_bg_check_results": 0,
"request_bg_checks": 0,
"exporting": 0,
"add_edit_workers_jobs": 0,
"create_job": 0,
"view_worker_profile_dialog": 0
}
}admin and owner flags cannot be modified through this endpoint. Only the granular permissions within the permissions object are updatable.Authorizations
Path Parameters
Worker ID
Body
Only the permissions object can be updated. Include only the permission flags you want to change.
Granular module-level permission flags. All values are 1 (enabled) or 0 (disabled).
Show child attributes
Show child attributes
Response
Permissions updated successfully
Worker permission flags including admin/owner status and granular module-level permissions.
Whether the worker has admin privileges. 1 = admin, 0 = not admin.
0, 1 Whether the worker is an owner. 1 = owner, 0 = not owner.
0, 1 Granular module-level permission flags. All values are 1 (enabled) or 0 (disabled).
Show child attributes
Show child attributes
curl --request PATCH \
--url https://api.roostedhr.com/api/1_12/workers/{id}/permissions \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"permissions": {}
}
'import requests
url = "https://api.roostedhr.com/api/1_12/workers/{id}/permissions"
payload = { "permissions": {} }
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({permissions: {}})
};
fetch('https://api.roostedhr.com/api/1_12/workers/{id}/permissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roostedhr.com/api/1_12/workers/{id}/permissions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'permissions' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.roostedhr.com/api/1_12/workers/{id}/permissions"
payload := strings.NewReader("{\n \"permissions\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.roostedhr.com/api/1_12/workers/{id}/permissions")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"permissions\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roostedhr.com/api/1_12/workers/{id}/permissions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"permissions\": {}\n}"
response = http.request(request)
puts response.read_body{
"admin": 0,
"owner": 0,
"permissions": {
"print_timesheets": 0,
"create_edit_jobs": 0,
"create_edit_all_jobs": 0,
"text_release": 0,
"gridview": 0,
"configuration": 0,
"reports": 0,
"add_edit_workers": 0,
"view_company_info": 0,
"add_edit_locations": 0,
"time_off_manager": 0,
"request_manager": 0,
"modify_skillsets": 0,
"modify_permissions": 0,
"approve_punches": 0,
"modify_punches": 0,
"timekeeping_manager": 0,
"communications_module": 0,
"view_recent_reviews": 0,
"view_edit_wages": 0,
"create_edit_clients": 0,
"create_group_chats": 0,
"view_edit_all_chats": 0,
"view_bg_check_results": 0,
"request_bg_checks": 0,
"exporting": 0,
"add_edit_workers_jobs": 0,
"create_job": 0,
"view_worker_profile_dialog": 0
}
}