# impartire API — Reference: Members

Every path is under `https://impartire.com/api/v1`. The machine-readable contract is https://impartire.com/api/v1/openapi.json (OpenAPI 3.1).

#### GET /api/v1/members

List the org's members

The people who are members of the org, by name, each with their email, their org roles and their teams. Every credential sees emails: members see each other's in the app. For an OAuth token, its person needs membership of the org (no platform-admin bypass); a key reads the whole org. 404 when the org does not have organization settings, and for an OAuth token whose person is not a member.

Scopes: `org:read`

Parameters:

- `q` (query, string) — Case-insensitive substring of the name or the email.
- `limit` (query, integer) — Page size, default 50. Values above 100 are treated as 100.
- `cursor` (query, string) — next_cursor from the previous page, with the other parameters unchanged.

Response 200 — `MemberList`

- `data` (array of Member, required) — By name, then id.
  - `id` (string (uuid), required) — The member's principal id in this org.
  - `name` (string, required)
  - `email` (string, required) — Served to every credential: members see each other's email in the app.
  - `roles` (array of object, required) — The org roles assigned to the member, by name.
    - `id` (string (uuid), required)
    - `name` (string, required)
  - `teams` (array of object, required) — The teams the member belongs to (archived teams left out), by name.
    - `id` (string (uuid), required)
    - `name` (string, required)
  - `joined_at` (string (date-time), required) — When the member joined the org.
- `next_cursor` (string or null, required) — Pass as `cursor` to get the next page; null means this is the last page.

Other responses:

- 401 (Problem) — unauthenticated — no key, or an unknown, revoked or expired one.
- 403 (Problem) — insufficient-scope — the key lacks a required scope.
- 404 (Problem) — not-found.
- 422 (Problem) — validation — a bad `limit` or `cursor` (`errors[].path` names it).
- 429 (Problem) — rate-limited — the key's request budget is spent; wait Retry-After seconds.
- 500 (Problem) — internal.
