> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zenamu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pagination

> Page through Zenamu API list responses.

The two schedule endpoints — [classes](/api/v1/reference/classes/list-classes-and-course-sessions)
and [workshops](/api/v1/reference/workshops/list-workshops) — accept offset
pagination.

| Parameter | Default | Description                          |
| --------- | ------- | ------------------------------------ |
| `limit`   | none    | Maximum number of records to return. |
| `offset`  | none    | Number of records to skip.           |

Both values are strict integers. `limit` must be at least `1`; `offset` must be
at least `0`. You can send `offset` without `limit`, although paging with a fixed
`limit` is usually clearer.

Omit both and you get **every** event in the requested date range. That is the
normal way to use these endpoints: a month of classes is a small response, and
the required date range already bounds it.

```bash theme={null}
# First 50 classes in March
curl -H "Authorization: Bearer <your_public_api_key>" \
  "https://api.zenamu.com/v1/classes?dateFrom=2026-03-01&dateTo=2026-03-31&limit=50"

# Next 50
curl -H "Authorization: Bearer <your_public_api_key>" \
  "https://api.zenamu.com/v1/classes?dateFrom=2026-03-01&dateTo=2026-03-31&limit=50&offset=50"
```

Responses carry no pagination metadata and no total count. A page shorter than
`limit` means you reached the end.

## Ordering

Both endpoints return events ordered by start time, ascending, with the event ID
as a deterministic tie-breaker. The order is stable across pages as long as you
keep the same date range and filters and the schedule does not change.

<Warning>
  Offset pagination reads a live schedule. If a studio publishes or cancels an
  event between two pages, a record can shift across the page boundary and be
  seen twice or missed. For a consistent snapshot, request the whole range in
  one call, or narrow the range instead of paging.
</Warning>

## Endpoints without pagination

`/v1/lecturers`, `/v1/places`, `/v1/clients`, and `/v1/pass-groups` always
return the full list. They are reference data — small, and meant to be fetched
once and cached.
