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/:placeId/servers/:serverType | getGamesPlaceidServersServertype |
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 |
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 |
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. |
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. |
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 |
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 |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 8: The universe IDs specified are invalid. 9: Too many universe IDs were requested. |
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. |