---
title: "List members"
method: GET
path: "/api/space/members"
tags: ["Space Members"]
---

# List members

`GET /api/space/members`

Lists the members of the space, optionally filtered by role. Results are paged; follow
the `links.next` URL for the next page, which carries the filter and the `page_token`
for you.

A member who has been invited but has not accepted appears with `activated: false`.

#### Permissions

Authenticate with a [Personal access token](/docs/apis/authorization#personal-access-tokens) whose holder is an owner or admin of the space. A project API token is not accepted on this endpoint, and a Personal access token has no scopes: the holder's role in the space is the whole authorization decision.

## Query parameters

- `role` 'owner' | 'admin' | 'employee' | 'guest' — A member's role in the space.
- `page_size` integer
- `page_number` integer
- `page_token` string

## Response `200`

The request has succeeded.

- SpaceMemberListResponse — A page of members.
  - `links` SpaceSpacePaginationLinks, required — Cursor pagination links. Filters given on the request are preserved in every link.
    - `self` string, required — The link to the current page.
    - `first` string, required — The link to the first page.
    - `next` string — The link to the next page. Only present when more results exist.
    - `prev` string — The link to the previous page. Only present when a previous page exists.
  - `data` SpaceMember[], required — The members on this page.
    - `type` 'member', required — The object type. Always `member`.
    - `id` string, uuid, required — Universal Unique Identifier.
    - `email` string, required — The member's email address.
    - `name` string, nullable, required — The member's name, or `null` when none was given.
    - `role` 'owner' | 'admin' | 'employee' | 'guest', required — A member's role in the space.
    - `job_title` 'entrepreneur' | 'product_manager' | 'developer' | 'other', required — A member's job title.
    - `activated` boolean, required — Whether the member has accepted the invitation. `false` until the invitation is accepted.
    - `last_logged_in` string, date-time, nullable, required — The date and time the member last signed in, or `null` if they never have.
    - `created_at` string, date-time, required — The date and time when the membership was created.
    - `updated_at` string, date-time, required — The date and time when the membership was last updated.

## Other responses

- `401` — The credential is missing, unknown, or revoked; its holder is not a member of the space in the subdomain; or the member is not an owner or admin. The body is the plain text `Unauthorized`. An unverified space instead receives the JSON body `{"message": "Please validate a phone number to access your account."}` on every endpoint under `/api/space`.
- `422` — The `role` filter is not a known role (`unknown_role`); `page_number` is above 0 without a `page_token` (`page_token_required_for_next_page`), or the `page_token` is not one this endpoint issued (`page_token_is_invalid`).
- `500` — An internal server error occurred.

## Changes

> 161 revisions in range; 3 could not be searched.

- **2026-09-15** `45bac4fd93ab` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/signalwire/apis/signalwire-rest-api/changes/api/space/members/get.md)

---

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