---
title: "List roster records with forward cursor pagination"
method: GET
path: "/roster-records/find-many"
tags: ["RosterRecord"]
---

# List roster records with forward cursor pagination

`GET /roster-records/find-many`

Returns a page of roster records for the tenant named in the `tenant-id` header, walking forward through the set.

**When to use:** call this for straightforward forward-only paging; use `GET /roster-records` instead when you also need to stop at an upper-bound cursor (`endAtId`), which this endpoint does not accept. Both endpoints read the same underlying records.

**Preconditions:** supply the `tenant-id` header. Use `page` and `size` for offset paging, or pass the `startAfterId` returned by the previous page to continue from where you left off; omit all three to receive the first default-sized page.

**Filtering:** the optional `filter` parameter takes a JSON object encoded as a string, for example `{"data.status":{"eq":"COMPLETED"}}`, and is applied before pagination. Supported comparison operators are `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`, and `contains`. Do not include `tenantId` in the filter - it is injected automatically from the header.

**What you get back:** an envelope carrying the matching roster records in `data`, navigation `links`, and `totalCount` when the underlying store reports one. Read-only; no state is mutated. Note: when the upstream data layer fails (including an unparseable `filter`), this endpoint currently returns 200 with an empty body rather than an error status - treat an empty (non-envelope) body as a retryable failure, not as an empty result set.

## Query parameters

- `filter` string
- `page` integer
- `size` integer
- `startAfterId` string

## Headers

- `tenant-id` string, required

## Response `200`

A page of roster records for the tenant, with pagination links and a total count when available.

- PagedResponse1
  - `data` unknown[]
    - unknown
  - `links` PageLinks1
    - `self` string
    - `next` string
    - `prev` string
  - `totalCount` integer

## Other responses

- `401` — Returned when the request carries no valid authentication.
- `403` — Returned when the caller lacks the READ_ROSTER permission for this tenant.

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/563848e0ecc0/schema)
