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 — toolbox-service/v1
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 | true | The asset type to search within. |
| 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. |
| includeTopCharts | query | false | |
| 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. |
| 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. |
[
{
"name": "searchCategoryType",
"in": "query",
"description": "The asset type to search within.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SearchCategoryType"
}
],
"description": "This represents a \"subset\" of Toolbox.Service.CategoryType options and represent the full set\r\nof \"categories\" (or asset types) that can be searched upon from the toolbox search API.",
"x-enumNames": [
"Audio",
"Model",
"Decal",
"Plugin",
"MeshPart",
"Video",
"FontFamily"
],
"x-enum-varnames": [
"Audio",
"Model",
"Decal",
"Plugin",
"MeshPart",
"Video",
"FontFamily"
],
"x-enum-descriptions": [
"Audio",
"Model",
"Decal",
"Plugin",
"MeshPart",
"Video",
"FontFamily"
]
}
},
{
"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": {
"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": {
"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"
],
"x-enum-descriptions": [
"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"
],
"x-enum-descriptions": [
"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": "includeTopCharts",
"in": "query",
"schema": {
"type": "boolean",
"default": false,
"nullable": true
}
},
{
"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",
"default": 0
}
},
{
"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": "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\r\nview will result in faster response times and higher reliability.",
"default": "Core",
"x-enumNames": [
"IDs",
"Core",
"Full"
],
"x-enum-varnames": [
"IDs",
"Core",
"Full"
],
"x-enum-descriptions": [
"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"
],
"x-enum-descriptions": [
"None",
"Current",
"Week",
"Month",
"Year"
]
}
}
] Responses
| Status | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request |
| 429 | Too Many Requests |
| 500 | Server Error |
{
"200": {
"description": "Success",
"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": "Server Error"
}
} Authentication
{
"security": [
{
"roblox-legacy-cookie": []
},
{
"roblox-api-key": []
}
],
"securitySchemes": {
"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. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
"in": "cookie",
"name": ".ROBLOSECURITY"
},
"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.",
"in": "header",
"name": "x-api-key"
}
}
} Related Schemas
Complete Operation Definition
{
"tags": [
"ToolboxService"
],
"summary": "Search Creator Store Assets",
"description": "Search Creator Store for assets.",
"parameters": [
{
"name": "searchCategoryType",
"in": "query",
"description": "The asset type to search within.",
"required": true,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/SearchCategoryType"
}
],
"description": "This represents a \"subset\" of Toolbox.Service.CategoryType options and represent the full set\r\nof \"categories\" (or asset types) that can be searched upon from the toolbox search API.",
"x-enumNames": [
"Audio",
"Model",
"Decal",
"Plugin",
"MeshPart",
"Video",
"FontFamily"
],
"x-enum-varnames": [
"Audio",
"Model",
"Decal",
"Plugin",
"MeshPart",
"Video",
"FontFamily"
],
"x-enum-descriptions": [
"Audio",
"Model",
"Decal",
"Plugin",
"MeshPart",
"Video",
"FontFamily"
]
}
},
{
"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": {
"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": {
"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"
],
"x-enum-descriptions": [
"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"
],
"x-enum-descriptions": [
"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": "includeTopCharts",
"in": "query",
"schema": {
"type": "boolean",
"default": false,
"nullable": true
}
},
{
"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",
"default": 0
}
},
{
"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": "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\r\nview will result in faster response times and higher reliability.",
"default": "Core",
"x-enumNames": [
"IDs",
"Core",
"Full"
],
"x-enum-varnames": [
"IDs",
"Core",
"Full"
],
"x-enum-descriptions": [
"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"
],
"x-enum-descriptions": [
"None",
"Current",
"Week",
"Month",
"Year"
]
}
}
],
"responses": {
"200": {
"description": "Success",
"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": "Server Error"
}
},
"x-roblox-engine-usability": {
"apiKeyWithHttpService": true
},
"x-roblox-stability": "BETA",
"x-roblox-rate-limits": {
"perApiKeyOwner": {
"period": "MINUTE",
"maxInPeriod": 1000
}
},
"x-roblox-scopes": [
{
"name": "creator-store-product:read"
}
],
"security": [
{
"roblox-legacy-cookie": []
},
{
"roblox-api-key": []
}
]
}