curl --request GET \
--url https://www.ruddr.io/api/workspace/members/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/members/{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/members/{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/members/{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/members/{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/members/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/members/{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": "d2e30834-2092-4d8b-aae8-1f58fa4594cb",
"name": "Jane Smith",
"email": "jane.smith@example.com",
"isActive": true,
"isBillable": true,
"loginEnabled": true,
"invitationStatusId": "accepted",
"employmentTypeId": "employee",
"costMethodId": "fixed_hourly",
"defaultRate": 150,
"defaultRateCurrency": "USD",
"activeStartDate": "2025-01-15",
"activeEndDate": "2027-06-30",
"timeOffAllowed": true,
"allowedTimeOffTypes": "custom",
"timeOffApprovalMode": "member",
"internalExpenseApprovalMode": "member",
"receiveMissingTimeReminders": true,
"unsubmittedTimesheetReminders": true,
"automaticTimesheetSubmissionConfirmation": true,
"timesheetCapacityPolicy": "unrestricted",
"internalId": "EMP-001",
"internalNotes": "Senior consultant with expertise in cloud architecture.",
"createdAt": "2025-01-15T20:47:03.284Z",
"modifiedAt": "2025-02-05T20:47:03.284Z",
"trackTimeByDuration": true,
"trackTimeByTimeRange": false,
"securityRole": {
"id": "b8c9d0e1-f2a3-4456-1278-901234567b23",
"name": "Member"
},
"jobTitle": {
"id": "a1b2c3d4-e5f6-4789-ab01-234567890abc",
"name": "Senior Consultant"
},
"level": {
"id": "b2c3d4e5-f6a7-4890-bc12-345678901bcd",
"name": "Senior"
},
"discipline": {
"id": "c3d4e5f6-a7b8-4901-cd23-456789012cde",
"name": "Engineering"
},
"businessUnit": {
"id": "9d6f1c2a-3b8e-4f57-ad21-7e0c4f9b8d34",
"name": "North America"
},
"practice": {
"id": "d4e5f6a7-b8c9-4012-de34-567890123def",
"name": "Consulting"
},
"location": {
"id": "e5f6a7b8-c9d0-4123-ef45-678901234ef0",
"name": "San Francisco"
},
"manager": {
"id": "f6a7b8c9-d0e1-4234-f056-789012345f01",
"name": "Robert Chen"
},
"timeOffApprover": {
"id": "7b8c9d0e-1f2a-4345-a167-890123456b12",
"name": "Sarah Kim"
},
"internalExpenseApprover": {
"id": "82866d0d-ab62-43cd-92b8-a30ecc78bd89",
"name": "Priya Patel"
},
"holidaySchedule": {
"id": "a7b8c9d0-e1f2-4345-0167-890123456a12",
"name": "US Holidays"
},
"tags": [
{
"id": "c9d0e1f2-a3b4-4567-2389-012345678c34",
"name": "Billable"
}
],
"certifications": [
{
"id": "d0e1f2a3-b4c5-4678-34ab-123456789d45",
"name": "AWS Certified Solutions Architect"
}
],
"skills": [
{
"id": "e1f2a3b4-c5d6-4789-45bc-234567890e56",
"name": "Python"
}
],
"timeOffTypes": [
{
"id": "a3b4c5d6-e7f8-4901-67de-456789012a78",
"name": "Vacation"
}
],
"availabilityPeriods": [
{
"id": "f2a3b4c5-d6e7-4890-56cd-345678901f67",
"start": "2025-01-15",
"end": "2026-12-31",
"hoursPerDay": [
0,
8,
8,
8,
8,
8,
0
]
}
],
"costPeriods": [
{
"id": "b4c5d6e7-f8a9-4012-78ef-567890123b89",
"start": "2025-01-15",
"end": "2026-12-31",
"currency": "USD",
"costMethodId": "fixed_hourly",
"costPerHour": 100,
"overheadCostPerHour": 20,
"totalCostPerHour": 120,
"costPerMonth": null,
"overheadCostPerMonth": null,
"totalCostPerMonth": null,
"currencyName": "US Dollar"
}
],
"utilizationTargetPeriods": [
{
"id": "c5d6e7f8-a9b0-4123-89f0-678901234c90",
"start": "2025-01-15",
"end": "2026-12-31",
"targetPercentage": 80
}
],
"forbidTimesheetSubmissionWhenBelowCapacity": false
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 404,
"message": "Object with id 'd2e30834-2092-4d8b-aae8-1f58fa4594cb' not found."
}Get a member
curl --request GET \
--url https://www.ruddr.io/api/workspace/members/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/members/{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/members/{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/members/{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/members/{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/members/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/members/{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": "d2e30834-2092-4d8b-aae8-1f58fa4594cb",
"name": "Jane Smith",
"email": "jane.smith@example.com",
"isActive": true,
"isBillable": true,
"loginEnabled": true,
"invitationStatusId": "accepted",
"employmentTypeId": "employee",
"costMethodId": "fixed_hourly",
"defaultRate": 150,
"defaultRateCurrency": "USD",
"activeStartDate": "2025-01-15",
"activeEndDate": "2027-06-30",
"timeOffAllowed": true,
"allowedTimeOffTypes": "custom",
"timeOffApprovalMode": "member",
"internalExpenseApprovalMode": "member",
"receiveMissingTimeReminders": true,
"unsubmittedTimesheetReminders": true,
"automaticTimesheetSubmissionConfirmation": true,
"timesheetCapacityPolicy": "unrestricted",
"internalId": "EMP-001",
"internalNotes": "Senior consultant with expertise in cloud architecture.",
"createdAt": "2025-01-15T20:47:03.284Z",
"modifiedAt": "2025-02-05T20:47:03.284Z",
"trackTimeByDuration": true,
"trackTimeByTimeRange": false,
"securityRole": {
"id": "b8c9d0e1-f2a3-4456-1278-901234567b23",
"name": "Member"
},
"jobTitle": {
"id": "a1b2c3d4-e5f6-4789-ab01-234567890abc",
"name": "Senior Consultant"
},
"level": {
"id": "b2c3d4e5-f6a7-4890-bc12-345678901bcd",
"name": "Senior"
},
"discipline": {
"id": "c3d4e5f6-a7b8-4901-cd23-456789012cde",
"name": "Engineering"
},
"businessUnit": {
"id": "9d6f1c2a-3b8e-4f57-ad21-7e0c4f9b8d34",
"name": "North America"
},
"practice": {
"id": "d4e5f6a7-b8c9-4012-de34-567890123def",
"name": "Consulting"
},
"location": {
"id": "e5f6a7b8-c9d0-4123-ef45-678901234ef0",
"name": "San Francisco"
},
"manager": {
"id": "f6a7b8c9-d0e1-4234-f056-789012345f01",
"name": "Robert Chen"
},
"timeOffApprover": {
"id": "7b8c9d0e-1f2a-4345-a167-890123456b12",
"name": "Sarah Kim"
},
"internalExpenseApprover": {
"id": "82866d0d-ab62-43cd-92b8-a30ecc78bd89",
"name": "Priya Patel"
},
"holidaySchedule": {
"id": "a7b8c9d0-e1f2-4345-0167-890123456a12",
"name": "US Holidays"
},
"tags": [
{
"id": "c9d0e1f2-a3b4-4567-2389-012345678c34",
"name": "Billable"
}
],
"certifications": [
{
"id": "d0e1f2a3-b4c5-4678-34ab-123456789d45",
"name": "AWS Certified Solutions Architect"
}
],
"skills": [
{
"id": "e1f2a3b4-c5d6-4789-45bc-234567890e56",
"name": "Python"
}
],
"timeOffTypes": [
{
"id": "a3b4c5d6-e7f8-4901-67de-456789012a78",
"name": "Vacation"
}
],
"availabilityPeriods": [
{
"id": "f2a3b4c5-d6e7-4890-56cd-345678901f67",
"start": "2025-01-15",
"end": "2026-12-31",
"hoursPerDay": [
0,
8,
8,
8,
8,
8,
0
]
}
],
"costPeriods": [
{
"id": "b4c5d6e7-f8a9-4012-78ef-567890123b89",
"start": "2025-01-15",
"end": "2026-12-31",
"currency": "USD",
"costMethodId": "fixed_hourly",
"costPerHour": 100,
"overheadCostPerHour": 20,
"totalCostPerHour": 120,
"costPerMonth": null,
"overheadCostPerMonth": null,
"totalCostPerMonth": null,
"currencyName": "US Dollar"
}
],
"utilizationTargetPeriods": [
{
"id": "c5d6e7f8-a9b0-4123-89f0-678901234c90",
"start": "2025-01-15",
"end": "2026-12-31",
"targetPercentage": 80
}
],
"forbidTimesheetSubmissionWhenBelowCapacity": false
}{
"status": 400,
"message": "Parameter 'id' is not a valid UUID."
}{
"status": 404,
"message": "Object with id 'd2e30834-2092-4d8b-aae8-1f58fa4594cb' not found."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The member uuid
Response
200
The unique identifier for the object.
The name of the member.
The email address of the member.
Whether the member is active in the workspace.
Whether the member is billable.
Whether the member can log into the workspace.
The invitation status of the member.
not_invited, invited, accepted The type of employment for this member.
employee, contractor, other Deprecated. The cost method for the member. Use costPeriods instead.
hourly, fixed_hourly, fixed_monthly The default bill rate for the member.
The currency code for the default bill rate.
The start date of the member's active period. Will be in the form YYYY-MM-DD.
The end date of the member's active period. Will be in the form YYYY-MM-DD.
Whether the member is allowed to create time-off time entries.
Controls which time off types this member can use for time-off entries.
all, custom The approval mode for time-off time entries.
auto, manager, member The approval mode for internal expense items.
auto, manager, member Whether the member receives missing time reminders.
Whether the member receives reminders for unsubmitted timesheets.
Whether the member receives confirmation emails when timesheets are automatically submitted.
The timesheet capacity policy for this member.
unrestricted, timesheet, week An identifier for tracking this member against other systems.
Extra notes about the member.
The timestamp when the object was created.
The timestamp when the object was last modified.
Whether the member can track time by entering a duration. This is the effective value combining the workspace and member settings.
Whether the member can track time by entering a start and end time. This is the effective value combining the workspace and member settings.
The security role assigned to the member.
Show child attributes
Show child attributes
The job title assigned to the member.
Show child attributes
Show child attributes
The member level assigned to the member.
Show child attributes
Show child attributes
The discipline assigned to the member.
Show child attributes
Show child attributes
The business unit assigned to the member.
Show child attributes
Show child attributes
The practice assigned to the member.
Show child attributes
Show child attributes
The location assigned to the member.
Show child attributes
Show child attributes
The member's direct manager.
Show child attributes
Show child attributes
The member designated to approve time-off requests. Only populated when timeOffApprovalMode is "member".
Show child attributes
Show child attributes
The member designated to approve internal expense items. Only populated when internalExpenseApprovalMode is "member".
Show child attributes
Show child attributes
The holiday schedule assigned to the member.
Show child attributes
Show child attributes
The list of member tags assigned to this member.
Show child attributes
Show child attributes
The list of certifications assigned to this member.
Show child attributes
Show child attributes
The list of skills assigned to this member.
Show child attributes
Show child attributes
The list of time off types allowed for this member. Only populated when allowedTimeOffTypes is "custom".
Show child attributes
Show child attributes
The list of availability periods defining how many hours per day the member is available.
Show child attributes
Show child attributes
The list of cost periods defining the member's cost over time.
Show child attributes
Show child attributes
The list of utilization target periods for the member. null if the Utilization Tracking feature is not enabled.
Show child attributes
Show child attributes
Legacy. A computed flag derived from timesheetCapacityPolicy. true when the policy is "timesheet" or "week". Use timesheetCapacityPolicy instead.