Pagination
Paginating using cursors
Most API endpoints return a cursor
which can be used to get the previous or next page of results. This is usually better than using since_id
to paginate because:
- the results are always ordered in descending order (newest first)
- you don’t need to manually keep track of the last ID
- you can tell when no more results are available because the next cursor will be
null
- the cursor includes any filters you applied in the initial request, so subsequent requests need only provide the single
cursor
param to retrieve the next page with the same filters applied
These endpoints will include a cursor
property in the response object, for example:
{
"customers": [...],
"cursor": {
"prev": null,
"next": "eyJsYXN0SWQiOjE0NjgsImRpcmVjdGlvbiI6Im5leHQifQ"
}
}
If either cursor is null
it means there are no more pages available in that direction.
To retrieve the previous or next page of results, pass the cursor as a cursor
query param. You do not need to pass any other params; if you initially provided other params to filter the response, these will be part of the cursor already, and any other filtering params will be ignored. Only the limit
parameter will be recognised.
For example:
curl \
--url 'https://api.loyaltylion.com/v2/customers?cursor=eyJsYXN0SWQiOjE0NjgsImRpcmVjdGlvbiI6Im5leHQifQ' \
--header 'Content-Type: application/json'
Paginating using the since_id
parameter
All collection endpoints support a since_id
parameter.
When a since_id
is specified, the collection is ordered by id
ascending, and contains only resources with an ID greater than the specified since_id
.
To fully paginate through a collection, follow the algorithm:
- Initialize your
since_id
to 0 - Specify a
limit
- Make a request with your current
since_id
andlimit
- If the number of resources returned is less than your
limit
, finish - Otherwise, set
since_id
equal to theid
of the last resource in the response and repeat
Example
curl \
--url 'https://api.loyaltylion.com/v2/customers?since_id=0&limit=2' \
--header 'Content-Type: application/json'