Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
GET /toolbox-service/v2/assets:search — openapi
Search Creator Store Assets
Search Creator Store for assets.
Endpoint
Method: GET
Path: /toolbox-service/v2/assets:search
Servers:
https://apis.roblox.com
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
| searchCategoryType | query | false | The asset type to search within. Optional when categoryPath is present in the request; otherwise required. |
| query | query | false | The search terms used to filter the results. |
| modelSubTypes | query | false | When searching for models, the subtypes associated with the search results. |
| excludedModelSubTypes | query | false | When searching for models, the subtypes not associated with the search results. |
| creator | query | false | Deprecated: Please refer to the 'userId' and 'groupId' properties instead. The creator type and ID. E.g. "user/123" or "group/456" |
| userId | query | false | The User ID of the creator. Only one of 'userId' and 'groupId' can be present in a query. |
| groupId | query | false | The Group ID of the creator. Only one of 'userId' and 'groupId' can be present in a query. |
| pageToken | query | false | The identifier for the desired search results page. Only one of 'pageNumber' and 'pageToken' can be present in a query. |
| pageNumber | query | false | The page number to retrieve, starting from 0. Only one of 'pageNumber' and 'pageToken' can be present in a query. |
| maxPageSize | query | false | The number of assets to be returned. Cannot be larger than 100. |
| sortDirection | query | false | The sort direction of the search results. |
| sortCategory | query | false | The category to sort the search results by. |
| audioMinDurationSeconds | query | false | When searching for audio, the minimum duration of the audio assets. If included, must be greater than or equal to 0. |
| audioMaxDurationSeconds | query | false | When searching for audio, the maximum duration of the audio assets. If included, must be greater than or equal to 0. |
| audioArtist | query | false | When searching for audio, the artist name of the audio assets. |
| audioAlbum | query | false | When searching for audio, the album name of the audio assets. |
| audioTypes | query | false | When searching for audio, the type of the audio assets. |
| includedInstanceTypes | query | false | When searching for models, this filters that the following Instance types are included in the model. |
| includeOnlyVerifiedCreators | query | false | Whether the results should only include assets created by verified creators. |
| minPriceCents | query | false | The minimum price of the asset in cents. If included, must be greater than or equal to 0. |
| maxPriceCents | query | false | The maximum price of the asset in cents. If included, must be greater than or equal to 0. |
| facets | query | false | Additional keywords to query by. |
| tags | query | false | The tags used to filter the results. |
| categoryPath | query | false | |
| searchView | query | false | Indicates which fields will be populated in the response. |
| musicChartType | query | false | Indicates which music charts to filter from. |
| swimlane | query | false | Indicates which swimlane to filter from. |
[
{
"name": "searchCategoryType",
"in": "query",
"description": "The asset type to search within. Optional when categoryPath is present in the request; otherwise required.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SearchCategoryType"
}
],
"nullable": true
}
},
{
"name": "query",
"in": "query",
"description": "The search terms used to filter the results.",
"schema": {
"type": "string"
}
},
{
"name": "modelSubTypes",
"in": "query",
"description": "When searching for models, the subtypes associated with the search results.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ModelSubType"
},
"nullable": true
}
},
{
"name": "excludedModelSubTypes",
"in": "query",
"description": "When searching for models, the subtypes not associated with the search results.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ModelSubType"
},
"nullable": true
}
},
{
"name": "creator",
"in": "query",
"description": "Deprecated: Please refer to the 'userId' and 'groupId' properties instead. The creator type and ID. E.g. \"user/123\" or \"group/456\"",
"schema": {
"pattern": "^(user|group)/\\d+$",
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "The User ID of the creator. Only one of 'userId' and 'groupId' can be present in a query.",
"schema": {
"maximum": 9223372036854776000,
"minimum": 1,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "groupId",
"in": "query",
"description": "The Group ID of the creator. Only one of 'userId' and 'groupId' can be present in a query.",
"schema": {
"maximum": 9223372036854776000,
"minimum": 1,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "pageToken",
"in": "query",
"description": "The identifier for the desired search results page. Only one of 'pageNumber' and 'pageToken' can be present in a query.",
"schema": {
"type": "string"
}
},
{
"name": "pageNumber",
"in": "query",
"description": "The page number to retrieve, starting from 0. Only one of 'pageNumber' and 'pageToken' can be present in a query.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"nullable": true
}
},
{
"name": "maxPageSize",
"in": "query",
"description": "The number of assets to be returned. Cannot be larger than 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 25
}
},
{
"name": "sortDirection",
"in": "query",
"description": "The sort direction of the search results.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SortDirection"
}
],
"description": "Represents the direction in which to sort the results",
"default": "None",
"x-enumNames": [
"None",
"Ascending",
"Descending"
],
"x-enum-varnames": [
"None",
"Ascending",
"Descending"
]
}
},
{
"name": "sortCategory",
"in": "query",
"description": "The category to sort the search results by.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SortCategory"
}
],
"description": "The category to sort the search results by.",
"default": "Relevance",
"x-enumNames": [
"Relevance",
"Trending",
"Top",
"AudioDuration",
"CreateTime",
"UpdatedTime",
"Ratings"
],
"x-enum-varnames": [
"Relevance",
"Trending",
"Top",
"AudioDuration",
"CreateTime",
"UpdatedTime",
"Ratings"
]
}
},
{
"name": "audioMinDurationSeconds",
"in": "query",
"description": "When searching for audio, the minimum duration of the audio assets. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "audioMaxDurationSeconds",
"in": "query",
"description": "When searching for audio, the maximum duration of the audio assets. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 1,
"type": "integer",
"format": "int32",
"nullable": true
}
},
{
"name": "audioArtist",
"in": "query",
"description": "When searching for audio, the artist name of the audio assets.",
"schema": {
"type": "string"
}
},
{
"name": "audioAlbum",
"in": "query",
"description": "When searching for audio, the album name of the audio assets.",
"schema": {
"type": "string"
}
},
{
"name": "audioTypes",
"in": "query",
"description": "When searching for audio, the type of the audio assets.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SearchAudioTypeModel"
},
"nullable": true
}
},
{
"name": "includedInstanceTypes",
"in": "query",
"description": "When searching for models, this filters that the following [Instance](https://create.roblox.com/docs/reference/engine/classes/Instance) types are included in the model.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ModelInstanceType"
},
"nullable": true
}
},
{
"name": "includeOnlyVerifiedCreators",
"in": "query",
"description": "Whether the results should only include assets created by verified creators.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "minPriceCents",
"in": "query",
"description": "The minimum price of the asset in cents. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "maxPriceCents",
"in": "query",
"description": "The maximum price of the asset in cents. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "facets",
"in": "query",
"description": "Additional keywords to query by.",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
{
"name": "tags",
"in": "query",
"description": "The tags used to filter the results.",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
{
"name": "categoryPath",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "searchView",
"in": "query",
"description": "Indicates which fields will be populated in the response.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SearchView"
}
],
"description": "This view controls which fields are populated in the search response. A lighter\nview will result in faster response times and higher reliability.",
"default": "Core",
"x-enumNames": [
"IDs",
"Core",
"Full"
],
"x-enum-varnames": [
"IDs",
"Core",
"Full"
]
}
},
{
"name": "musicChartType",
"in": "query",
"description": "Indicates which music charts to filter from.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MusicChartType"
}
],
"description": "Represents which music chart to pull entries from, if any",
"default": "None",
"x-enumNames": [
"None",
"Current",
"Week",
"Month",
"Year"
],
"x-enum-varnames": [
"None",
"Current",
"Week",
"Month",
"Year"
]
}
},
{
"name": "swimlane",
"in": "query",
"description": "Indicates which swimlane to filter from.",
"schema": {
"type": "string"
}
}
] Responses
| Status | Description |
|---|---|
| 200 | OK |
| 400 | Bad Request |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchCreatorStoreAssetsResponse"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/ProblemDetails"
},
{
"$ref": "#/components/schemas/HttpValidationProblemDetails"
}
],
"nullable": true
}
}
}
},
"429": {
"description": "Too Many Requests",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/ProblemDetails"
},
{
"$ref": "#/components/schemas/HttpValidationProblemDetails"
}
],
"nullable": true
}
}
}
},
"500": {
"description": "Internal Server Error"
}
} Authentication
{
"security": [
{},
{
"roblox-legacy-cookie": []
},
{
"roblox-api-key": []
},
{
"roblox-oauth2": [
"creator-store-product:read"
]
}
],
"securitySchemes": {
"roblox-api-key": {
"type": "apiKey",
"description": "A configurable key that allows granular access to Roblox resources. See https://create.roblox.com/docs/cloud/auth/api-keys for more information.",
"name": "x-api-key",
"in": "header"
},
"roblox-legacy-cookie": {
"type": "apiKey",
"description": "A browser cookie that represents the identity of a Roblox user. DO NOT SHARE THIS. Sharing this will allow someone to log in as you and to steal your Robux and items. We do not recommend using cookies to call endpoints. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
"in": "cookie",
"name": ".ROBLOSECURITY"
},
"roblox-oauth2": {
"type": "oauth2",
"description": "Build or authorize apps to access Roblox resources. See https://create.roblox.com/docs/cloud/auth/oauth2-overview for more information.",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://apis.roblox.com/oauth/v1/authorize",
"tokenUrl": "https://apis.roblox.com/oauth/v1/token",
"refreshUrl": "https://apis.roblox.com/oauth/v1/token",
"scopes": {}
}
}
}
}
} Related Schemas
Complete Operation Definition
{
"tags": [
"Assets",
"Creator Store"
],
"summary": "Search Creator Store Assets",
"description": "Search Creator Store for assets.",
"operationId": "Toolbox_SearchCreatorStoreAssetsDeprecated",
"parameters": [
{
"name": "searchCategoryType",
"in": "query",
"description": "The asset type to search within. Optional when categoryPath is present in the request; otherwise required.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SearchCategoryType"
}
],
"nullable": true
}
},
{
"name": "query",
"in": "query",
"description": "The search terms used to filter the results.",
"schema": {
"type": "string"
}
},
{
"name": "modelSubTypes",
"in": "query",
"description": "When searching for models, the subtypes associated with the search results.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ModelSubType"
},
"nullable": true
}
},
{
"name": "excludedModelSubTypes",
"in": "query",
"description": "When searching for models, the subtypes not associated with the search results.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ModelSubType"
},
"nullable": true
}
},
{
"name": "creator",
"in": "query",
"description": "Deprecated: Please refer to the 'userId' and 'groupId' properties instead. The creator type and ID. E.g. \"user/123\" or \"group/456\"",
"schema": {
"pattern": "^(user|group)/\\d+$",
"type": "string"
}
},
{
"name": "userId",
"in": "query",
"description": "The User ID of the creator. Only one of 'userId' and 'groupId' can be present in a query.",
"schema": {
"maximum": 9223372036854776000,
"minimum": 1,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "groupId",
"in": "query",
"description": "The Group ID of the creator. Only one of 'userId' and 'groupId' can be present in a query.",
"schema": {
"maximum": 9223372036854776000,
"minimum": 1,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "pageToken",
"in": "query",
"description": "The identifier for the desired search results page. Only one of 'pageNumber' and 'pageToken' can be present in a query.",
"schema": {
"type": "string"
}
},
{
"name": "pageNumber",
"in": "query",
"description": "The page number to retrieve, starting from 0. Only one of 'pageNumber' and 'pageToken' can be present in a query.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"nullable": true
}
},
{
"name": "maxPageSize",
"in": "query",
"description": "The number of assets to be returned. Cannot be larger than 100.",
"schema": {
"maximum": 100,
"minimum": 1,
"type": "integer",
"format": "int32",
"default": 25
}
},
{
"name": "sortDirection",
"in": "query",
"description": "The sort direction of the search results.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SortDirection"
}
],
"description": "Represents the direction in which to sort the results",
"default": "None",
"x-enumNames": [
"None",
"Ascending",
"Descending"
],
"x-enum-varnames": [
"None",
"Ascending",
"Descending"
]
}
},
{
"name": "sortCategory",
"in": "query",
"description": "The category to sort the search results by.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SortCategory"
}
],
"description": "The category to sort the search results by.",
"default": "Relevance",
"x-enumNames": [
"Relevance",
"Trending",
"Top",
"AudioDuration",
"CreateTime",
"UpdatedTime",
"Ratings"
],
"x-enum-varnames": [
"Relevance",
"Trending",
"Top",
"AudioDuration",
"CreateTime",
"UpdatedTime",
"Ratings"
]
}
},
{
"name": "audioMinDurationSeconds",
"in": "query",
"description": "When searching for audio, the minimum duration of the audio assets. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "audioMaxDurationSeconds",
"in": "query",
"description": "When searching for audio, the maximum duration of the audio assets. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 1,
"type": "integer",
"format": "int32",
"nullable": true
}
},
{
"name": "audioArtist",
"in": "query",
"description": "When searching for audio, the artist name of the audio assets.",
"schema": {
"type": "string"
}
},
{
"name": "audioAlbum",
"in": "query",
"description": "When searching for audio, the album name of the audio assets.",
"schema": {
"type": "string"
}
},
{
"name": "audioTypes",
"in": "query",
"description": "When searching for audio, the type of the audio assets.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SearchAudioTypeModel"
},
"nullable": true
}
},
{
"name": "includedInstanceTypes",
"in": "query",
"description": "When searching for models, this filters that the following [Instance](https://create.roblox.com/docs/reference/engine/classes/Instance) types are included in the model.",
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ModelInstanceType"
},
"nullable": true
}
},
{
"name": "includeOnlyVerifiedCreators",
"in": "query",
"description": "Whether the results should only include assets created by verified creators.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "minPriceCents",
"in": "query",
"description": "The minimum price of the asset in cents. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "maxPriceCents",
"in": "query",
"description": "The maximum price of the asset in cents. If included, must be greater than or equal to 0.",
"schema": {
"maximum": 2147483647,
"minimum": 0,
"type": "integer",
"format": "int64",
"nullable": true
}
},
{
"name": "facets",
"in": "query",
"description": "Additional keywords to query by.",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
{
"name": "tags",
"in": "query",
"description": "The tags used to filter the results.",
"schema": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
}
},
{
"name": "categoryPath",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "searchView",
"in": "query",
"description": "Indicates which fields will be populated in the response.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SearchView"
}
],
"description": "This view controls which fields are populated in the search response. A lighter\nview will result in faster response times and higher reliability.",
"default": "Core",
"x-enumNames": [
"IDs",
"Core",
"Full"
],
"x-enum-varnames": [
"IDs",
"Core",
"Full"
]
}
},
{
"name": "musicChartType",
"in": "query",
"description": "Indicates which music charts to filter from.",
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/MusicChartType"
}
],
"description": "Represents which music chart to pull entries from, if any",
"default": "None",
"x-enumNames": [
"None",
"Current",
"Week",
"Month",
"Year"
],
"x-enum-varnames": [
"None",
"Current",
"Week",
"Month",
"Year"
]
}
},
{
"name": "swimlane",
"in": "query",
"description": "Indicates which swimlane to filter from.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchCreatorStoreAssetsResponse"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/ProblemDetails"
},
{
"$ref": "#/components/schemas/HttpValidationProblemDetails"
}
],
"nullable": true
}
}
}
},
"429": {
"description": "Too Many Requests",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/ProblemDetails"
},
{
"$ref": "#/components/schemas/HttpValidationProblemDetails"
}
],
"nullable": true
}
}
}
},
"500": {
"description": "Internal Server Error"
}
},
"x-roblox-recommended-alternatives": [
{
"url": "https://apis.roblox.com/toolbox/v2/assets:search",
"httpMethod": "POST",
"description": "This endpoint is being deprecated in favor of using POST which has the same functionality but with better structured data & support for image-based search."
}
],
"x-roblox-engine-usability": {
"apiKeyWithHttpService": true
},
"x-roblox-stability": "BETA",
"x-roblox-rate-limits": {
"perApiKeyOwner": {
"period": "MINUTE",
"maxInPeriod": 1000
},
"perOauth2Authorization": {
"period": "MINUTE",
"maxInPeriod": 1000
}
},
"x-roblox-scopes": [
{
"name": "creator-store-product:read"
}
],
"security": [
{},
{
"roblox-legacy-cookie": []
},
{
"roblox-api-key": []
},
{
"roblox-oauth2": [
"creator-store-product:read"
]
}
],
"externalDocs": {
"url": "https://create.roblox.com/docs/cloud/reference/features/assets#Toolbox_SearchCreatorStoreAssetsDeprecated"
}
}