curl --request GET \
--url https://www.ruddr.io/api/workspace/client-roles/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/client-roles/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.ruddr.io/api/workspace/client-roles/{id}', 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://www.ruddr.io/api/workspace/client-roles/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.ruddr.io/api/workspace/client-roles/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.ruddr.io/api/workspace/client-roles/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/client-roles/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "7a2f9c34-b618-4d85-a1e7-3c0d8f5b92a6",
"name": "Senior Developer",
"isBillable": true,
"rate": 175,
"currency": "USD",
"createdAt": "2025-11-03T14:28:41.372Z",
"client": {
"id": "d4e1b7a3-8c52-4f90-b6d3-1a9e0c7f45b8",
"name": "Acme Corporation"
},
"discipline": {
"id": "5b8e2a1c-3d47-4f09-a6e3-8c0d2f1b47a9",
"name": "Software Engineering"
},
"practice": {
"id": "c9a3d5b7-1e48-4f63-b7d0-a2e1c8f92d56",
"name": "Web Development"
},
"location": {
"id": "e2b4c6a8-7f19-4d30-a5e1-9c3b0d8f62a7",
"name": "New York"
},
"workspaceRole": {
"id": "f1a5d8b3-2c67-4e91-b4d0-7a3e9c1f05b8",
"name": "Senior Developer"
}
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 403,
"message": "Feature 'Workspace and Client Rate Cards' is not enabled."
}{
"status": 404,
"message": "Object with id 'e4a1b8c3-5d72-4f09-a6e3-8c0d2f1b47a9' not found."
}Get a client role
curl --request GET \
--url https://www.ruddr.io/api/workspace/client-roles/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/client-roles/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.ruddr.io/api/workspace/client-roles/{id}', 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://www.ruddr.io/api/workspace/client-roles/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.ruddr.io/api/workspace/client-roles/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.ruddr.io/api/workspace/client-roles/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/client-roles/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "7a2f9c34-b618-4d85-a1e7-3c0d8f5b92a6",
"name": "Senior Developer",
"isBillable": true,
"rate": 175,
"currency": "USD",
"createdAt": "2025-11-03T14:28:41.372Z",
"client": {
"id": "d4e1b7a3-8c52-4f90-b6d3-1a9e0c7f45b8",
"name": "Acme Corporation"
},
"discipline": {
"id": "5b8e2a1c-3d47-4f09-a6e3-8c0d2f1b47a9",
"name": "Software Engineering"
},
"practice": {
"id": "c9a3d5b7-1e48-4f63-b7d0-a2e1c8f92d56",
"name": "Web Development"
},
"location": {
"id": "e2b4c6a8-7f19-4d30-a5e1-9c3b0d8f62a7",
"name": "New York"
},
"workspaceRole": {
"id": "f1a5d8b3-2c67-4e91-b4d0-7a3e9c1f05b8",
"name": "Senior Developer"
}
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 403,
"message": "Feature 'Workspace and Client Rate Cards' is not enabled."
}{
"status": 404,
"message": "Object with id 'e4a1b8c3-5d72-4f09-a6e3-8c0d2f1b47a9' not found."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The client role uuid.
Response
200
The unique identifier for the object.
The name of the client role. Reflects the workspace role's name when linked.
Whether the role is billable. Reflects the workspace role's value when linked.
The billing rate for the role. null when the role is non-billable. Reflects the workspace role's value when linked.
The three-letter ISO currency code for the role. null when the role is non-billable. Reflects the workspace role's value when linked.
The timestamp when the object was created.
The client this role belongs to.
Show child attributes
Show child attributes
The discipline associated with this role. Reflects the workspace role's value when linked.
Show child attributes
Show child attributes
The practice associated with this role. Reflects the workspace role's value when linked.
Show child attributes
Show child attributes
The location associated with this role. Reflects the workspace role's value when linked.
Show child attributes
Show child attributes
The workspace role this client role is linked to. When linked, the client role's name, billing fields, and classification fields are overridden with the workspace role's current values. null for standalone client roles.
Show child attributes
Show child attributes