Overview
List endpoints in the Boomerang Developer API use . This keeps requests simple, predictable, and easy to integrate with typical back-end and reporting tools. This page explains:- Standard pagination parameters
- Response structure and metadata
- Ordering guarantees
- Validation and error behaviour
- Recommended client patterns
Request parameters
All paginated endpoints accept a common set of query parameters:page– 1-based page number.per_page– number of items to return per page.
- If
pageis not provided, it defaults to1. - If
per_pageis not provided, it defaults to25. - There is a maximum
per_pagevalue enforced by each endpoint to protect performance; values above the maximum are treated as invalid and return a validation error.
pagemust be a positive integer.per_pagemust be a positive integer within the allowed range for that endpoint.- Pagination is applied after any filters and sorting options in the request.
Response structure
Paginated endpoints return a top-level collection and apagination object with metadata.
Example shape:
items– array of items for the current page.pagination.page– current page number.pagination.per_page– number of items requested per page.pagination.total– total number of matching items for this query.pagination.total_pages– total number of pages for this query.pagination.has_next/has_prev– booleans indicating whether there are adjacent pages.pagination.next_page/prev_page– page numbers for adjacent pages (ornullwhen not applicable).
pagination.total may be approximate or omitted if calculating an exact count would be too expensive; this will be documented per endpoint if applicable.
Ordering and consistency
By default, paginated lists are ordered with the newest items first, typically based on a creation or update timestamp. Key points:-
Unless an endpoint provides a specific
order_byorsortparameter, clients should assume:- A stable, documented default ordering (newest-first); but
- No guarantee that ordering cannot change if the definition of “newest” is clarified or a tie-breaking rule is added.
- Pagination is based on the result set after applying filters and sorting, so changes to filters or sort options will change which items appear on a given page.
- Do not rely on a specific item always appearing on a specific page number.
- Where possible, design clients to work with items as sets rather than hard-coding page numbers.
Validation and error behaviour
Invalid pagination parameters are treated as request errors:-
If
pageorper_pageis non-numeric, negative, zero, or above the allowed maximum, the API returns:- HTTP status
400 Bad Request - Error code
1001 (VALIDATION_FAILED) - A
details.hintindicating which parameter is invalid.
- HTTP status
page is greater than total_pages):
-
The API returns a successful response (
200 OK) with:items: []has_next: false- An appropriate
paginationblock indicating the request context.
Usage guidance
Recommended patterns for clients:-
Start from page 1
Begin with
page=1and iterate untilhas_nextisfalseif you need to walk the entire result set. -
Avoid excessive
per_pagevalues Use moderateper_pagevalues for interactive use (for example, dashboards) and only larger values where necessary for back-end tasks. - Do not assume fixed membership per page Underlying data can change between requests. Items may move between pages or disappear as they are added, updated, or removed.
- Use filters to narrow result sets Prefer tighter filters over very large page sizes when you only need a subset of data.