Ah, I assumed from the topic, term and discussion that this would be implemented via sql cursors. Apparently elastic search has a similar concept - but like sql cursors it cannot be stateless (because you cannot ask for Nth to Mth result of searching the collection as of state Z -if you don't want to capture/supply state Z).
This means any stateless pagination api is fundamentally broken. Please don't make promises you cannot keep.
https://www.postgresql.org/docs/13/sql-declare.html