---
updatedAt: 2025-07-22T20:05:39.000Z
agentTools:
  projectIndex: https://developers.fellow.ai/llms.txt
---

# Pagination

The Fellow Developer API uses cursor-based pagination for all list endpoints. This approach provides consistent performance regardless of how deep you paginate into a dataset, making it ideal for large result sets.

# How it Works

## Request Structure

All paginated endpoints accept a `pagination` parameter in the request body:

```json
{
  "pagination": {
    "cursor": null,  // Set to null on first request
    "page_size": 20  // Default 20, valid range is 1-50
  }
}
```

## Parameters

**cursor (string | null)**

* **First Request:** Set to `null` or omit entirely to get the first page
* **Subsequent Requests:** Use the `cursor` value from the previous response's `page_info`

**page\_size (integer)**

* **Range:** 1 to 50 records per page
* **Default:** 20 records

## Pagination Flow

**First Request (Get Page 1)**

The `cursor` value is `null` or omitted from the request to get the first page of results.

```shell Request
POST /api/v1/recordings
{
  "pagination": {
    "cursor": null,
    "page_size": 10
  }
}
```

```json Response
{
  "page_info": {
    "cursor": "eyJpZCI6MTU0fQ==",
    "page_size": 10
  },
  "data": [
    // 10 most recent recordings
  ]
}
```

**Next Request (Get Page 2)**

The `cursor` value from the `page_info` object in the previous response is used in the next request.

```shell Request
POST /api/v1/recordings
{
  "pagination": {
    "cursor": "eyJpZCI6MTU0fQ==",
    "page_size": 10
  }
}
```

**End of Results (When you reach the end of the dataset**)

The `cursor` value is `null` since there are no more pages of data to retrieve.

```json Response
{
  "page_info": {
    "cursor": null,
    "page_size": 10
  },
  "data": [
    // Last batch (may be less than page_size)
  ]
}
```