Help center

List people

Reference for GET /people, which returns every member of the workspace in one response, sorted by name.

Business plan Updated
On this page
  1. Parameters
  2. Request
  3. Response
  4. Errors
Shell
GET https://app.sopcompass.com/api/v1/people

Scope: 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.