---
title: Pagination
description: "How list endpoints paginate results in the Syntext API."
---

# Pagination

List endpoints that can return many items accept `page` and `pageSize` query parameters and return a `pagination` object alongside the data.

## Request

<ParamField query="page" type="integer" default="1">
  The page number, starting at 1.
</ParamField>

<ParamField query="pageSize" type="integer" default="20">
  Items per page.
</ParamField>

```bash
curl "https://api.syntext.dev/v1/projects/prj_abc123/builds?page=2&pageSize=50" \
  -H "Authorization: Bearer stx_abc12345_..."
```

## Response

```json
{
  "data": [
    { "id": "bld_123", "status": "deployed", "...": "..." }
  ],
  "pagination": {
    "page": 2,
    "pageSize": 50
  }
}
```

Results are ordered **newest first**. To fetch everything, increment `page` until a request returns fewer than `pageSize` items.

## Paginated Endpoints

- [List Builds](/api-reference/builds/list) — `page`, `pageSize`
- [List Projects](/api-reference/projects/list)
- Feedback, discussions, playground history, and access logs use the same pattern

## SDK Example

```typescript
const { data, pagination } = await client.builds.list('prj_abc123', {
  page: 1,
  pageSize: 50,
})
```

<Note>
Endpoints with naturally bounded result sets (API keys, domains, audiences) return all items without pagination.
</Note>
