# List group members

> List the contacts in a group, most recently added first.

Source: https://sndr.sh/docs/cranl/contact-groups/list-group-members

`GET https://api.sndr.sh/api/cranl/v1/contact-groups/{id}/members`

List the contacts in a group, most recently added first. Offset-paginated; total is the group size. An unknown group returns an empty list.

Scope: `read`

**Path parameters**

- `id` (string, required): Group ID (grp_...).

**Query parameters**

- `limit` (integer): Page size. Default 50, max 500 (larger values fall back to 50).
- `offset` (integer): Number of rows to skip. Default 0.

**Request**

```bash
curl 'https://api.sndr.sh/api/cranl/v1/contact-groups/grp_4d8a0c5e-1f7/members?limit=50&offset=0' \
  -H 'Authorization: Bearer sndr_your_access_token'
```

**Response** (200)

```json
{
  "data": [
    {
      "id":              "con_0e6b7f21-c58",
      "organization_id": "org_8d41c7a2-3f6",
      "email":           "jane@example.com",
      "first_name":      "Jane",
      "last_name":       "Doe",
      "attributes":      { "plan": "pro" },
      "status":          "subscribed",
      "source":          "checkout",
      "created_at":      "2026-03-01T10:00:00Z",
      "updated_at":      "2026-03-01T10:00:00Z"
    }
  ],
  "total": 142
}
```

**Errors**

- `unauthenticated` (401): Missing or invalid Bearer token.
- `token_expired` (401): Access token expired — exchange the refresh token for a new pair.
- `token_revoked` (401): Token was explicitly revoked.
- `insufficient_scope` (403): Token is missing the read scope.
