Cursor pagination
Also called: keyset pagination, cursor-based pagination, seek method.
Each page asks for the items after the last one you already have, using a cursor such as that item's id. New items at the top don't shift anything, so nothing repeats or goes missing, but you can't jump straight to page 7.
Each “Load more” asks for the posts after the last one you have (after=p_28). New posts at the top don't shift anything, so nothing repeats or goes missing.
Page 1
Say it in a prompt
Paginate GET /api/posts with a cursor. Accept limit (default 20, max 100) and after=<post id>, return the posts older than that post sorted by created_at and then id, plus next_cursor and has_more. The feed shows a "Load more" button that sends the last next_cursor. Seen on
- Stripe API: List endpoints take limit, starting_after and ending_before (an object id) and answer with has_more.
- Slack Web API: Paginated methods return response_metadata.next_cursor, which you send back as cursor to get the next portion.
You might describe it as
- load more button that continues from the last item
- infinite feed that never shows the same post twice
- next page starts right after the last thing I saw
Not to be confused with
- Offset pagination
Cursor pagination continues after the last item you have; offset pagination skips a count of rows, and that count shifts when new rows arrive.