As a Roblox developer, it is currently too hard to determine the exact limitations and reasonably approach problems with the web endpoints such as (but not limited to):
https://search.roblox.com/catalog/
https://games.roblox.com/v1/games/
https://games.roblox.com/v2/users/
My experience Clip It uses these endpoints extensively to support functionality that is not normally offered by Roblox services to experiences.
Examples of this include:
-
Displaying users their published experiences and game passes (To allow for integration of their own brands & content into our experience, examples below)
-
Text-based image searching. I’m aware of the existing
InsertService:GetFreeDecals()
providing similar functionality, but it has a significantly lower quality search results compared to the actual catalog.
Our issues arise when we try to use these endpoints in a scalable way, especially since we use them at a much higher rate than your typical Roblox experience. These problems are as follows:
- We have no reliable documentation on the limitations of these APIs, we are left guessing in terms of how we should scale our proxy service adequately to our load.
- Using proxy services will actively get our requests blocked via 403 errors.
We have made a proactive effort to use avoid calls to these endpoints as much as possible, but even with extensive caching, we are worried about scaling to higher player counts.
I’m not able to offer a direct recommendation or solution for this, but there are a few things that would make our lives easier:
- Better documentation of these endpoints so we can optimize our proxies based on our active load.
- A Roblox service that can offer access to these endpoints on a per-CCU scaled basis.
- A system of having IP addresses whitelisted or granted higher rate limits once your experience reaches a high enough player count. Similar to the how experiences can be granted higher limitations on the AvatarEditorService API.