Catalog v1
Reference for the Catalog v1 endpoints on Roblox.
Base URL: https://catalog.roblox.com
Endpoints
Section titled “Endpoints”| Method | Path | Name |
|---|---|---|
GET | /v1/asset-to-category | getAssetToCategory |
GET | /v1/asset-to-subcategory | getAssetToSubcategory |
GET | /v1/assets/:assetId/bundles | getAssetsAssetidBundles |
GET | /v1/bundles/:bundleId/details | getBundlesBundleidDetails |
GET | /v1/bundles/:bundleId/recommendations | getBundlesBundleidRecommendations |
GET | /v1/bundles/details | getBundlesDetails |
POST | /v1/catalog/items/details | postCatalogItemsDetails |
GET | /v1/categories | getCategories |
GET | /v1/favorites/assets/:assetId/count | getFavoritesAssetsAssetidCount |
GET | /v1/favorites/bundles/:bundleId/count | getFavoritesBundlesBundleidCount |
GET | /v1/favorites/users/:userId/assets/:assetId/favorite | getFavoritesUsersUseridAssetsAssetidFavorite |
POST | /v1/favorites/users/:userId/assets/:assetId/favorite | postFavoritesUsersUseridAssetsAssetidFavorite |
DELETE | /v1/favorites/users/:userId/assets/:assetId/favorite | deleteFavoritesUsersUseridAssetsAssetidFavorite |
GET | /v1/favorites/users/:userId/bundles/:bundleId/favorite | getFavoritesUsersUseridBundlesBundleidFavorite |
POST | /v1/favorites/users/:userId/bundles/:bundleId/favorite | postFavoritesUsersUseridBundlesBundleidFavorite |
DELETE | /v1/favorites/users/:userId/bundles/:bundleId/favorite | deleteFavoritesUsersUseridBundlesBundleidFavorite |
GET | /v1/favorites/users/:userId/favorites/:assetTypeId/assets | getFavoritesUsersUseridFavoritesAssettypeidAssets |
GET | /v1/favorites/users/:userId/favorites/:subtypeId/bundles | getFavoritesUsersUseridFavoritesSubtypeidBundles |
GET | /v1/subcategories | getSubcategories |
POST | /v1/topic/get-topics | postTopicGetTopics |
GET | /v1/users/:userId/bundles | getUsersUseridBundles |
GET | /v1/users/:userId/bundles/:bundleType | getUsersUseridBundlesBundletype |
getAssetToCategory
Section titled “getAssetToCategory”GET /v1/asset-to-category
Lists a mapping for assets to category IDs to convert from inventory ID to catalog ID. Creates a mapping to link ‘Get More’ button in inventory page to the relevant catalog page.
Usage
import { fetchApi } from 'rozod';import { getAssetToCategory } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getAssetToCategory, undefined);Response
Section titled “Response”Type: integer
getAssetToSubcategory
Section titled “getAssetToSubcategory”GET /v1/asset-to-subcategory
Lists a mapping for assets to subcategory IDs to convert from inventory ID to catalog ID. Creates a mapping to link ‘Get More’ button in inventory page to the relevant catalog page.
Usage
import { fetchApi } from 'rozod';import { getAssetToSubcategory } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getAssetToSubcategory, undefined);Response
Section titled “Response”Type: integer
getAssetsAssetidBundles
Section titled “getAssetsAssetidBundles”GET /v1/assets/:assetId/bundles
Lists the bundles a particular asset belongs to. Use the Id of the last bundle in the response to get the next page.
Usage
import { fetchApi } from 'rozod';import { getAssetsAssetidBundles } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getAssetsAssetidBundles, { assetId: /* integer */, cursor: /* string? */, sortOrder: /* enum */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
assetId | integer | Yes | |
cursor | string? | No | The paging cursor for the previous or next page. |
sortOrder | enum | Yes | The order the results are sorted in. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor | string | |
nextPageCursor | string | |
data | object[] | See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
description | string | |
bundleType | string | |
isRecolorable | boolean | |
items | object[] | See below |
creator | object | See below |
product | object | See below |
itemRestrictions | `1 | 2 |
collectibleItemDetail | object | See below |
items[] item fields:
| Field | Type | Description |
|---|---|---|
owned | boolean | |
id | number | |
name | string | |
type | string | |
supportsHeadShapes | boolean | |
assetType | number |
creator fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
type | string | |
hasVerifiedBadge | boolean |
product fields:
| Field | Type | Description |
|---|---|---|
id | number | |
type | string | |
isPublicDomain | boolean | |
isForSale | boolean | |
priceInRobux | number | |
isFree | boolean | |
noPriceText | string | |
premiumPricing | object | See below |
premiumPricing fields:
| Field | Type | Description |
|---|---|---|
premiumDiscountPercentage | number | |
premiumPriceInRobux | number |
collectibleItemDetail fields:
| Field | Type | Description |
|---|---|---|
collectibleItemId | string | |
collectibleProductId | string | |
price | number | |
lowestPrice | number | |
lowestResalePrice | number | |
totalQuantity | number | |
unitsAvailable | number | |
saleLocation | object | See below |
hasResellers | boolean | |
saleStatus | `“Invalid" | "Draft" |
quantityLimitPerUser | number | |
offSaleDeadline | string | |
collectibleItemType | `“Invalid" | "Limited" |
lowestAvailableResaleProductId | string | |
lowestAvailableResaleItemInstanceId | string | |
resaleRestriction | `“Invalid" | "None" |
saleLocation fields:
| Field | Type | Description |
|---|---|---|
saleLocationType | `“NotApplicable" | "ShopOnly" |
saleLocationTypeId | number | |
universeIds | number[] | |
enabledUniverseIds | number[] |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid assetId 4: Invalid Cursor. |
getBundlesBundleidDetails
Section titled “getBundlesBundleidDetails”GET /v1/bundles/:bundleId/details
Returns details about the given bundleId.
Usage
import { fetchApi } from 'rozod';import { getBundlesBundleidDetails } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getBundlesBundleidDetails, { bundleId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleId | integer | Yes |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
description | string | |
bundleType | string | |
isRecolorable | boolean | |
items | object[] | See below |
creator | object | See below |
product | object | See below |
itemRestrictions | `1 | 2 |
collectibleItemDetail | object | See below |
items[] item fields:
| Field | Type | Description |
|---|---|---|
owned | boolean | |
id | number | |
name | string | |
type | string | |
supportsHeadShapes | boolean | |
assetType | number |
creator fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
type | string | |
hasVerifiedBadge | boolean |
product fields:
| Field | Type | Description |
|---|---|---|
id | number | |
type | string | |
isPublicDomain | boolean | |
isForSale | boolean | |
priceInRobux | number | |
isFree | boolean | |
noPriceText | string | |
premiumPricing | object | See below |
premiumPricing fields:
| Field | Type | Description |
|---|---|---|
premiumDiscountPercentage | number | |
premiumPriceInRobux | number |
collectibleItemDetail fields:
| Field | Type | Description |
|---|---|---|
collectibleItemId | string | |
collectibleProductId | string | |
price | number | |
lowestPrice | number | |
lowestResalePrice | number | |
totalQuantity | number | |
unitsAvailable | number | |
saleLocation | object | See below |
hasResellers | boolean | |
saleStatus | `“Invalid" | "Draft" |
quantityLimitPerUser | number | |
offSaleDeadline | string | |
collectibleItemType | `“Invalid" | "Limited" |
lowestAvailableResaleProductId | string | |
lowestAvailableResaleItemInstanceId | string | |
resaleRestriction | `“Invalid" | "None" |
saleLocation fields:
| Field | Type | Description |
|---|---|---|
saleLocationType | `“NotApplicable" | "ShopOnly" |
saleLocationTypeId | number | |
universeIds | number[] | |
enabledUniverseIds | number[] |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid bundle |
getBundlesBundleidRecommendations
Section titled “getBundlesBundleidRecommendations”GET /v1/bundles/:bundleId/recommendations
Gets recommendations for a given bundle, bundleId of 0 returns randomized bundles
Usage
import { fetchApi } from 'rozod';import { getBundlesBundleidRecommendations } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getBundlesBundleidRecommendations, { bundleId: /* integer */, numItems: /* integer? = 20 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleId | integer | Yes | |
numItems | integer? = 20 | No | The number of recommended items to return. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
data | object[] | See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
description | string | |
bundleType | string | |
isRecolorable | boolean | |
items | object[] | See below |
creator | object | See below |
product | object | See below |
itemRestrictions | `1 | 2 |
collectibleItemDetail | object | See below |
items[] item fields:
| Field | Type | Description |
|---|---|---|
owned | boolean | |
id | number | |
name | string | |
type | string | |
supportsHeadShapes | boolean | |
assetType | number |
creator fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
type | string | |
hasVerifiedBadge | boolean |
product fields:
| Field | Type | Description |
|---|---|---|
id | number | |
type | string | |
isPublicDomain | boolean | |
isForSale | boolean | |
priceInRobux | number | |
isFree | boolean | |
noPriceText | string | |
premiumPricing | object | See below |
premiumPricing fields:
| Field | Type | Description |
|---|---|---|
premiumDiscountPercentage | number | |
premiumPriceInRobux | number |
collectibleItemDetail fields:
| Field | Type | Description |
|---|---|---|
collectibleItemId | string | |
collectibleProductId | string | |
price | number | |
lowestPrice | number | |
lowestResalePrice | number | |
totalQuantity | number | |
unitsAvailable | number | |
saleLocation | object | See below |
hasResellers | boolean | |
saleStatus | `“Invalid" | "Draft" |
quantityLimitPerUser | number | |
offSaleDeadline | string | |
collectibleItemType | `“Invalid" | "Limited" |
lowestAvailableResaleProductId | string | |
lowestAvailableResaleItemInstanceId | string | |
resaleRestriction | `“Invalid" | "None" |
saleLocation fields:
| Field | Type | Description |
|---|---|---|
saleLocationType | `“NotApplicable" | "ShopOnly" |
saleLocationTypeId | number | |
universeIds | number[] | |
enabledUniverseIds | number[] |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid bundle 2: Error retrieving bundles 3: Error getting bundle recommendations 4: NumItems exceed maximum |
getBundlesDetails
Section titled “getBundlesDetails”GET /v1/bundles/details
Returns details about the given bundleIds.
Usage
import { fetchApi } from 'rozod';import { getBundlesDetails } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getBundlesDetails, { bundleIds: /* number */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleIds | number | Yes |
Response
Section titled “Response”Array of objects:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
description | string | |
bundleType | string | |
isRecolorable | boolean | |
items | object[] | See below |
creator | object | See below |
product | object | See below |
itemRestrictions | `1 | 2 |
collectibleItemDetail | object | See below |
items[] item fields:
| Field | Type | Description |
|---|---|---|
owned | boolean | |
id | number | |
name | string | |
type | string | |
supportsHeadShapes | boolean | |
assetType | number |
creator fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
type | string | |
hasVerifiedBadge | boolean |
product fields:
| Field | Type | Description |
|---|---|---|
id | number | |
type | string | |
isPublicDomain | boolean | |
isForSale | boolean | |
priceInRobux | number | |
isFree | boolean | |
noPriceText | string | |
premiumPricing | object | See below |
premiumPricing fields:
| Field | Type | Description |
|---|---|---|
premiumDiscountPercentage | number | |
premiumPriceInRobux | number |
collectibleItemDetail fields:
| Field | Type | Description |
|---|---|---|
collectibleItemId | string | |
collectibleProductId | string | |
price | number | |
lowestPrice | number | |
lowestResalePrice | number | |
totalQuantity | number | |
unitsAvailable | number | |
saleLocation | object | See below |
hasResellers | boolean | |
saleStatus | `“Invalid" | "Draft" |
quantityLimitPerUser | number | |
offSaleDeadline | string | |
collectibleItemType | `“Invalid" | "Limited" |
lowestAvailableResaleProductId | string | |
lowestAvailableResaleItemInstanceId | string | |
resaleRestriction | `“Invalid" | "None" |
saleLocation fields:
| Field | Type | Description |
|---|---|---|
saleLocationType | `“NotApplicable" | "ShopOnly" |
saleLocationTypeId | number | |
universeIds | number[] | |
enabledUniverseIds | number[] |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 3: Cannot request so many bundles at once. |
postCatalogItemsDetails
Section titled “postCatalogItemsDetails”POST /v1/catalog/items/details
Returns list of item details.
Usage
import { fetchApi } from 'rozod';import { postCatalogItemsDetails } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(postCatalogItemsDetails, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
items | object[] | See below |
items[] item fields:
| Field | Type | Description |
|---|---|---|
itemType | `“Asset" | "Bundle”` |
id | number |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
data | object[] | See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
bundledItems | object[] | See below |
taxonomy | object[] | See below |
itemCreatedUtc | string | |
id | number | |
itemType | `“Asset" | "Bundle”` |
assetType | `1 | 2 |
bundleType | `1 | 2 |
isRecolorable | boolean | |
name | string | |
description | string | |
productId | number | |
itemStatus | `1 | 2 |
itemRestrictions | `1 | 2 |
creatorHasVerifiedBadge | boolean | |
creatorType | string | |
creatorTargetId | number | |
creatorName | string | |
price | number | |
lowestPrice | number | |
lowestResalePrice | number | |
priceStatus | string | |
unitsAvailableForConsumption | number | |
favoriteCount | number | |
offSaleDeadline | string | |
collectibleItemId | string | |
totalQuantity | number | |
saleLocationType | `“NotApplicable" | "ShopOnly" |
hasResellers | boolean | |
isOffSale | boolean | |
quantityLimitPerUser | number | |
supportsHeadShapes | boolean | |
timedOptions | object[] | See below |
bundledItems[] item fields:
| Field | Type | Description |
|---|---|---|
owned | boolean | |
id | number | |
name | string | |
type | string | |
supportsHeadShapes | boolean | |
assetType | number |
taxonomy[] item fields:
| Field | Type | Description |
|---|---|---|
taxonomyId | string | |
taxonomyName | string |
timedOptions[] item fields:
| Field | Type | Description |
|---|---|---|
days | number | |
price | number | |
selected | boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 2: Invalid count |
| 403 | 0: Token Validation Failed 7: User is unauthorized. |
| 429 | 8: The flood limit has been exceeded. |
getCategories
Section titled “getCategories”GET /v1/categories
Lists Category Names and their Ids.
Usage
import { fetchApi } from 'rozod';import { getCategories } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getCategories, undefined);Response
Section titled “Response”Array of objects:
| Field | Type | Description |
|---|---|---|
category | string | |
taxonomy | string | |
assetTypeIds | number[] | |
bundleTypeIds | number[] | |
categoryId | number | |
name | string | |
orderIndex | number | |
subcategories | object[] | See below |
isSearchable | boolean |
subcategories[] item fields:
| Field | Type | Description |
|---|---|---|
subcategory | string | |
taxonomy | string | |
assetTypeIds | number[] | |
bundleTypeIds | number[] | |
subcategoryId | number | |
name | string | |
shortName | string |
getFavoritesAssetsAssetidCount
Section titled “getFavoritesAssetsAssetidCount”GET /v1/favorites/assets/:assetId/count
Gets the favorite count for the given asset Id.
Usage
import { fetchApi } from 'rozod';import { getFavoritesAssetsAssetidCount } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getFavoritesAssetsAssetidCount, { assetId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
assetId | integer | Yes |
Response
Section titled “Response”Type: integer
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 2: Invalid asset Id. |
getFavoritesBundlesBundleidCount
Section titled “getFavoritesBundlesBundleidCount”GET /v1/favorites/bundles/:bundleId/count
Gets the favorite count for the given bundle Id.
Usage
import { fetchApi } from 'rozod';import { getFavoritesBundlesBundleidCount } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getFavoritesBundlesBundleidCount, { bundleId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
bundleId | integer | Yes |
Response
Section titled “Response”Type: integer
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 2: Invalid bundle Id. |
getFavoritesUsersUseridAssetsAssetidFavorite
Section titled “getFavoritesUsersUseridAssetsAssetidFavorite”GET /v1/favorites/users/:userId/assets/:assetId/favorite
Gets the favorite model for the asset and user.
Usage
import { fetchApi } from 'rozod';import { getFavoritesUsersUseridAssetsAssetidFavorite } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridAssetsAssetidFavorite, { userId: /* integer */, assetId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
assetId | integer | Yes |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
assetId | number | |
userId | number | |
created | string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 2: Invalid asset Id. |
| 401 | 0: Authorization has been denied for this request. |
postFavoritesUsersUseridAssetsAssetidFavorite
Section titled “postFavoritesUsersUseridAssetsAssetidFavorite”POST /v1/favorites/users/:userId/assets/:assetId/favorite
Create a favorite for an asset by the authenticated user.
Usage
import { fetchApi } from 'rozod';import { postFavoritesUsersUseridAssetsAssetidFavorite } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(postFavoritesUsersUseridAssetsAssetidFavorite, { userId: /* integer */, assetId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
assetId | integer | Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 2: Invalid asset Id. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 6: You are not authorized to perform this action. |
| 409 | 3: Asset is already favorited. |
| 429 | 5: This action was floodchecked. Please try again later. |
deleteFavoritesUsersUseridAssetsAssetidFavorite
Section titled “deleteFavoritesUsersUseridAssetsAssetidFavorite”DELETE /v1/favorites/users/:userId/assets/:assetId/favorite
Delete a favorite for an asset by the authenticated user.
Usage
import { fetchApi } from 'rozod';import { deleteFavoritesUsersUseridAssetsAssetidFavorite } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(deleteFavoritesUsersUseridAssetsAssetidFavorite, { userId: /* integer */, assetId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
assetId | integer | Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 2: Invalid asset Id. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 6: You are not authorized to perform this action. |
| 409 | 4: Asset is already not favorited. |
| 429 | 5: This action was floodchecked. Please try again later. |
getFavoritesUsersUseridBundlesBundleidFavorite
Section titled “getFavoritesUsersUseridBundlesBundleidFavorite”GET /v1/favorites/users/:userId/bundles/:bundleId/favorite
Gets the favorite model for the bundle and user.
Usage
import { fetchApi } from 'rozod';import { getFavoritesUsersUseridBundlesBundleidFavorite } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridBundlesBundleidFavorite, { userId: /* integer */, bundleId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
bundleId | integer | Yes |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
bundleId | number | |
userId | number | |
created | string |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 2: Invalid bundle Id. |
| 401 | 0: Authorization has been denied for this request. |
postFavoritesUsersUseridBundlesBundleidFavorite
Section titled “postFavoritesUsersUseridBundlesBundleidFavorite”POST /v1/favorites/users/:userId/bundles/:bundleId/favorite
Create a favorite for the bundle by the authenticated user.
Usage
import { fetchApi } from 'rozod';import { postFavoritesUsersUseridBundlesBundleidFavorite } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(postFavoritesUsersUseridBundlesBundleidFavorite, { userId: /* integer */, bundleId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
bundleId | integer | Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 2: Invalid bundle Id. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 6: You are not authorized to perform this action. |
| 409 | 3: Bundle is already favorited. |
| 429 | 5: This action was floodchecked. Please try again later. |
deleteFavoritesUsersUseridBundlesBundleidFavorite
Section titled “deleteFavoritesUsersUseridBundlesBundleidFavorite”DELETE /v1/favorites/users/:userId/bundles/:bundleId/favorite
Delete favorite for the bundle by the authenticated user.
Usage
import { fetchApi } from 'rozod';import { deleteFavoritesUsersUseridBundlesBundleidFavorite } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(deleteFavoritesUsersUseridBundlesBundleidFavorite, { userId: /* integer */, bundleId: /* integer */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
bundleId | integer | Yes |
Response
Section titled “Response”Type: unknown
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 2: Invalid bundle Id. |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 0: Token Validation Failed 6: You are not authorized to perform this action. |
| 409 | 4: Bundle is already not favorited. |
| 429 | 5: This action was floodchecked. Please try again later. |
getFavoritesUsersUseridFavoritesAssettypeidAssets
Section titled “getFavoritesUsersUseridFavoritesAssettypeidAssets”GET /v1/favorites/users/:userId/favorites/:assetTypeId/assets
Lists the marketplace assets favorited by a given user with the given assetTypeId.
Usage
import { fetchApi } from 'rozod';import { getFavoritesUsersUseridFavoritesAssettypeidAssets } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridFavoritesAssettypeidAssets, { userId: /* integer */, assetTypeId: /* integer */, cursor: /* string? */, sortOrder: /* enum */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
assetTypeId | integer | Yes | |
cursor | string? | No | The paging cursor for the previous or next page. |
sortOrder | enum | Yes | The order the results are sorted in. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor | string | |
nextPageCursor | string | |
data | object[] | See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id | number | |
itemType | `“Asset" | "Bundle”` |
assetType | `1 | 2 |
bundleType | `1 | 2 |
isRecolorable | boolean | |
name | string | |
description | string | |
productId | number | |
bundledItems | object[] | See below |
itemStatus | `1 | 2 |
itemRestrictions | `1 | 2 |
creatorHasVerifiedBadge | boolean | |
creatorType | string | |
creatorTargetId | number | |
creatorName | string | |
price | number | |
lowestPrice | number | |
lowestResalePrice | number | |
priceStatus | string | |
unitsAvailableForConsumption | number | |
favoriteCount | number | |
offSaleDeadline | string | |
collectibleItemId | string | |
totalQuantity | number | |
saleLocationType | `“NotApplicable" | "ShopOnly" |
hasResellers | boolean | |
isOffSale | boolean | |
quantityLimitPerUser | number | |
supportsHeadShapes | boolean | |
timedOptions | object[] | See below |
bundledItems[] item fields:
| Field | Type | Description |
|---|---|---|
owned | boolean | |
id | number | |
name | string | |
type | string | |
supportsHeadShapes | boolean | |
assetType | number |
timedOptions[] item fields:
| Field | Type | Description |
|---|---|---|
days | number | |
price | number | |
selected | boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 8: Ascending order is not allowed. 11: Invalid asset type id. |
| 500 | 99: Internal server error. |
getFavoritesUsersUseridFavoritesSubtypeidBundles
Section titled “getFavoritesUsersUseridFavoritesSubtypeidBundles”GET /v1/favorites/users/:userId/favorites/:subtypeId/bundles
Lists the bundles favorited by a given user with the given bundle subtypeId.Switched to EAAS style pagination cursors since July 2024.
Usage
import { fetchApi } from 'rozod';import { getFavoritesUsersUseridFavoritesSubtypeidBundles } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getFavoritesUsersUseridFavoritesSubtypeidBundles, { userId: /* integer */, subtypeId: /* integer */, itemsPerPage: /* integer? = 24 */, cursor: /* string? */, isPrevious: /* boolean? */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
subtypeId | integer | Yes | |
itemsPerPage | integer? = 24 | No | |
cursor | string? | No | |
isPrevious | boolean? | No |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
favorites | object[] | See below |
moreFavorites | boolean | |
nextCursor | string | |
previousCursor | string |
favorites[] item fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
description | string | |
bundleType | string | |
isRecolorable | boolean | |
items | object[] | See below |
creator | object | See below |
product | object | See below |
itemRestrictions | `1 | 2 |
collectibleItemDetail | object | See below |
items[] item fields:
| Field | Type | Description |
|---|---|---|
owned | boolean | |
id | number | |
name | string | |
type | string | |
supportsHeadShapes | boolean | |
assetType | number |
creator fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
type | string | |
hasVerifiedBadge | boolean |
product fields:
| Field | Type | Description |
|---|---|---|
id | number | |
type | string | |
isPublicDomain | boolean | |
isForSale | boolean | |
priceInRobux | number | |
isFree | boolean | |
noPriceText | string | |
premiumPricing | object | See below |
premiumPricing fields:
| Field | Type | Description |
|---|---|---|
premiumDiscountPercentage | number | |
premiumPriceInRobux | number |
collectibleItemDetail fields:
| Field | Type | Description |
|---|---|---|
collectibleItemId | string | |
collectibleProductId | string | |
price | number | |
lowestPrice | number | |
lowestResalePrice | number | |
totalQuantity | number | |
unitsAvailable | number | |
saleLocation | object | See below |
hasResellers | boolean | |
saleStatus | `“Invalid" | "Draft" |
quantityLimitPerUser | number | |
offSaleDeadline | string | |
collectibleItemType | `“Invalid" | "Limited" |
lowestAvailableResaleProductId | string | |
lowestAvailableResaleItemInstanceId | string | |
resaleRestriction | `“Invalid" | "None" |
saleLocation fields:
| Field | Type | Description |
|---|---|---|
saleLocationType | `“NotApplicable" | "ShopOnly" |
saleLocationTypeId | number | |
universeIds | number[] | |
enabledUniverseIds | number[] |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid user Id. 3: Cannot request so many bundles at once. 10: Invalid previous pagination request. Please provide a cursor when isPrevious is true |
| 401 | 0: Authorization has been denied for this request. |
| 403 | 6: You are not authorized to perform this action. |
| 500 | 11: Internal server error. Please check if you have provided correct pagination cursor |
getSubcategories
Section titled “getSubcategories”GET /v1/subcategories
Lists Subcategory Names and their Ids.
Usage
import { fetchApi } from 'rozod';import { getSubcategories } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getSubcategories, undefined);Response
Section titled “Response”Type: integer
postTopicGetTopics
Section titled “postTopicGetTopics”POST /v1/topic/get-topics
Get topic given TopicRequestModel.
Usage
import { fetchApi } from 'rozod';import { postTopicGetTopics } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(postTopicGetTopics, { body: { /* ... */ }});Request Body
Section titled “Request Body”| Field | Type | Description |
|---|---|---|
items | object[] | See below |
selectTopics | string[] | |
inputQuery | string | |
maxResult | number | |
genderType | `“Unknown" | "Male" |
items[] item fields:
| Field | Type | Description |
|---|---|---|
TargetId | number | |
ItemType | `“Invalid" | "Asset" |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
topics | object[] | See below |
error | object | See below |
topics[] item fields:
| Field | Type | Description |
|---|---|---|
displayName | string | |
originalTopicName | string |
error fields:
| Field | Type | Description |
|---|---|---|
Message | string | |
Code | number |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 403 | 0: Token Validation Failed |
getUsersUseridBundles
Section titled “getUsersUseridBundles”GET /v1/users/:userId/bundles
Lists the bundles owned by a given user.
Usage
import { fetchApi } from 'rozod';import { getUsersUseridBundles } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getUsersUseridBundles, { userId: /* integer */, cursor: /* string? */, limit: /* integer? = 10 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
cursor | string? | No | |
limit | integer? = 10 | No |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor | string | |
nextPageCursor | string | |
data | object[] | See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
bundleType | string | |
creator | object | See below |
creator fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
type | string | |
hasVerifiedBadge | boolean |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid bundle |
getUsersUseridBundlesBundletype
Section titled “getUsersUseridBundlesBundletype”GET /v1/users/:userId/bundles/:bundleType
Usage
import { fetchApi } from 'rozod';import { getUsersUseridBundlesBundletype } from 'rozod/lib/endpoints/catalogv1';
const data = await fetchApi(getUsersUseridBundlesBundletype, { userId: /* integer */, bundleType: /* unknown */, cursor: /* string */, limit: /* integer? = 10 */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
userId | integer | Yes | |
bundleType | unknown | Yes | |
cursor | string | Yes | |
limit | integer? = 10 | No |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
previousPageCursor | string | |
nextPageCursor | string | |
data | object[] | See below |
data[] item fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
bundleType | string | |
creator | object | See below |
creator fields:
| Field | Type | Description |
|---|---|---|
id | number | |
name | string | |
type | string | |
hasVerifiedBadge | boolean |