curl --request GET \
--url https://www.ruddr.io/api/workspace/members \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/members"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/members")
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{
"results": [
{
"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",
"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": "bed9da6d-9a5d-4ac9-8569-aaa757fb42c5",
"name": "David Park"
},
"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
}
],
"hasMore": false
}{
"status": 400,
"message": "Parameter 'startingAfter' is not a valid UUID."
}List members
curl --request GET \
--url https://www.ruddr.io/api/workspace/members \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.ruddr.io/api/workspace/members"
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', 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",
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"
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")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/members")
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{
"results": [
{
"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",
"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": "bed9da6d-9a5d-4ac9-8569-aaa757fb42c5",
"name": "David Park"
},
"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
}
],
"hasMore": false
}{
"status": 400,
"message": "Parameter 'startingAfter' is not a valid UUID."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
A cursor ID (uuid) used to request the next page of results. If not provided, defaults to the first page of results.
A cursor ID (uuid) used to request the previous page of results. Is mutually exclusive with startingAfter.
The maximum number of results to be returned. Can be any number from 1 to 100. Defaults to 10, if not provided.
Filter by member name when it exactly matches the provided keyword.
Filter by member name when it contains the provided keyword.
Filter by member name when it starts with the provided keyword.
Filter by member name when it ends with the provided keyword.
Filter by member email when it exactly matches the provided keyword.
Filter by member email when it contains the provided keyword.
Filter by member email when it starts with the provided keyword.
Filter by member email when it ends with the provided keyword.
Filter by business unit ID (uuid). Ignored when the Business Units feature is not enabled.