List people
Reference for GET /people, which returns every member of the workspace in one response, sorted by name.
On this page
Shell
GET https://app.sopcompass.com/api/v1/peopleScope: read only or read and write. Paginated: no; everything in one response.
Returns the workspace’s members, sorted alphabetically by name (or by email for people with no name). People who were invited but haven’t joined yet aren’t members, so they aren’t listed, and they can’t be assigned SOPs until they join.
Parameters
None.
Request
Shell
curl https://app.sopcompass.com/api/v1/people \
-H "Authorization: Bearer $SOPCOMPASS_API_KEY"JavaScript
const res = await fetch("https://app.sopcompass.com/api/v1/people", {
headers: { Authorization: `Bearer ${process.env.SOPCOMPASS_API_KEY}` },
});
const { data: people } = await res.json();
const byEmail = new Map(people.map((p) => [p.email, p]));Python
import os
import requests
res = requests.get(
"https://app.sopcompass.com/api/v1/people",
headers={"Authorization": f"Bearer {os.environ['SOPCOMPASS_API_KEY']}"},
timeout=30,
)
people = {p["email"]: p for p in res.json()["data"]}Response
200 OK
JSON
{
"data": [
{
"id": "8e0a2c4d-6f8b-4a0c-8e2d-4f6a8c0e2a09",
"name": "Dana Whitfield",
"email": "dana.whitfield@example.com",
"role": "owner",
"departments": ["hr_people", "operations"],
"joined_at": "2026-08-30T11:58:02.447190Z"
},
{
"id": "0a2c4e6f-8b0d-4c2e-9a4f-6b8d0f2a4c10",
"name": "Sam Ortiz",
"email": "sam.ortiz@example.com",
"role": "editor",
"departments": ["operations"],
"joined_at": "2026-09-01T15:22:40.118302Z"
},
{
"id": "2c4e6a8b-0d2f-4e4a-8b6c-8d0f2a4c6e22",
"name": null,
"email": "new.cleaner@example.com",
"role": "viewer",
"departments": [],
"joined_at": "2026-09-18T07:45:13.902651Z"
}
]
}| Field | Type | Description |
|---|---|---|
id |
UUID | The person’s user id. The same id appears in assignments as assignee.id and assigned_by.id. |
name |
string or null | Their full name, or null if they haven’t set one. |
email |
string | The email they sign in with, in lowercase. Use it as email on POST /assignments. |
role |
string | owner, admin, editor or viewer. |
departments |
array of strings | Their departments: any of hr_people, operations, finance, sales, marketing. Can be []. |
joined_at |
timestamp | When they joined the workspace. |
Errors
| Status | Code | When |
|---|---|---|
| 405 | method_not_allowed |
POST instead of GET. |
Authentication, plan and rate limit errors apply to every endpoint; see Errors.