---
id: paginating_channels
sidebar_position: 15
title: Channel Pagination
---

Understanding Pagination For The Channel List

The channel query endpoint allows you to paginate the list of messages, watchers, and members for one channel.
To make sure that you are able to retrieve a consistent list of messages, pagination does not work with simple offset/limit parameters but instead,
it relies on passing the ID of the messages from the previous page.

For example: say that you fetched the first 100 messages from a channel and want to lead the next 100.
To do this you need to make a channel query request and pass the ID of the oldest message if you are paginating in descending order or the ID of the newest message if paginating in ascending order.

Use the `id_lt` parameter to retrieve messages older than the provided ID and `id_gt` to retrieve messages newer than the provided ID.

The terms `id_lt` and `id_gt` stand for ID less than and ID greater than.

ID-based pagination improves performance and prevents issues related to the list of messages changing while you’re paginating. If needed, you can also use the inclusive versions of those two parameters: id_lte and id_gte.

```dart
final response = await channel.query(
  messagesPagination: PaginationParams(limit: 2, lessThanOrEqual: "123"),
  membersPagination:  PaginationParams(limit: 2, offset: 0),
  watchersPagination: PaginationParams(limit: 2, offset: 0),
);
```

For members and watchers, we use limit and offset parameters.

<b>Notes:</b>

1.  Soon we will create friendlier aliases for `id_lt` and `id_gt`. Our best candidates are before_id and after_id,
let us know if you have any feedback or suggestion!

2.  The maximum number of messages that can be retrieved at once from the API is 300.