Assign role
curl --request POST \
--url https://api.truthlocks.com/v1/role-bindings \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"role_id": "<string>",
"principal_id": "<string>",
"principal_type": "user",
"scope": "<string>"
}
'import requests
url = "https://api.truthlocks.com/v1/role-bindings"
payload = {
"role_id": "<string>",
"principal_id": "<string>",
"principal_type": "user",
"scope": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
role_id: '<string>',
principal_id: '<string>',
principal_type: 'user',
scope: '<string>'
})
};
fetch('https://api.truthlocks.com/v1/role-bindings', 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.truthlocks.com/v1/role-bindings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'role_id' => '<string>',
'principal_id' => '<string>',
'principal_type' => 'user',
'scope' => '<string>'
]),
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.truthlocks.com/v1/role-bindings"
payload := strings.NewReader("{\n \"role_id\": \"<string>\",\n \"principal_id\": \"<string>\",\n \"principal_type\": \"user\",\n \"scope\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.truthlocks.com/v1/role-bindings")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"role_id\": \"<string>\",\n \"principal_id\": \"<string>\",\n \"principal_type\": \"user\",\n \"scope\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/role-bindings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"role_id\": \"<string>\",\n \"principal_id\": \"<string>\",\n \"principal_type\": \"user\",\n \"scope\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"role_id": "<string>",
"principal_id": "<string>",
"created_at": "<string>"
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Identity & Access
Assign role
Bind a role to a user within your tenant.
POST
/
v1
/
role-bindings
Assign role
curl --request POST \
--url https://api.truthlocks.com/v1/role-bindings \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"role_id": "<string>",
"principal_id": "<string>",
"principal_type": "user",
"scope": "<string>"
}
'import requests
url = "https://api.truthlocks.com/v1/role-bindings"
payload = {
"role_id": "<string>",
"principal_id": "<string>",
"principal_type": "user",
"scope": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
role_id: '<string>',
principal_id: '<string>',
principal_type: 'user',
scope: '<string>'
})
};
fetch('https://api.truthlocks.com/v1/role-bindings', 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.truthlocks.com/v1/role-bindings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'role_id' => '<string>',
'principal_id' => '<string>',
'principal_type' => 'user',
'scope' => '<string>'
]),
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.truthlocks.com/v1/role-bindings"
payload := strings.NewReader("{\n \"role_id\": \"<string>\",\n \"principal_id\": \"<string>\",\n \"principal_type\": \"user\",\n \"scope\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.truthlocks.com/v1/role-bindings")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"role_id\": \"<string>\",\n \"principal_id\": \"<string>\",\n \"principal_type\": \"user\",\n \"scope\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/role-bindings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"role_id\": \"<string>\",\n \"principal_id\": \"<string>\",\n \"principal_type\": \"user\",\n \"scope\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"role_id": "<string>",
"principal_id": "<string>",
"created_at": "<string>"
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Assigns a role to a user by creating a role binding. You can scope the binding to the entire tenant or to a specific organization within the tenant.
Parameters
uuid
required
The ID of the user to assign the role to.
uuid
required
The ID of the role to assign. Use the list roles endpoint to find available role IDs.
string
The scope of the assignment. Defaults to
"TENANT" if omitted. Use "ORG" to restrict the role to a single organization.uuid
The organization to scope the assignment to. Required when
scope_type is "ORG".Responses
Authorizations
API key for machine-to-machine authentication
Body
application/json
⌘I

