Bulk methods on MarketplaceService for gamepasses & subscriptions

There currently exists a method for fetching all developer products in a game using Pages, essentially a bulk fetching API. Equivalent methods do not exist for gamepasses nor subscriptions. It would make MarketplaceService usage more ergonomic if we had similar methods for gamepasses & subscriptions.

Some more specific use cases & reasoning:

  • Simplifying management and syncing of which gamepasses in an in-game store are available for purchase - this must be toggled on the site and must currently be fetched for each gamepass separately using MarketplaceService:GetProductInfo.
  • Low-cost bulk prefetching of display names - which is a use case that has previously justified methods like UserService:GetUserInfosByUserIdsAsync existing on other services.
  • Not being able to bulk fetch props such as enablement, display names, etc., specifically for gamepasses, when the functionality exists in other areas, is surprising to both new & veteran developers. MarketplaceService has complete symmetry for other methods (such as prompting) for products/gamepasses/subscriptions otherwise.

Because the limit on how many gamepasses can be created is somewhat low, a method using Pages may not be necessary, it may be fine to simply return all gamepasses/subscriptions at once. But either Pages or a full table works for all use cases.

As a final note, a public web API for bulk fetching of gamepass data already exists, but is inaccessible from within Roblox game servers due to HttpService restrictions:

https://games.roblox.com/v1/games/universeId/game-passes

From a quick search on the forum it seems people are maintaining their own HTTP proxy servers just to get around this limitation. I assume this web API would just need to be exposed on MarketplaceService for in-game usage, and those developers would no longer need to maintain proxies.

5 Likes