When fetching public server instances for a given PlaceId using the Games v1 API, pagination stops prematurely. The nextPageCursor is returned as null after fetching 700 server(s) worth of pages, even though additional servers still exist.
Please read the update below this post before continuing reading, as it provides further information ![]()
Endpoint
GET https://games.roblox.com/v1/games/{placeId}/servers/public
Query Parameters
sortOrder=2
excludeFullGames=true
limit=100
cursor={cursor}
Behaviour
-
Pages 1–6 return valid
nextPageCursorvalues. -
Page 7 returns
nextPageCursor: null. -
Unable to progress with pagination even though more public servers exist for the place.
Steps to reproduce
-
Choose any active PlaceId with a large number of public servers.
-
Call the endpoint with limit=100.
-
Continue paginating using the returned
nextPageCursor. -
Observe that after ~7 pages, the response returns
nextPageCursor: null.
This occurs consistently across:
-
Multiple PlaceIds
-
Multiple accounts
-
Different IP addresses
-
Manual requests and automated scripts
Additional Notes
-
The requests are authenticated with
.ROBLOSECURITYas there is (or was) a hidden ratelimit for unauthenticated requests. -
Reproduced by multiple users.
-
A third party was provided a cursor from page 6 and themselves received a
nullnextPageCursor on the following request, ruling out IP ratelimits. -
While the official documentation states that
serverTypeshould be either0, 1passingpublicis also valid.
Expected behavior
-
The API should continue returning a valid
nextPageCursoras long as additional server pages exist. -
Pagination should only end when all servers have been exhausted.