---
title: "List Group Members"
method: GET
path: "/api/v1/groups/{group_id}/members"
tags: ["Team Management"]
---

# List Group Members

`GET /api/v1/groups/{group_id}/members`

Returns all users with access to a group. By default, the response merges **organization members** (implicit access to every group in the org) and users with explicit **group-member rows**, tagging each entry with an `access_type` field (`organization` or `group`). If a user has both an org membership and a `group_members` row, the merged view returns them once as `access_type: "organization"` (org precedence).

Use the `access_type` query parameter to filter: `?access_type=group` returns the raw `group_members` rows (including users who also have org access), and `?access_type=organization` returns only the org's implicit members. Requires a global API key.

## Response `200`

Successful response with the list of members

- object
  - `members` GroupMemberListItem[], required
    - `user_id` string, uuid, required — Unique identifier of the user
    - `email` string, email, required — The user's email address
    - `first_name` string, nullable — The user's first name, if set
    - `last_name` string, nullable — The user's last name, if set
    - `role` string, required — The user's role. For `access_type: "organization"`, this is the organization role. For `access_type: "group"`, this is the per-group role. Each role is its slug — the role's normalized name (lowercase, no spaces): `admin`, `viewer`, `editor`, `billing`, or a custom role's id (e.g. `contentmanager`). `admin` and `viewer` are unchanged from prior versions.
    - `access_type` 'organization' | 'group', required — How the user has access to the group. `organization` = implicit access via org membership. `group` = explicit group_members row.
    - `created_at` string, date-time, required — When the membership row was created (UTC)

## Other responses

- `400` — Bad request - Invalid group ID format or invalid access_type value
- `401` — Unauthorized - Invalid or missing API key
- `403` — Forbidden - Global API key required
- `404` — Not found - Group does not exist or does not belong to your organization
- `500` — Internal server error

---

[API](https://skmtc.net/athenahq/apis/athenahq-api.md) · [All operations](https://skmtc.net/athenahq/apis/athenahq-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/athenahq/athenahq-api/versions/6c5d71622cb9/schema)
