---
title: "List members"
method: GET
path: "/member"
tags: ["Members"]
---

# List members

`GET /member`

## Request

- Base URL: `https://api.elaichi.ai`
- URL: `https://api.elaichi.ai/member`
- Auth: HTTP bearer

Org members, each enriched with the matching global user profile so a directory renders without a second lookup. `user` is null when the profile row is unavailable.

## Query parameters

- `limit` integer
- `cursor` string
- `q` string
- `role_id` string
- `second_factor` 'none'

## Headers

- `X-Organization-Id` string

## Response `200`

OK

- object
  - `result` Member[], required
    - `user_id` string: User id (`usr_…`). A membership has no id of its own.
    - `status` string: Only `active` members can act in the organization.
    - `via` string, nullable: How they joined — invite, verified domain, SCIM, and so on.
    - `joined_at` string, date-time
    - `roles` object[]: Roles held. Replace the whole set with `PATCH /member/{userId}`.
      - `id` string: Role id (`role_…`).
      - `name` string
      - `is_system` boolean
      - `seat_class` 'billable' | 'free_admin'
    - `teams` object[]
      - `id` string: Team id (`team_…`).
      - `name` string
    - `user` object, nullable: Global profile. Null when the profile row could not be resolved.
      - `id` string
      - `email` string, email
      - `name` string, nullable
      - `avatar_url` string, nullable
  - `next_cursor` string, nullable, required
  - `prev_cursor` string, nullable, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited

---

[API](https://skmtc.dev/elaichi/apis/elaichi-api.md) · [All operations](https://skmtc.dev/elaichi/apis/elaichi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/elaichi/apis/elaichi-api/revisions/b22cfb7b6d15?raw)
