---
title: "List the people on a list"
method: GET
path: "/api/v1/lists/{id}/members"
tags: ["Lists"]
---

# List the people on a list

`GET /api/v1/lists/{id}/members`

## Request

- Base URL: `https://api.recruitwithatlas.com`
- URL: `https://api.recruitwithatlas.com/api/v1/lists/{id}/members`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/recruitwithatlas/apis/atlas-api/docs/api/v1/lists/:id/members/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the list members, most recently added first. Each row carries a thin person — page this endpoint, then batch `GET /api/v1/people` for the rest. Pass `personId` to ask whether one person is on the list: you get their membership, or an empty page if they are not a member.

## Path parameters

- `id` string, uuid, required: List ID

## Query parameters

- `personId` string, uuid: Only return this person's membership — an empty page when they are not a member
- `page` integer: Page number (1-indexed)
- `pageSize` integer: Items per page (max 100)
- `perPage` integer: Alias for pageSize

## Response `200`

Paginated members

- object
  - `status` 'ok', required
  - `data` object[], required
    - `id` string, uuid, required: Membership ID
    - `personId` string, uuid, required
    - `addedAt` string, date-time, required
    - `addedById` string, uuid, required: User who added the person
    - `person` object, required
      - `id` string, uuid, required
      - `firstName` string, nullable, required
      - `lastName` string, nullable, required
  - `pagination` object, required
    - `page` integer, required: Current page number (1-indexed)
    - `pageSize` integer, required: Items per page
    - `total` integer, required: Total matching rows, across all pages
    - `totalPages` integer, required: Total number of pages

## Other responses

- `401`: Unauthorized - missing or invalid API key
- `403`: Forbidden — the Lists feature is switched off for this environment, or the list is visible to you but you may not change its members
- `404`: The list does not exist, belongs to another agency, or is not visible to you
- `422`: Validation error - the request failed schema validation (`errors.fieldErrors`) or a business rule (`errors.formErrors`)
- `429`: Too many requests - the caller has exceeded the per-agency rate limit for the tier this endpoint counts against (default per minute: 1200 read / 400 write / 60 upload). Inspect the `RateLimit-*` headers — returned on every response, not only on 429s — and back off until the window resets. See the "Rate limits" section of the introduction for details.
- `500`: Internal server error
- `501`: Endpoint is disabled in this environment (feature-flagged). Not a routing error — do not retry.

## Changes

- **2026-10-07** `0c873956b881`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/recruitwithatlas/apis/atlas-api/changes/api/v1/lists/:id/members/get.md)

---

[API](https://skmtc.dev/recruitwithatlas/apis/atlas-api.md) - [All operations](https://skmtc.dev/recruitwithatlas/apis/atlas-api/llms.txt) - [OpenAPI document](https://skmtc.dev/recruitwithatlas/apis/atlas-api/revisions/158ee454751c?raw)
