Catalog v2
Reference for the Catalog v2 endpoints on Roblox.
Base URL: https://catalog.roblox.com
Endpoints
Section titled “Endpoints”| Method | Path | Name |
|---|---|---|
GET |
/v2/search/items/details |
getSearchItemsDetails |
GET |
/v2/assets/:assetId/bundles |
getAssetsAssetidBundles |
getSearchItemsDetails
Section titled “getSearchItemsDetails”GET /v2/search/items/details
Search for catalog items.
Usage
import { fetchApi } from 'rozod';import { getSearchItemsDetails } from 'rozod/endpoints/catalogv2';
const data = await fetchApi(getSearchItemsDetails, { Taxonomy: /* string? */, AssetTypeIds: /* number? */, BundleTypeIds: /* number? */, SortType: /* unknown */, CreatorType: /* unknown */, CreatorTargetId: /* integer? */, CreatorName: /* string? */, MaxPrice: /* integer? */, MinPrice: /* integer? */, Keyword: /* string? */, IncludeNotForSale: /* boolean? */, TriggeredByTopicDiscovery: /* boolean? */, SalesTypeFilter: /* unknown */, Topics: /* string? */, cursor: /* string? */, sortOrder: /* unknown? = "Desc" */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
Taxonomy |
string? |
No | |
AssetTypeIds |
number? |
No | |
BundleTypeIds |
number? |
No | |
SortType |
unknown |
Yes | Price values to be consolidated after roll out to api site. [‘Relevance’ = 0, ‘Favorited’ = 1, ‘Sales’ = 2, ‘Created’ = 3, ‘Updated’ = 3, ‘PriceAsc’ = 4, ‘PriceDesc’ = 5] |
CreatorType |
unknown |
Yes | [‘All’ = 0, ‘User’ = 1, ‘Group’ = 2] |
CreatorTargetId |
integer? |
No | |
CreatorName |
string? |
No | |
MaxPrice |
integer? |
No | |
MinPrice |
integer? |
No | |
Keyword |
string? |
No | |
IncludeNotForSale |
boolean? |
No | |
TriggeredByTopicDiscovery |
boolean? |
No | |
SalesTypeFilter |
unknown |
Yes | The Sales Type filter options for search. [‘Unknown’ = 0, ‘All’ = 1, ‘Collectibles’ = 2, ‘Premium’ = 3, ‘TimedOptions’ = 4] |
Topics |
string? |
No | The input topics format is split by “,”. E.g “topics=cat,hat,red”. |
cursor |
string? |
No | The paging cursor for the previous or next page. |
sortOrder |
unknown? = "Desc" |
No | The order the results are sorted in. |
Response
Section titled “Response”| Field | Type | Description |
|---|---|---|
keyword |
string |
|
elasticsearchDebugInfo |
object |
See below |
previousPageCursor |
string |
|
nextPageCursor |
string |
|
data |
object[] |
See below |
elasticsearchDebugInfo fields:
| Field | Type | Description |
|---|---|---|
elasticsearchQuery |
string |
|
isFromCache |
boolean |
|
indexName |
string |
|
isTerminatedEarly |
boolean |
|
isForceTerminationEnabledByRequest |
boolean |
|
searchResultDataSource |
string |
|
searchResultRelevanceScore |
string |
|
searchResultEngagementScore |
string |
data[] item fields:
| Field | Type | Description |
|---|---|---|
bundledItems |
object[] |
See below |
taxonomy |
object[] |
See below |
itemCreatedUtc |
string |
|
discountInformation |
object |
See below |
license |
object |
See below |
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 |
discountInformation fields:
| Field | Type | Description |
|---|---|---|
originalPrice |
number |
|
totalDiscountPercentage |
number |
|
totalDiscountAmount |
number |
|
discounts |
object[] |
See below |
discounts[] item fields:
| Field | Type | Description |
|---|---|---|
robuxDiscountAmount |
number |
|
robuxDiscountPercentage |
number |
|
discountCampaign |
string |
|
localizedDiscountAttribution |
string |
license fields:
| Field | Type | Description |
|---|---|---|
id |
string |
|
licenseType |
`“Invalid” | “ThirdParty” |
timedOptions[] item fields:
| Field | Type | Description |
|---|---|---|
days |
number |
|
price |
number |
|
discountInformation |
object |
See below |
selected |
boolean |
discountInformation fields:
| Field | Type | Description |
|---|---|---|
originalPrice |
number |
|
totalDiscountPercentage |
number |
|
totalDiscountAmount |
number |
|
discounts |
object[] |
See below |
discounts[] item fields:
| Field | Type | Description |
|---|---|---|
robuxDiscountAmount |
object |
|
robuxDiscountPercentage |
object |
|
discountCampaign |
object |
|
localizedDiscountAttribution |
object |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Category subcategory selection not supported. 2: Creator id not found. 3: Creator type not found or cannot search by CreatorTargetId with CreatorType.All 4: Genre not found. 5: Sort combination not supported. 6: Invalid price range. 10: StartRequest is invalid. |
| 403 | 7: User is unauthorized. 22: In-experience search is denied for this place or universe. |
| 429 | 8: The flood limit has been exceeded. 8: The flood limit has been exceeded. |
| 503 | 18: Search request timed out |
getAssetsAssetidBundles
Section titled “getAssetsAssetidBundles”GET /v2/assets/:assetId/bundles
Lists bundles that contain the given asset (hydrated search-detail shape for marketplace).
Usage
import { fetchApi } from 'rozod';import { getAssetsAssetidBundles } from 'rozod/endpoints/catalogv2';
const data = await fetchApi(getAssetsAssetidBundles, { assetId: /* integer */, cursor: /* string? */, sortOrder: /* enum */});Parameters
Section titled “Parameters”| Name | Type | Required | Description |
|---|---|---|---|
assetId |
integer |
Yes | Asset id. |
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 |
|
discountInformation |
object |
See below |
selected |
boolean |
discountInformation fields:
| Field | Type | Description |
|---|---|---|
originalPrice |
number |
|
totalDiscountPercentage |
number |
|
totalDiscountAmount |
number |
|
discounts |
object[] |
See below |
discounts[] item fields:
| Field | Type | Description |
|---|---|---|
robuxDiscountAmount |
object |
|
robuxDiscountPercentage |
object |
|
discountCampaign |
object |
|
localizedDiscountAttribution |
object |
Errors
Section titled “Errors”| Status | Description |
|---|---|
| 400 | 1: Invalid assetId\n4: Invalid Cursor. |
| 403 | 7: User is unauthorized. |