Skip to Content
GuidesPagination

Pagination

List endpoints return one page of results at a time. The results live in content, and page tells you where that page sits in the full set.

200 OK
{ "content": [], "page": { "size": 20, "number": 0, "totalElements": 161, "totalPages": 9 } }

Query parameters

Every list endpoint accepts the same two paging parameters.

ParamTypeDescription
pagenumberThe page to return. Zero based, so the first page is 0. Defaults to 0.
sizenumberHow many results to return per page. Defaults to 20, maximum 100.

Every list endpoint uses the same limits. A size above 100 is capped at 100.

The page object

FieldTypeDescription
contentobject[]The results on this page, newest first.
page.numbernumberThe page that was returned, zero based.
page.sizenumberThe page size used. content can hold fewer results than this on the last page.
page.totalElementsnumberTotal number of results across every page.
page.totalPagesnumberTotal number of pages available.

Walking every page

Keep requesting the next page until page.number reaches the last page. An empty result set has totalPages of 0, so the loop below stops after the first request.

fetch-all-reviews.js
async function fetchAllReviews(token) { const reviews = [] let pageNumber = 0 let totalPages = 0 do { const response = await fetch( `https://www.reviewsolicitors.co.uk/api/v2/reviews?page=${pageNumber}`, { headers: { Authorization: `Bearer ${token}` } } ) const { content, page } = await response.json() reviews.push(...content) totalPages = page.totalPages pageNumber = page.number + 1 } while (pageNumber < totalPages) return reviews }

Results are sorted newest first, so an item that arrives mid-walk can shift results onto the next page. If you are syncing rather than exporting, store each item’s id and skip ones you have already seen.

Last updated on