Pagination
Paginated responses whose metadata lies, whose pages overlap, or whose Link headers point to the wrong place.
Returns paginated collections whose total_items lies, whose pages overlap each other, whose Link headers loop back to page 1, or whose returned size drifts from what the client requested.
mode
lying-total (default; total_items=100 claimed but pages 4–10 return empty), overlapping-pages (consecutive pages share 5 items), link-loop (Link rel=next points back to page 1), size-drift (returned size doesn't match requested size).
page
Page number, 1-indexed. Range: 1–20. Default: 1.
size
Requested items per page. Range: 1–100. Default: 10. Some modes ignore this.
The pagination contract is implicit: total_items is honest, pages don’t overlap, Link headers point forward, size matches what you asked for. Real APIs break every one of these promises at some point. These modes let you test which assumptions your client makes.
Walk pages 1 through 5 with the same mode to see the chaos accumulate — that’s the workflow this endpoint is built for.