curl --request GET \
--url https://api.us-east-1.livingsecurity.ai/api/v1/people/search \
--header 'Authorization: Bearer <token>' \
--header 'x-organization-id: <x-organization-id>'import requests
url = "https://api.us-east-1.livingsecurity.ai/api/v1/people/search"
headers = {
"x-organization-id": "<x-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-organization-id': '<x-organization-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.us-east-1.livingsecurity.ai/api/v1/people/search', 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.us-east-1.livingsecurity.ai/api/v1/people/search",
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>",
"x-organization-id: <x-organization-id>"
],
]);
$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://api.us-east-1.livingsecurity.ai/api/v1/people/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-organization-id", "<x-organization-id>")
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://api.us-east-1.livingsecurity.ai/api/v1/people/search")
.header("x-organization-id", "<x-organization-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us-east-1.livingsecurity.ai/api/v1/people/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-organization-id"] = '<x-organization-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"people": [
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"userId": "01234567-89ab-cdef-0123-456789abcdef",
"email": "john.doe@example.com",
"profile": {
"name": "John Doe",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"middleName": "Michael",
"phone": "+12025551234",
"mobilePhone": "+12025555678",
"workAddress": {
"type": "work",
"streetAddress": "100 Universal City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91608",
"country": "USA",
"primary": true
},
"jobTitle": "Senior Software Engineer",
"department": "Engineering",
"division": "Product Development",
"costCenter": "CC-1234",
"employeeNumber": "E12345",
"userType": "Employee",
"manager": {
"id": "01914b4a-6fd7-7c5e-b343-6a7105f9e632",
"name": "Jane Smith",
"email": "jane.smith@example.com"
},
"locale": "en-US",
"timezone": "America/New_York",
"preferredLanguage": "en",
"customAttributes": {
"urn:okta:custom:1.0:user:slackId": "U123456",
"extension_azure_TeamsId": "T789012"
},
"metadata": {
"department": "Engineering",
"title": "Senior Developer"
}
},
"active": true,
"roles": [
"admin",
"member"
],
"organizationId": "01234567-89ab-cdef-0123-456789abcdef",
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-01-15T10:30:00Z",
"enterpriseProperties": {
"firstName": "John",
"lastName": "Doe",
"middleName": "Michael",
"jobTitle": "Senior Software Engineer",
"department": "Engineering",
"division": "Product Development",
"costCenter": "CC-1234",
"employeeNumber": "E12345",
"userType": "Employee",
"primaryPhone": "+1-555-0100",
"mobilePhone": "+1-555-0101",
"workAddress": {
"type": "work",
"streetAddress": "100 Universal City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91608",
"country": "USA",
"primary": true
},
"manager": {
"id": "01914b4a-6fd7-7c5e-b343-6a7105f9e632",
"name": "Jane Smith",
"email": "jane.smith@example.com"
},
"locale": "en-US",
"timezone": "America/Los_Angeles",
"preferredLanguage": "en",
"customAttributes": {
"urn:okta:custom:1.0:user:slackId": "U123456",
"extensionAzureTeamsId": "T789012",
"customVendorField": "vendor-specific"
}
},
"customProperties": {
"department": "Engineering",
"location": "SF"
},
"firstName": "John",
"lastName": "Doe",
"name": "John Doe",
"importSource": "SCIM",
"rawScimData": {}
}
],
"pagination": {
"hasMore": true,
"pageSize": 50,
"nextCursor": "eyJvZmZzZXQiOjUwfQ=="
},
"totalCount": 1234
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 404,
"message": "Resource not found",
"error": "Not Found"
}Search organization people
Search and filter people within an organization. Supports pagination (cursor-based), property filters (firstName, lastName, email, active), role filtering, and date range filtering (createdAfter, createdBefore). Results are returned with pagination metadata for efficient browsing. Organization context provided via x-organization-id header.
curl --request GET \
--url https://api.us-east-1.livingsecurity.ai/api/v1/people/search \
--header 'Authorization: Bearer <token>' \
--header 'x-organization-id: <x-organization-id>'import requests
url = "https://api.us-east-1.livingsecurity.ai/api/v1/people/search"
headers = {
"x-organization-id": "<x-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-organization-id': '<x-organization-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.us-east-1.livingsecurity.ai/api/v1/people/search', 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.us-east-1.livingsecurity.ai/api/v1/people/search",
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>",
"x-organization-id: <x-organization-id>"
],
]);
$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://api.us-east-1.livingsecurity.ai/api/v1/people/search"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-organization-id", "<x-organization-id>")
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://api.us-east-1.livingsecurity.ai/api/v1/people/search")
.header("x-organization-id", "<x-organization-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us-east-1.livingsecurity.ai/api/v1/people/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-organization-id"] = '<x-organization-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"people": [
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"userId": "01234567-89ab-cdef-0123-456789abcdef",
"email": "john.doe@example.com",
"profile": {
"name": "John Doe",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"middleName": "Michael",
"phone": "+12025551234",
"mobilePhone": "+12025555678",
"workAddress": {
"type": "work",
"streetAddress": "100 Universal City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91608",
"country": "USA",
"primary": true
},
"jobTitle": "Senior Software Engineer",
"department": "Engineering",
"division": "Product Development",
"costCenter": "CC-1234",
"employeeNumber": "E12345",
"userType": "Employee",
"manager": {
"id": "01914b4a-6fd7-7c5e-b343-6a7105f9e632",
"name": "Jane Smith",
"email": "jane.smith@example.com"
},
"locale": "en-US",
"timezone": "America/New_York",
"preferredLanguage": "en",
"customAttributes": {
"urn:okta:custom:1.0:user:slackId": "U123456",
"extension_azure_TeamsId": "T789012"
},
"metadata": {
"department": "Engineering",
"title": "Senior Developer"
}
},
"active": true,
"roles": [
"admin",
"member"
],
"organizationId": "01234567-89ab-cdef-0123-456789abcdef",
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-01-15T10:30:00Z",
"enterpriseProperties": {
"firstName": "John",
"lastName": "Doe",
"middleName": "Michael",
"jobTitle": "Senior Software Engineer",
"department": "Engineering",
"division": "Product Development",
"costCenter": "CC-1234",
"employeeNumber": "E12345",
"userType": "Employee",
"primaryPhone": "+1-555-0100",
"mobilePhone": "+1-555-0101",
"workAddress": {
"type": "work",
"streetAddress": "100 Universal City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91608",
"country": "USA",
"primary": true
},
"manager": {
"id": "01914b4a-6fd7-7c5e-b343-6a7105f9e632",
"name": "Jane Smith",
"email": "jane.smith@example.com"
},
"locale": "en-US",
"timezone": "America/Los_Angeles",
"preferredLanguage": "en",
"customAttributes": {
"urn:okta:custom:1.0:user:slackId": "U123456",
"extensionAzureTeamsId": "T789012",
"customVendorField": "vendor-specific"
}
},
"customProperties": {
"department": "Engineering",
"location": "SF"
},
"firstName": "John",
"lastName": "Doe",
"name": "John Doe",
"importSource": "SCIM",
"rawScimData": {}
}
],
"pagination": {
"hasMore": true,
"pageSize": 50,
"nextCursor": "eyJvZmZzZXQiOjUwfQ=="
},
"totalCount": 1234
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 404,
"message": "Resource not found",
"error": "Not Found"
}Otorisasi
Short-lived bearer access token issued for a Living Security API access key. Send as Authorization: Bearer .
Header
Organization context for multi-tenant operations
Parameter Query
Search term for text search across name and email fields
"john"
Offset for pagination (number of records to skip)
x >= 0Cursor for pagination (returned from previous response)
"eyJvZmZzZXQiOjUwfQ=="
Maximum number of results to return per page
1 <= x <= 100Filter by first name (partial match, case-insensitive)
"John"
Filter by last name (partial match, case-insensitive)
"Doe"
Filter by email (partial match, case-insensitive)
"john@example.com"
Filter by specific person ID (exact match)
"01234567-89ab-cdef-0123-456789abcdef"
Filter by active status
true
Include the exact count of all people matching the same filters. Defaults to false to avoid count-query overhead for autocomplete/search consumers.
true
Filter by roles
Filter by created date (after this date)
"2025-01-01T00:00:00Z"
Filter by created date (before this date)
"2025-12-31T23:59:59Z"
Field to sort by
name, email, createdAt, status "name"
Sort direction (ASC or DESC)
ASC, DESC "ASC"
Respons
People found successfully
Apakah halaman ini membantu?

