Pagination
List endpoints return one page at a time:
{
"status": "success",
"message": "OK",
"data": {
"items": [],
"next_cursor": "<OPAQUE_CURSOR>"
}
}
Parameters
| Parameter | Default | Rules |
|---|---|---|
limit | 20 | 1 to 100. Other values answer 400 VALIDATION_FAILED. |
cursor | — | The next_cursor of the previous page. Omit it for the first page. |
Reading Every Page
- Call the list without
cursor. - If the response has
next_cursor, call the same list again withcursor=<next_cursor>, the samelimitand the same filters. - Stop when
next_cursoris missing: that was the last page.
Changing limit or a filter while you page answers 400 INVALID_CURSOR. Start again from the first page instead. Treat the cursor as an opaque string: do not build or change it.
Stable and Shifting Lists
GET /outlets,GET /users,GET /ordersandGET /returnspage by position in a fixed order, so records added while you page do not move rows between pages.- The other lists page by offset. A record added or removed while you page can move a row to the next page (you see it twice) or the previous page (you miss it).
GET /shiftsis not paged: it returns every shift that is open now at the outlet.