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

# Pagination and filters

> Page through gHypurr datasets predictably.

List endpoints use offset pagination.

| Parameter | Default |                    Range |
| --------- | ------: | -----------------------: |
| `offset`  |     `0` | Any non-negative integer |
| `limit`   |    `50` |             `1` to `100` |

Values outside the supported range are normalized by the service. Use the
response's `hasMore`, `nextOffset`, or returned paging fields instead of
assuming that a short page always means the dataset is complete.

## Endpoint filters

### News

`GET /api/v1/news` supports `q`, `category`, `symbol`, `market`, `source`,
`filter`, and `kind` in addition to `offset` and `limit`.

### Smart Money

`GET /api/v1/smart-wallets` supports `q` and `lane`. Supported lanes are `all`,
`ready`, `hot`, `tracking`, `makers`, and `whale`.

### Meme Signals and AI Signals

These endpoints currently support `offset` and `limit`.

## Paging loop

```javascript theme={"dark"}
let offset = 0;
const limit = 100;

while (true) {
  const response = await fetch(
    `https://ghypurr.com/api/v1/meme-signals?offset=${offset}&limit=${limit}`,
    { headers: { Authorization: `Bearer ${process.env.GHYPURR_API_KEY}` } },
  );
  if (!response.ok) throw new Error(`gHypurr API ${response.status}`);
  const page = await response.json();
  for (const row of page.rows) console.log(row);
  if (!page.pagination.hasMore) break;
  offset += page.pagination.returned;
}
```
