Pagination
Debitura APIs use offset-based pagination for list endpoints. All paginated responses include metadata to help you navigate through results.
Defaults
All paginated endpoints use consistent defaults:
- Default PageSize: 10
- Maximum PageSize: 100
Paginated Endpoints
| API | Endpoint |
|---|---|
| Customer | GET /cases, GET /Payments |
| Collection Partner | GET /cases, GET /managed-cases |
| Referral Partner | GET /clients, GET /reporting/transactions |
Request Parameters
| Parameter | Type | Description |
|---|---|---|
Page | integer | Page number (1-indexed). Defaults to 1. |
PageSize | integer | Results per page (1-100). Defaults to 10. |
GET /v1/cases?Page=2&PageSize=25
Authorization: Bearer {api_key}
All APIs use PascalCase parameters consistently.
Response Metadata
Every paginated response includes a pageData object:
{
"cases": [ ... ],
"pageData": {
"totalResults": 147,
"pageSize": 25,
"currentPage": 2,
"responseCount": 25,
"totalPages": 6
}
}
| Field | Description |
|---|---|
totalResults | Total items matching your query |
pageSize | Items per page (as requested or default) |
currentPage | Current page number |
responseCount | Items returned in this response |
totalPages | Total pages available |
Iterating Through Pages
Increment Page until currentPage equals totalPages:
let page = 1;
let totalPages = 1;
do {
const response = await fetch(`/v1/cases?Page=${page}&PageSize=100`);
const data = await response.json();
// Process data.cases
totalPages = data.pageData.totalPages;
page++;
} while (page <= totalPages);
Alternatively, stop when responseCount is less than pageSize.
Combining with Filters
Pagination works with filtering and sorting. The totalResults reflects the filtered count, not the total dataset.
GET /v1/cases?Statuses[]=Active&Sort=date:desc&Page=1&PageSize=50