Games v1
Reference for the Games v1 endpoints on Roblox.
Base URL: https://games.roblox.com
Endpoints
Section titled “Endpoints”| Method | Path | Name |
|---|---|---|
GET |
/v1/games |
getGames |
GET |
/v1/games/:universeId/favorites |
getGamesUniverseidFavorites |
POST |
/v1/games/:universeId/favorites |
postGamesUniverseidFavorites |
GET |
/v1/games/:universeId/favorites/count |
getGamesUniverseidFavoritesCount |
GET |
/v1/games/:universeId/media |
getGamesUniverseidMedia |
GET |
/v1/games/games-product-info |
getGamesGamesProductInfo |
GET |
/v1/games/multiget-place-details |
getGamesMultigetPlaceDetails |
GET |
/v1/games/multiget-playability-status |
getGamesMultigetPlayabilityStatus |
GET |
/v1/games/recommendations/game/:universeId |
getGamesRecommendationsGameUniverseid |
GET |
/v1/games/:placeId/servers/:serverType |
getGamesPlaceidServersServertype |
getGames
Section titled “getGames”GET /v1/games
Gets a list of games’ detail
Usage
import { fetchApi } from 'rozod';import { getGames } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGames, { universeIds: /* number */, fields: /* string? */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeIds |
number |
Yes | A list of universe Ids. Cannot exceed a maximum of 50 IDs. |
fields |
string? |
No | Optional comma-separated list of field names to include in the response. When omitted, all fields are returned. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
rootPlaceId |
number |
|
name |
string |
|
description |
string |
|
sourceName |
string |
|
sourceDescription |
string |
|
creator |
object |
See below |
price |
number |
|
allowedGearGenres |
string[] |
|
allowedGearCategories |
string[] |
|
isGenreEnforced |
boolean |
|
copyingAllowed |
boolean |
|
playing |
number |
|
visits |
number |
|
maxPlayers |
number |
|
created |
string |
|
updated |
string |
|
studioAccessToApisAllowed |
boolean |
|
createVipServersAllowed |
boolean |
|
universeAvatarType |
`1 | 2 |
genre |
string |
|
genre_l1 |
string |
|
genre_l2 |
string |
|
untranslated_genre_l1 |
string |
|
isAllGenre |
boolean |
|
isFavoritedByUser |
boolean |
|
favoritedCount |
number |
|
licenseDescription |
string |
|
refundLink |
string |
|
localizedFiatPrice |
string |
|
refundPolicy |
object |
See below |
canonicalUrlPath |
string |
|
isContentRestricted |
boolean |
|
creationSource |
string |
creator fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
name |
string |
|
type |
string |
|
isRNVAccount |
boolean |
|
hasVerifiedBadge |
boolean |
refundPolicy fields:
| Field | Type | Description |
|---|---|---|
policyText |
string |
|
learnMoreBaseUrl |
string |
|
locale |
string |
|
articleId |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 8: The universe IDs specified are invalid. 9: Too many universe IDs were requested. |
| 429 | 4: Too many requests have been made. |
getGamesUniverseidFavorites
Section titled “getGamesUniverseidFavorites”GET /v1/games/:universeId/favorites
Returns if a game was marked as favorite for the authenticated user
Usage
import { fetchApi } from 'rozod';import { getGamesUniverseidFavorites } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesUniverseidFavorites, { universeId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeId |
integer |
Yes | The Id of the universe. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
isFavorited |
boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 3: The universe's root place is invalid. |
| 401 | 0: Authorization has been denied for this request. |
| 404 | 2: The requested universe does not exist. |
postGamesUniverseidFavorites
Section titled “postGamesUniverseidFavorites”POST /v1/games/:universeId/favorites
Favors (or unfavors) a game for the authenticated user
Usage
import { fetchApi } from 'rozod';import { postGamesUniverseidFavorites } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(postGamesUniverseidFavorites, { universeId: /* integer */, body: { /* ... */ }});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeId |
integer |
Yes | The Id of the universe. |
Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
isFavorited |
boolean |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 3: The universe's root place is invalid. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 11: You are not authorized to perform this action. |
| 404 | 2: The requested universe does not exist. |
| 429 | 4: Too many requests have been made. |
getGamesUniverseidFavoritesCount
Section titled “getGamesUniverseidFavoritesCount”GET /v1/games/:universeId/favorites/count
Get the favorites count of a specific game.
Usage
import { fetchApi } from 'rozod';import { getGamesUniverseidFavoritesCount } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesUniverseidFavoritesCount, { universeId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeId |
integer |
Yes | The Id of the universe. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
favoritesCount |
number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 3: The universe's root place is invalid. |
| 404 | 2: The requested universe does not exist. |
getGamesUniverseidMedia
Section titled “getGamesUniverseidMedia”GET /v1/games/:universeId/media
Get the game media data
Usage
import { fetchApi } from 'rozod';import { getGamesUniverseidMedia } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesUniverseidMedia, { universeId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeId |
integer |
Yes | The id of the universe we get media data from. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id |
number |
|
assetTypeId |
number |
|
assetType |
string |
|
imageId |
number |
|
videoHash |
string |
|
videoTitle |
string |
|
approved |
boolean |
|
altText |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 3: The universe's root place is invalid. |
| 404 | 2: The requested universe does not exist. |
getGamesGamesProductInfo
Section titled “getGamesGamesProductInfo”GET /v1/games/games-product-info
Gets a list of games’ product info, used to purchase a game
Usage
import { fetchApi } from 'rozod';import { getGamesGamesProductInfo } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesGamesProductInfo, { universeIds: /* number */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeIds |
number |
Yes | A list of universe Ids. Cannot exceed a maximum of 100 IDs. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
universeId |
number |
|
isForSale |
boolean |
|
productId |
number |
|
price |
number |
|
sellerId |
number |
|
fiatPurchaseData |
object |
See below |
fiatPurchaseData fields:
| Field | Type | Description |
|---|---|---|
localizedFiatPrice |
string |
|
basePriceId |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 8: The universe IDs specified are invalid. 9: Too many universe IDs were requested. |
getGamesMultigetPlaceDetails
Section titled “getGamesMultigetPlaceDetails”GET /v1/games/multiget-place-details
Get place details
Usage
import { fetchApi } from 'rozod';import { getGamesMultigetPlaceDetails } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesMultigetPlaceDetails, { placeIds: /* number */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
placeIds |
number |
Yes | List of placeId to uniquely Identify a place |
Response
Section titled “Response”Array of objects:
| Field | Type | Description |
|---|---|---|
placeId |
number |
|
name |
string |
|
description |
string |
|
sourceName |
string |
|
sourceDescription |
string |
|
url |
string |
|
builder |
string |
|
builderId |
number |
|
hasVerifiedBadge |
boolean |
|
isPlayable |
boolean |
|
reasonProhibited |
string |
|
universeId |
number |
|
universeRootPlaceId |
number |
|
price |
number |
|
imageToken |
string |
|
fiatPurchaseData |
object |
See below |
fiatPurchaseData fields:
| Field | Type | Description |
|---|---|---|
localizedFiatPrice |
string |
|
basePriceId |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 401 | 0: Authorization has been denied for this request. |
getGamesMultigetPlayabilityStatus
Section titled “getGamesMultigetPlayabilityStatus”GET /v1/games/multiget-playability-status
Gets a list of universe playability statuses for the authenticated user
Usage
import { fetchApi } from 'rozod';import { getGamesMultigetPlayabilityStatus } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesMultigetPlayabilityStatus, { universeIds: /* number */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeIds |
number |
Yes | A list of universe Ids. Cannot exceed a maximum of 50 IDs. |
Response
Section titled “Response”Array of objects:
| Field | Type | Description |
|---|---|---|
playabilityStatus |
`“UnplayableOtherReason” | “Playable” |
isPlayable |
boolean |
|
universeId |
number |
|
unplayableDisplayText |
string |
|
playableUxTreatment |
object |
See below |
upsellUxTreatment |
object |
See below |
demoModeAvailable |
boolean |
|
privatePlaytestInfo |
object |
See below |
playableUxTreatment fields:
| Field | Type | Description |
|---|---|---|
treatment |
string |
|
data |
object |
See below |
data fields:
| Field | Type | Description |
|---|---|---|
titleText |
string |
|
bodyText |
string |
|
primaryActionText |
string |
|
secondaryActionText |
string |
upsellUxTreatment fields:
| Field | Type | Description |
|---|---|---|
treatment |
string |
|
data |
object |
See below |
data fields:
| Field | Type | Description |
|---|---|---|
bodyText |
string |
privatePlaytestInfo fields:
| Field | Type | Description |
|---|---|---|
isPlayable |
boolean |
|
playabilityStatus |
`“UnplayableOtherReason” | “Playable” |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 8: The universe IDs specified are invalid. 9: Too many universe IDs were requested. |
| 429 | 4: Too many requests have been made. |
getGamesRecommendationsGameUniverseid
Section titled “getGamesRecommendationsGameUniverseid”GET /v1/games/recommendations/game/:universeId
Get games recommendations based on a given universe
Usage
import { fetchApi } from 'rozod';import { getGamesRecommendationsGameUniverseid } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesRecommendationsGameUniverseid, { universeId: /* integer */, PaginationKey: /* string */, MaxRows: /* integer */, IsTruncatedResultsEnabled: /* boolean */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
universeId |
integer |
Yes | The universe to base recommendations on |
PaginationKey |
string |
Yes | The key of a page, which includes the start row index and all other necessary information to query the data. This parameter is usually not needed for the first page. |
MaxRows |
integer |
Yes | The requested number of rows. |
IsTruncatedResultsEnabled |
boolean |
Yes | Truncated Results |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
games |
object[] |
See below |
nextPaginationKey |
string |
games[] item fields:
| Field | Type | Description |
|---|---|---|
creatorId |
number |
|
creatorName |
string |
|
creatorType |
string |
|
creatorHasVerifiedBadge |
boolean |
|
totalUpVotes |
number |
|
totalDownVotes |
number |
|
universeId |
number |
|
name |
string |
|
placeId |
number |
|
playerCount |
number |
|
imageToken |
string |
|
isSponsored |
boolean |
|
nativeAdData |
string |
|
isShowSponsoredLabel |
boolean |
|
price |
number |
|
analyticsIdentifier |
string |
|
gameDescription |
string |
|
genre |
string |
|
minimumAge |
number |
|
ageRecommendationDisplayName |
string |
|
contentMetadata |
object |
See below |
canonicalUrlPath |
string |
contentMetadata fields:
| Field | Type | Description |
|---|---|---|
badgePosition |
string |
|
badgeAnalyticsId |
string |
|
badgeType |
string |
|
badgeIcon |
string |
|
badgeComponentType |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: The pagination key is invalid. |
| 404 | 2: The requested universe does not exist. |
getGamesPlaceidServersServertype
Section titled “getGamesPlaceidServersServertype”GET /v1/games/:placeId/servers/:serverType
Get the game server list
Usage
import { fetchApi } from 'rozod';import { getGamesPlaceidServersServertype } from 'rozod/endpoints/gamesv1';
const data = await fetchApi(getGamesPlaceidServersServertype, { placeId: /* integer */, serverType: /* unknown */, excludeFullGames: /* boolean? */, cursor: /* string? */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
placeId |
integer |
Yes | The Id of the place we are geting the server list for. |
serverType |
unknown |
Yes | The type of the server we geting the server list for. |
excludeFullGames |
boolean? |
No | Exclude full servers. |
cursor |
string? |
No | The paging cursor for the previous or next page. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor |
string |
|
nextPageCursor |
string |
|
data |
object[] |
See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id |
string |
|
maxPlayers |
number |
|
playing |
number |
|
playerTokens |
string[] |
|
players |
object[] |
See below |
fps |
number |
|
ping |
number |
|
name |
string |
|
vipServerId |
number |
|
accessCode |
string |
|
owner |
object |
See below |
players[] item fields:
| Field | Type | Description |
|---|---|---|
playerToken |
string |
|
id |
number |
|
name |
string |
|
displayName |
string |
owner fields:
| Field | Type | Description |
|---|---|---|
hasVerifiedBadge |
boolean |
|
id |
number |
|
name |
string |
|
displayName |
string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: The place is invalid. 6: The server type is invalid. For fetching private servers, please use https://games.roblox.com/v1/games/{placeId}/private-servers. 7: Guest users are not allowed. |
| 404 | 1: The place is invalid. |