External Catalog Queries

You can search Roblox's assets outside Studio by accessing the external catalog API. Use the Creator Store API to query Studio assets, such as meshes, models, and audio, and the Marketplace API to query avatar assets on the Marketplace.

Each API requires a URL and custom search parameters for that specific catalog. If both URL and parameters are valid, the API returns a JSON format with the results of your search.

Creator Store API

You can query items from the Creator Store catalog using the following URL: https://search.roblox.com/catalog/json?[params]

You can replace [params] with the appropriate query parameters to customize your search.

Query Parameters

You can specify search parameters by appending a series of parameters and values to the URL, each separated by a &.

Use the following parameters to query the Creator Store catalog:

ParameterTypeOptions and Values
Categorybyte6 = Models
7 = Plugins
8 = Decals
9 = Audio
10 = Meshes
CreatorIDlongSpecifies the UserID to filter in the search. If you'd like to find group-created items, enter the group agent's ID, not the group ID.
CurrencyTypebyte0 = All (Default)
3 = CustomRobux
5 = Free

Use CustomRobux with custom PxMax and PxMin values.
GenresbyteSpecifies the genre for the search. The recommended approach to filtering on genres is to match the URL of a catalog page.
1 = TownAndCity
2 = Medieval
3 = SciFi
4 = Fighting
5 = Horror
6 = Naval
7 = Adventure
8 = Sports
9 = Comedy
10 = Western
11 = Military
13 = Building
14 = FPS
15 = RPG
KeywordstringStandard keyword search.
PageNumberintSpecifies a page number in conjunction with ResultsPerPage to page through results.
PxMaxintThe maximum price in Robux of items in the query.
PxMinintThe minimum price in Robux of items in the query.
ResultsPerPageintBy default this is the same as what's currently shown on each catalog browse page. You can't specify a value larger than this maximum amount.
SortAggregationbyte0 = PastDay
1 = PastWeek
2 = PastMonth
3 = AllTime
SortTypebyte0 = Relevance (Default)
1 = MostFavorited
2 = Bestselling
3 = RecentlyUpdated
4 = PriceLowToHigh
5 = PriceHighToLow

The following URL will search for 10 items in the "Models" subcategory, sorted by most recently updated.

https://search.roblox.com/catalog/json?Category=6&SortType=3&ResultsPerPage=10

Response Fields

API responses return in a JSON format. The response provides asset details with the following primary fields:

FieldDescription
AssetTypeIDAn asset type value.
3 = Audio
4 = Mesh
5 = Lua
10 = Model
13 = Decal
21 = Badge
24 = Animation
34 = GamePass
38 = Plugin
40 = MeshPart
BestPriceEmpty except for limited edition items, in which case it will return the best price for the item.
ContentRatingTypeID0 = No content rating type
1 = 13+ rated item
CreatedDateDate the item was created in UTC format.
MinimumMembershipLevel1 = Any membership
4 = Roblox Premium only
NameItem name in UTF-8 format.
PriceViewThis is mostly used by the website to display prices. The options are:
0 = Free
1 = Collectible
2 = HasPrice
3 = NotForSale
PrivateSalesEmpty except for limited edition items, in which case it will return the number of private sellers.
UpdatedDateDate the item was last updated in UTC format.

The following is an example of expected return output for a single item:


{
"AssetId": 3374795585,
"Name": "Rat",
"Description": "",
"AbsoluteUrl": "https://www.roblox.com/catalog/3374795585/Rat",
"Price": "",
"Updated": "8 months ago",
"Favorited": "80 times",
"Sales": "1,613",
"Remaining": "",
"Creator": "ROBLOX",
"CreatorAbsoluteUrl": "https://www.roblox.com/users/1/profile",
"PrivateSales": "",
"PriceView": 0,
"BestPrice": "",
"ContentRatingTypeID": 0,
"IsServerSideThumbnailLookupInCatalogEnabled": true,
"AudioUrl": null,
"IsLargeItem": false,
"IsThumbnailFinal": true,
"IsThumbnailUnapproved": false,
"ThumbnailUrl": "https://t1.rbxcdn.com/745a4be8c2366db2e55d0a67678434dc",
"BcOverlayUrl": null,
"LimitedOverlayUrl": null,
"DeadlineOverlayUrl": null,
"LimitedAltText": null,
"NewOverlayUrl": null,
"SaleOverlayUrl": null,
"IosOverlayUrl": null,
"XboxOverlayUrl": null,
"GooglePlayOverlayUrl": null,
"AmazonOverlayUrl": null,
"IsTransparentBackground": false,
"IsNewRobuxIconEnabled": true,
"AssetTypeID": 10,
"CreatorID": 1,
"CreatedDate": "/Date(1561635090927)/",
"UpdatedDate": "/Date(1562003916210)/",
"IsForSale": false,
"IsPublicDomain": true,
"IsLimited": false,
"IsLimitedUnique": false,
"MinimumMembershipLevel": 0,
"OffSaleDeadline": null,
"ProductId": 586905093
}

Marketplace API

You can query avatar items from the Marketplace using the following URL: https://catalog.roblox.com/v1/search/items/details?[params]

You can replace [params] with the appropriate query parameters to customize your search.

Query Parameters

You can specify search parameters by appending a series of parameters and values to the URL, each separated by a &.

Use the following parameters to query the Marketplace:

ParameterTypeOptions and Values
Categorybyte0 = Featured
1 = All
2 = Collectibles
3 = Clothing
4 = BodyParts
5 = Gear
11 = Accessories
12 = AvatarAnimations
13 = CommunityCreations
CreatorNamestringSearch by creator name. If Enum.CreatorType is not provided, search is for users only.
CreatorTargetIdlongThe user or group ID depending on the CreatorType provided.
CreatorTypebyte1 = User or 2 = Group.
CursorstringEach search response contains a nextPageCursor if there is a next page and previousPageCursor if there is a previous page. Pass either of these values in the Cursor parameter of your next query to get the next or previous page of results. The cursor is valid if the other query parameters remain the same.
GenresbyteSpecifies the genre for the search. The recommended approach to filtering on genres is to match the URL of a catalog page.
1 = TownAndCity
2 = Medieval
3 = SciFi
4 = Fighting
5 = Horror
6 = Naval
7 = Adventure
8 = Sports
9 = Comedy
10 = Western
11 = Military
13 = Building
14 = FPS
15 = RPG
KeywordstringStandard keyword search.
LimitintNumber of results to return. Values are currently limited to 10, 28, and 30.
MaxPriceintThe maximum price in Robux of items in the query.
MinPriceintThe minimum price in Robux of items in the query.
SortAggregationbyte1 = PastDay
3 = PastWeek
4 = PastMonth
5 = AllTime
SortTypebyte0 = Relevance (Default)
1 = Favorited
2 = Sales
3 = Updated
4 = PriceAsc
5 = PriceDesc
Subcategorybyte

0 = Featured
1 = All
2 = Collectibles
3 = Clothing
4 = BodyParts
5 = Gear
9 = Hats
10 = Faces
12 = Shirts
13 = TShirts
14 = Pants
15 = Heads
19 = Accessories
20 = HairAccessories
21 = FaceAccessories
22 = NeckAccessories
23 = ShoulderAccessories
24 = FrontAccessories
25 = BackAccessories
26 = WaistAccessories
27 = AvatarAnimations
37 = Bundles
38 = AnimationBundles
39 = EmoteAnimations
40 = CommunityCreations
41 = Melee
42 = Ranged
43 = Explosive
44 = PowerUp
45 = Navigation
46 = Musical
47 = Social
48 = Building
49 = Transport
54 = HeadAccessories
55 = ClassicTShirts
56 = ClassicShirts
57 = ClassicPants
58 = TShirtAccessories
59 = ShirtAccessories
60 = PantsAccessories
61 = JacketAccessories
62 = SweaterAccessories
63 = ShortsAccessories
64 = ShoesBundles
65 = DressSkirtAccessories
66 = DynamicHeads

The following URL will search for the first 10 "Gear" items in "Accessories" sorted by all-time ("SortAggregation") and relevance ("SortType") created by Roblox ("CreatorTargetId"):

https://catalog.roblox.com/v1/search/items/details?Category=11&Subcategory=5&CreatorTargetId=1&SortType=0&SortAggregation=5&Limit=10

Response Fields

API responses return in a JSON format. The response provides asset details in the data key using the following fields:

FieldDescription
assetTypeOne of the following asset type values (only returned if the item is an asset).
2 = T-Shirt
8 = Hat
11 = Shirt
12 = Pants
17 = Head
18 = Face
19 = Gear
25 = Arms
26 = Legs
27 = Torso
28 = RightArm
29 = LeftArm
30 = LeftLeg
31 = RightLeg
41 = HairAccessory
42 = FaceAccessory
43 = NeckAccessory
44 = ShoulderAccessory
45 = FrontAccessory
46 = BackAccessory
47 = WaistAccessory
48 = ClimbAnimation
49 = DeathAnimation
50 = FallAnimation
51 = IdleAnimation
52 = JumpAnimation
53 = RunAnimation
54 = SwimAnimation
55 = WalkAnimation
56 = PoseAnimation
61 = EmoteAnimation
bundleTypeThe bundle type ID (only returned if the item is a bundle). Possible values are BodyParts and AvatarAnimations.
creatorNameThe creator's name.
creatorTargetIdThe creator's ID.
creatorTypeThe item's creator type.
descriptionThe item description.
favoriteCountThe favorite count of an item.
genresList of the item's genres. Possible values include All, Tutorial, Scary, TownAndCity, War, Funny, Fantasy, Adventure, SciFi, Pirate, FPS, RPG, Sports, Ninja, and WildWest.
idThe ID of the item.
itemRestrictionsList of the item's restrictions. Possible values include ThirteenPlus, LimitedUnique, Limited, and Rthro.
itemStatusList of the item's status flags. Possible values include New, Sale, XboxExclusive, AmazonExclusive, GooglePlayExclusive, IosExclusive, and SaleTimer.
itemTypeThe item type. Possible values are Asset or Bundle.
lowestPriceThe lowest reseller price of the item (only returned if the item is resellable).
nameThe item name.
priceThe listing price of the item (current price may differ if the item is resellable).
priceStatusThe price status of an item that is not on sale. Possible values are Free, OffSale, or NoResellers.
purchaseCountThe purchase count of an item.
unitsAvailableForConsumptionThe unit available for consumption of a limited unique item.

The following is an example of expected return output for a single item:


{
"keyword": null,
"previousPageCursor": null,
"nextPageCursor": "2_1_c541d05046b5c1c78a5d386b5e302243",
"data": [
{
"id":527373900,
"itemType":
"Asset",
"assetType":42,
"name":"Restless Souls Bandana",
"description":"This bandana won't help you blend in with ghosts, but at least you'll be stylish.",
"productId":41270974,
"genres":[
"Scary",
"Adventure"
],
"itemStatus":[],
"itemRestrictions":[],
"creatorType":"User",
"creatorTargetId":1,
"creatorName":"Roblox",
"price":300,
"favoriteCount":15943,
"offSaleDeadline":null
}
]
}