Pagination
Pagination
Section titled “Pagination”Handling paginated responses across all SDKs.
Overview
Section titled “Overview”List endpoints return paginated results:
{ "data": [...], "pagination": { "page": 1, "perPage": 20, "total": 150, "totalPages": 8 }}TypeScript/JavaScript
Section titled “TypeScript/JavaScript”Manual Pagination
Section titled “Manual Pagination”// First pageconst page1 = await iof.contracts.list({ limit: 20 });
// Next pageconst page2 = await iof.contracts.list({ limit: 20, page: 2,});Auto-pagination
Section titled “Auto-pagination”// Iterate all resultsfor await (const contract of iof.contracts.list({ limit: 100 })) { console.log(contract.id);}
// Collect all resultsconst allContracts = await iof.contracts.list({ limit: 100 }).toArray();Python
Section titled “Python”Manual Pagination
Section titled “Manual Pagination”# First pagepage1 = iof.contracts.list(limit=20)
# Next pagepage2 = iof.contracts.list(limit=20, page=2)Auto-pagination
Section titled “Auto-pagination”# Iterate all resultsfor contract in iof.contracts.list(limit=100).auto_paging_iter(): print(contract.id)
# Collect all resultsall_contracts = list(iof.contracts.list(limit=100).auto_paging_iter())Manual Pagination
Section titled “Manual Pagination”params := &iof.ContractListParams{ Limit: iof.Int64(20),}
iter := client.Contracts.List(params)for iter.Next() { contract := iter.Contract() fmt.Println(contract.ID)}Cursor-based
Section titled “Cursor-based”var cursor *string
for { params := &iof.ContractListParams{ Limit: iof.Int64(100), Cursor: cursor, }
result, err := client.Contracts.List(params) if err != nil { break }
for _, contract := range result.Data { fmt.Println(contract.ID) }
if !result.HasMore { break } cursor = result.NextCursor}Manual Pagination
Section titled “Manual Pagination”ContractListParams params = ContractListParams.builder() .limit(20L) .build();
ContractCollection page1 = client.contracts().list(params);
// Next pageContractListParams nextParams = ContractListParams.builder() .limit(20L) .page(2L) .build();
ContractCollection page2 = client.contracts().list(nextParams);Auto-pagination
Section titled “Auto-pagination”ContractListParams params = ContractListParams.builder() .limit(100L) .build();
client.contracts().list(params).autoPagingIterable().forEach(contract -> { System.out.println(contract.getId());});Pagination Parameters
Section titled “Pagination Parameters”| Parameter | Description | Default |
|---|---|---|
limit | Results per page | 20 |
page | Page number | 1 |
cursor | Cursor for next page | null |
Best Practices
Section titled “Best Practices”- Use reasonable limits - 20-100 items per page
- Prefer cursors - For large datasets
- Handle empty pages - Check if data exists
- Avoid deep pagination - Use filters instead
Next Steps
Section titled “Next Steps”- Error Handling - Handle errors
- Webhooks - Real-time events