There's no real easy way to do this, as the SQL calls are essentially stateless. So it's not quite as simple as just saying 'give me the next 50', as you have to specify ORDER BY on the SELECT so the returned rows always come back in the same order, and pass in enough predicates to allow the query to reposition. Unless the columns are in the index in the right order, this will cause you to materialise a potentially large cursor each time you call.
I guess you want to do this on a web server, delivering a page at a time? Unless you have a very large potential result set, you might be better off fetching them all, cacheing the result set on the server, and then just paging through the cached copy on subsequent GET requests.
Another possibility worth considering is to return a maximum of (say) 100 rows with a message to the user asking them to refine their search argument.