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

# Pagination, filtering, sorting

> List endpoint query parameters and pagination response headers.

List endpoints support consistent query parameters for pagination,
filtering, and sorting.

## Pagination parameters

| Parameter           | Default / Max            |
| ------------------- | ------------------------ |
| `page` · integer    | default `1`              |
| `perPage` · integer | default `10`, max `1000` |

<Info>
  Pagination metadata is in response headers, not in the body.
</Info>

Paginated responses carry metadata in HTTP response headers:

| Header                      | Value                           |
| --------------------------- | ------------------------------- |
| `X-Pagination-Current-Page` | Current page number             |
| `X-Pagination-Total-Count`  | Total items across all pages    |
| `X-Pagination-Page-Count`   | Total number of pages           |
| `X-Pagination-Per-Page`     | Page size used for this request |

Example response with headers:

```json theme={null}
{
  "status": "success",
  "code": 200,
  "name": "OK",
  "message": "Affiliates List",
  "info": { "affiliates": [] }
}
```

```
X-Pagination-Current-Page: 2
X-Pagination-Total-Count: 137
X-Pagination-Page-Count: 7
X-Pagination-Per-Page: 20
```

## Sorting

| Parameter       | Values                       |
| --------------- | ---------------------------- |
| `sortField`     | endpoint-specific field name |
| `sortDirection` | `asc` (default) \| `desc`    |

```
GET /api/v2/network/affiliates?sortField=created_at&sortDirection=desc&page=1&perPage=50
```

## Filtering

| Parameter                 | Meaning                                            |
| ------------------------- | -------------------------------------------------- |
| `field=value`             | Exact match — e.g. `status=1`                      |
| `field[]=v1&field[]=v2`   | Match any value — e.g. `country[]=US&country[]=GB` |
| `field_from` / `field_to` | Date or numeric range                              |
| `q`                       | Full-text search                                   |

## Date format

All date and datetime filters accept ISO 8601. If no timezone is given,
UTC is assumed.

* Date only: `2026-01-20`
* Datetime UTC: `2026-01-20T13:45:00Z`
