rojo/.cursor/rules/roblox/reference/cloud/toolbox-service/v1.json
2026-02-02 12:08:47 -06:00

2469 lines
75 KiB
JSON

{
"openapi": "3.0.1",
"info": {
"title": "Toolbox.Service",
"version": "1.0",
"x-roblox-extensions-version": "1.0.0"
},
"paths": {
"/toolbox-service/v2/assets:search": {
"get": {
"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": []
}
]
}
},
"/toolbox-service/v2/assets/{id}": {
"get": {
"tags": ["ToolboxService"],
"summary": "Get Creator Store Asset Details",
"description": "Get details for a single Creator Store asset.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The asset ID to retrieve details for.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreatorStoreAsset"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/ProblemDetails"
},
{
"$ref": "#/components/schemas/HttpValidationProblemDetails"
}
],
"nullable": true
}
}
}
},
"404": {
"description": "Not Found",
"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
}
}
}
}
},
"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": []
}
]
}
}
},
"components": {
"schemas": {
"Asset": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The unique identifier of the asset.",
"format": "int64"
},
"name": {
"type": "string",
"description": "The name of the asset.",
"nullable": true
},
"description": {
"type": "string",
"description": "The description of the asset.",
"nullable": true
},
"assetTypeId": {
"type": "integer",
"description": "The type that the asset belongs to.",
"format": "int32",
"nullable": true
},
"socialLinks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SocialLinkModel"
},
"description": "The social links associated with the asset.",
"nullable": true
},
"previewAssets": {
"allOf": [
{
"$ref": "#/components/schemas/PreviewAssetsModel"
}
],
"description": "The asset's preview asset ids grouped by asset type.",
"nullable": true
},
"createTime": {
"type": "string",
"description": "The time the asset was created.",
"format": "date-time",
"nullable": true
},
"updateTime": {
"type": "string",
"description": "The time the asset was last updated.",
"format": "date-time",
"nullable": true
},
"categoryPath": {
"type": "string",
"description": "Category Path of the asset, if it exists.\r\ne.g. \"3d__characters\"",
"nullable": true
}
},
"additionalProperties": false,
"description": "Representation of an asset.",
"nullable": true
},
"AssetSubType": {
"enum": ["Invalid", "Ad", "MaterialPack", "Package"],
"type": "string",
"x-enumNames": ["Invalid", "Ad", "MaterialPack", "Package"],
"x-enum-varnames": ["Invalid", "Ad", "MaterialPack", "Package"],
"x-enum-descriptions": ["Invalid", "Ad", "MaterialPack", "Package"]
},
"Audio": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Asset"
}
],
"properties": {
"durationSeconds": {
"type": "integer",
"description": "The duration of the audio file in seconds.",
"format": "int32"
},
"audioType": {
"allOf": [
{
"$ref": "#/components/schemas/SearchAudioTypeModel"
}
],
"description": "The type of audio (Music or SoundEffect).",
"deprecated": true,
"x-enumNames": ["Music", "SoundEffect"],
"x-enum-varnames": ["Music", "SoundEffect"],
"x-enum-descriptions": ["Music", "SoundEffect"]
},
"artist": {
"type": "string",
"description": "The audio artist.",
"nullable": true
},
"title": {
"type": "string",
"description": "The audio title.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Representation of an audio asset.",
"nullable": true
},
"AudioType": {
"enum": [0, 1, 2],
"type": "integer",
"format": "int32",
"x-enumNames": ["Music", "SoundEffect", "Unknown"],
"x-enum-varnames": ["Music", "SoundEffect", "Unknown"],
"x-enum-descriptions": ["Music", "SoundEffect", "Unknown"]
},
"CorrectionState": {
"enum": [0, 1, 2],
"type": "integer",
"description": "Determines the state of the Toolbox response depending on spell checking status and the input arguments.",
"format": "int32",
"x-enumNames": [
"NoCorrection",
"CorrectionAvailable",
"CorrectionAccepted"
],
"x-enum-varnames": [
"NoCorrection",
"CorrectionAvailable",
"CorrectionAccepted"
],
"x-enum-descriptions": [
"NoCorrection",
"CorrectionAvailable",
"CorrectionAccepted"
]
},
"CreatorModelV2": {
"type": "object",
"properties": {
"creator": {
"type": "string",
"description": "Deprecated: Please refer to the 'userId' and 'groupId' properties instead.\r\nThe creator type and ID. E.g. user/123 or group/456.",
"nullable": true,
"deprecated": true
},
"userId": {
"type": "integer",
"description": "The User ID of the creator. Required if the asset is individual-user-owned.",
"format": "int64",
"nullable": true
},
"groupId": {
"type": "integer",
"description": "The Group ID. Required if the asset is group-owned.",
"format": "int64",
"nullable": true
},
"name": {
"type": "string",
"description": "The creator's name.",
"nullable": true
},
"verified": {
"type": "boolean",
"description": "Whether the creator is verified.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Model representing a creator.",
"nullable": true
},
"CreatorStoreAsset": {
"type": "object",
"properties": {
"voting": {
"allOf": [
{
"$ref": "#/components/schemas/VotingModel"
}
],
"description": "The asset's voting details.",
"nullable": true
},
"creator": {
"allOf": [
{
"$ref": "#/components/schemas/CreatorModelV2"
}
],
"description": "The asset creator's details.",
"nullable": true
},
"creatorStoreProduct": {
"allOf": [
{
"$ref": "#/components/schemas/CreatorStoreProduct"
}
],
"description": "The asset's product details.",
"nullable": true
},
"asset": {
"oneOf": [
{
"$ref": "#/components/schemas/Asset"
},
{
"$ref": "#/components/schemas/Audio"
},
{
"$ref": "#/components/schemas/Decal"
},
{
"$ref": "#/components/schemas/MeshPart"
},
{
"$ref": "#/components/schemas/Model"
},
{
"$ref": "#/components/schemas/Music"
},
{
"$ref": "#/components/schemas/Plugin"
},
{
"$ref": "#/components/schemas/SoundEffect"
}
],
"description": "The asset information.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Representation of a creator store asset.",
"nullable": true
},
"CreatorStoreProduct": {
"type": "object",
"properties": {
"purchasePrice": {
"allOf": [
{
"$ref": "#/components/schemas/Money"
}
],
"description": "The price of the asset, including the currency code.",
"nullable": true
},
"purchasable": {
"type": "boolean",
"description": "Whether or not the asset can be purchased in the Creator Store."
}
},
"additionalProperties": false,
"description": "The asset's creator store product information.",
"nullable": true
},
"CreatorType": {
"enum": [1, 2, 3],
"type": "integer",
"description": "Creator Type for querying",
"format": "int32",
"x-enumNames": ["User", "Group", "Invalid"],
"x-enum-varnames": ["User", "Group", "Invalid"],
"x-enum-descriptions": ["User", "Group", "Invalid"]
},
"Decal": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Asset"
}
],
"properties": {
"textureId": {
"type": "integer",
"description": "The texture id of the decal.",
"format": "int64"
}
},
"additionalProperties": false,
"description": "Representation of a decal asset.",
"nullable": true
},
"Decimal": {
"type": "object",
"properties": {
"significand": {
"type": "integer",
"format": "int64"
},
"exponent": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false,
"nullable": true
},
"FilterSortRange": {
"type": "object",
"properties": {
"ascending": {
"type": "boolean"
},
"minA": {
"type": "integer",
"format": "int64",
"nullable": true
},
"minB": {
"type": "integer",
"format": "int64",
"nullable": true
},
"maxA": {
"type": "integer",
"format": "int64",
"nullable": true
},
"maxB": {
"type": "integer",
"format": "int64",
"nullable": true
},
"keyword": {
"type": "string",
"nullable": true
},
"value": {
"type": "number",
"format": "double"
},
"byteValue": {
"type": "integer",
"format": "int32"
},
"startDateTime": {
"type": "string",
"format": "date-time"
},
"endDateTime": {
"type": "string",
"format": "date-time"
}
},
"additionalProperties": false,
"nullable": true
},
"HomeAssetsResponse": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/ToolboxItemApiPageResponse"
}
],
"properties": {
"totalResults": {
"type": "integer",
"description": "Gets or sets total results",
"format": "int64"
},
"searchDebugInfo": {
"allOf": [
{
"$ref": "#/components/schemas/ISearchDebugInfo"
}
],
"description": "Gets or sets the search infra debug info",
"nullable": true
}
},
"additionalProperties": false,
"description": "Response from the HomeController's Assets endpoints",
"nullable": true
},
"HttpValidationProblemDetails": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/ProblemDetails"
}
],
"properties": {
"errors": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true
},
"nullable": true
}
},
"additionalProperties": {
"nullable": true
},
"nullable": true
},
"ISearchDebugInfo": {
"type": "object",
"properties": {
"libraryQueryOptions": {
"oneOf": [
{
"$ref": "#/components/schemas/LibraryQueryOptions"
},
{
"$ref": "#/components/schemas/QueryOptionConfigElement"
}
],
"description": "Class passed to ToolboxItemStore when querying",
"nullable": true,
"readOnly": true
},
"serializedCcsSearchResponseDebugInfo": {
"type": "string",
"nullable": true,
"readOnly": true
},
"additionalImplData": {
"type": "object",
"properties": {
"SND_INFRA_ALGORITHM_NAME": {
"nullable": true
},
"SND_INFRA_BLENDERS": {
"nullable": true
},
"ELASTIC_SEARCH_EXPLANATIONS": {
"nullable": true
},
"ELASTIC_SEARCH_DOCUMENTS": {
"nullable": true
}
},
"additionalProperties": false,
"nullable": true,
"readOnly": true
}
},
"additionalProperties": false,
"nullable": true
},
"ImageSearchStatus": {
"enum": [0, 1, 2, 3],
"type": "integer",
"description": "Enum representing possible outcomes of image search",
"format": "int32",
"x-enumNames": [
"Success",
"InputImageFiltered",
"FailedImageConversion",
"ImageSearchDisabled"
],
"x-enum-varnames": [
"Success",
"InputImageFiltered",
"FailedImageConversion",
"ImageSearchDisabled"
],
"x-enum-descriptions": [
"Success",
"InputImageFiltered",
"FailedImageConversion",
"ImageSearchDisabled"
]
},
"InstanceCounts": {
"type": "object",
"properties": {
"script": {
"type": "integer",
"description": "The number of Script instances.",
"format": "int32"
},
"meshPart": {
"type": "integer",
"description": "The number of MeshPart instances.",
"format": "int32"
},
"animation": {
"type": "integer",
"description": "The number of Animation instances.",
"format": "int32"
},
"decal": {
"type": "integer",
"description": "The number of Decal instances.",
"format": "int32"
},
"audio": {
"type": "integer",
"description": "The number of Audio instances.",
"format": "int32"
},
"tool": {
"type": "integer",
"description": "The number of Tool instances.",
"format": "int32"
}
},
"additionalProperties": false,
"description": "Represents the count of various instance types within an asset.\r\nSee [Instance](https://create.roblox.com/docs/reference/engine/classes/Instance).",
"nullable": true
},
"LibraryQueryOptions": {
"type": "object",
"properties": {
"contextMatch": {
"type": "string",
"nullable": true
},
"isMultiplicativeSearchEnabled": {
"type": "boolean",
"nullable": true
},
"sortByRankingScore": {
"allOf": [
{
"$ref": "#/components/schemas/SortByRankingScore"
}
],
"nullable": true
},
"assetAnalysisScores": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ThresholdWithFallback"
},
"nullable": true
},
"assetStats": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/ThresholdWithFallback"
},
"nullable": true
},
"excludeModeratedAssets": {
"type": "boolean",
"nullable": true
},
"includeOnlyValidCreators": {
"type": "boolean",
"nullable": true
},
"filterForVisibleAssets": {
"type": "boolean",
"nullable": true
},
"includeHumanEvaluationVerifiedOnly": {
"type": "boolean",
"nullable": true
},
"filterOutHumanEvaluationVerifiedMalicious": {
"type": "boolean",
"nullable": true
},
"filterOutLowQualityThumbnails": {
"type": "boolean",
"nullable": true
}
},
"additionalProperties": false,
"description": "Class passed to ToolboxItemStore when querying",
"nullable": true
},
"LinkType": {
"enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"type": "integer",
"format": "int32",
"x-enumNames": [
"Invalid",
"Facebook",
"Twitter",
"Youtube",
"Twitch",
"Discord",
"Github",
"Guilded",
"Roblox",
"Devforum",
"TryInExperience"
],
"x-enum-varnames": [
"Invalid",
"Facebook",
"Twitter",
"Youtube",
"Twitch",
"Discord",
"Github",
"Guilded",
"Roblox",
"Devforum",
"TryInExperience"
],
"x-enum-descriptions": [
"Invalid",
"Facebook",
"Twitter",
"Youtube",
"Twitch",
"Discord",
"Github",
"Guilded",
"Roblox",
"Devforum",
"TryInExperience"
]
},
"MeshPart": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Asset"
}
],
"properties": {
"meshId": {
"type": "integer",
"description": "The mesh id of the meshpart.",
"format": "int64"
},
"textureId": {
"type": "integer",
"description": "The texture id of the meshpart.",
"format": "int64"
}
},
"additionalProperties": false,
"description": "Representation of a mesh asset.",
"nullable": true
},
"Model": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Asset"
}
],
"properties": {
"subTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ModelSubType"
},
"description": "The subtypes that the model belongs to.",
"nullable": true
},
"hasScripts": {
"type": "boolean",
"description": "Whether the model has scripts."
},
"scriptCount": {
"type": "integer",
"description": "The number of scripts that are in the model.",
"format": "int32"
},
"objectMeshSummary": {
"allOf": [
{
"$ref": "#/components/schemas/ObjectMeshSummary"
}
],
"description": "The summary of the meshes within the model, if they exist.",
"nullable": true
},
"instanceCounts": {
"allOf": [
{
"$ref": "#/components/schemas/InstanceCounts"
}
],
"description": "The number of studio Instance types in the model.\r\nSee [Instance](https://create.roblox.com/docs/reference/engine/classes/Instance).\r\nThese are broken down into specific types, such as MeshPart, Part, Script,\r\nTool, Animation, etc.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Representation of a model asset.",
"nullable": true
},
"ModelInstanceType": {
"enum": ["Script", "MeshPart", "Decal", "Animation", "Audio", "Tool"],
"type": "string",
"description": "A list of model instance types. See Toolbox.Service.Models.Internal.InstanceCounts and [Instance](https://create.roblox.com/docs/reference/engine/classes/Instance) for more details.",
"x-enumNames": [
"Script",
"MeshPart",
"Decal",
"Animation",
"Audio",
"Tool"
],
"x-enum-varnames": [
"Script",
"MeshPart",
"Decal",
"Animation",
"Audio",
"Tool"
],
"x-enum-descriptions": [
"Script",
"MeshPart",
"Decal",
"Animation",
"Audio",
"Tool"
]
},
"ModelSubType": {
"enum": ["Ad", "MaterialPack", "Package"],
"type": "string",
"description": "The supported model subtypes.",
"x-enumNames": ["Ad", "MaterialPack", "Package"],
"x-enum-varnames": ["Ad", "MaterialPack", "Package"],
"x-enum-descriptions": ["Ad", "MaterialPack", "Package"]
},
"Money": {
"type": "object",
"properties": {
"currencyCode": {
"type": "string",
"nullable": true
},
"quantity": {
"allOf": [
{
"$ref": "#/components/schemas/Decimal"
}
],
"nullable": true
}
},
"additionalProperties": false,
"nullable": true
},
"Music": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Audio"
}
],
"properties": {
"album": {
"type": "string",
"description": "The album the music belongs to.",
"nullable": true
},
"genre": {
"type": "string",
"description": "The genre of the music.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Representation of a music asset.",
"nullable": true
},
"MusicChartType": {
"enum": ["None", "Current", "Week", "Month", "Year"],
"type": "string",
"description": "Represents which music chart to pull entries from, if any",
"x-enumNames": ["None", "Current", "Week", "Month", "Year"],
"x-enum-varnames": ["None", "Current", "Week", "Month", "Year"],
"x-enum-descriptions": ["None", "Current", "Week", "Month", "Year"]
},
"ObjectMeshSummary": {
"type": "object",
"properties": {
"triangles": {
"type": "integer",
"description": "The total number of triangles in the object's mesh.",
"format": "int32"
},
"vertices": {
"type": "integer",
"description": "The total number of vertices in the object's mesh.",
"format": "int32"
}
},
"additionalProperties": false,
"description": "Provides a summary of the mesh characteristics of an object, such as triangle and vertex counts.",
"nullable": true
},
"Plugin": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Asset"
}
],
"properties": {
"hasScripts": {
"type": "boolean",
"description": "Whether the plugin has scripts."
},
"scriptCount": {
"type": "integer",
"description": "The number of scripts that are in the plugin.",
"format": "int32"
}
},
"additionalProperties": false,
"description": "Representation of a plugin asset.",
"nullable": true
},
"PreviewAssetsModel": {
"type": "object",
"properties": {
"imagePreviewAssets": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "Ordered list of image preview asset ids.",
"nullable": true
},
"videoPreviewAssets": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
},
"description": "Ordered list of video preview asset ids.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Grouped preview asset ids for an item, separated by media type.",
"nullable": true
},
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"type": "string",
"nullable": true
},
"title": {
"type": "string",
"nullable": true
},
"status": {
"type": "integer",
"format": "int32",
"nullable": true
},
"detail": {
"type": "string",
"nullable": true
},
"instance": {
"type": "string",
"nullable": true
}
},
"additionalProperties": {
"nullable": true
},
"nullable": true
},
"QueryFacets": {
"type": "object",
"properties": {
"appliedFacets": {
"type": "array",
"items": {
"type": "string"
},
"description": "Facets that are already applied to the search.",
"nullable": true
},
"availableFacets": {
"type": "array",
"items": {
"type": "string"
},
"description": "The unused and still available facets.",
"nullable": true
}
},
"additionalProperties": false,
"description": "The facets of a query.",
"nullable": true
},
"QueryOptionConfigElement": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/LibraryQueryOptions"
}
],
"properties": {
"contextMatch": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false,
"description": "Deserialization for nested objects of DefaultQueryOptions.QueryOptions array in appsettings",
"nullable": true
},
"RankingType": {
"enum": [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
],
"type": "integer",
"format": "int32",
"x-enumNames": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"LEGACY_Model_Search_IR600LogMultiplicative",
"LEGACY_Plugin_SearchAndSort_Monetization",
"LEGACY_Model_Sort_InsertRatioSearchRankingValue",
"Y2022_Q1_Model_AllTime",
"Y2022_Q1_Model_Trending",
"LEGACY_AnyAssetType_Sort_SalesCountAllTime",
"Y2022_Q3_Model_IR600MSD",
"Y2022_Q3_Model_Sort_InsertRatioMSD",
"Y2022_Q3_Model_AllTimeMSD",
"Y2022_Q3_Model_TrendingMSD",
"Y2022_Q3_Plugin_SearchAndSort_Monetization_MSD",
"LEGACY_AnyAssetType_Sort_SalesCountPastWeek",
"Y2022_Q4_Model_Search_IR600MSD",
"Y2022_Q4_Model_Sort_InsertRatioMSD",
"Y2022_Q4_Model_AllTimeMSD",
"Y2022_Q4_Plugin_SearchAndSort_Monetization_MSD",
"Y2023_Q2_Audio_SearchAndSort_Trending",
"Y2023_Q2_Audio_SearchAndSort_AllTime",
"Y2023_Q2_Model_TrendingMSD",
"Y2023_Q2_Audio_Duration",
"DefaultMatchScore",
"Y2024_Q1_Audio_Trending",
"Y2024_Q1_Audio_Top",
"Y2024_Q2_Plugin_SearchAndSort_Monetization_MSD",
"Y2024_Q3_Audio_CreatedDate",
"Y2024_Q4_Audio_TopListened"
],
"x-enum-varnames": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"LEGACY_Model_Search_IR600LogMultiplicative",
"LEGACY_Plugin_SearchAndSort_Monetization",
"LEGACY_Model_Sort_InsertRatioSearchRankingValue",
"Y2022_Q1_Model_AllTime",
"Y2022_Q1_Model_Trending",
"LEGACY_AnyAssetType_Sort_SalesCountAllTime",
"Y2022_Q3_Model_IR600MSD",
"Y2022_Q3_Model_Sort_InsertRatioMSD",
"Y2022_Q3_Model_AllTimeMSD",
"Y2022_Q3_Model_TrendingMSD",
"Y2022_Q3_Plugin_SearchAndSort_Monetization_MSD",
"LEGACY_AnyAssetType_Sort_SalesCountPastWeek",
"Y2022_Q4_Model_Search_IR600MSD",
"Y2022_Q4_Model_Sort_InsertRatioMSD",
"Y2022_Q4_Model_AllTimeMSD",
"Y2022_Q4_Plugin_SearchAndSort_Monetization_MSD",
"Y2023_Q2_Audio_SearchAndSort_Trending",
"Y2023_Q2_Audio_SearchAndSort_AllTime",
"Y2023_Q2_Model_TrendingMSD",
"Y2023_Q2_Audio_Duration",
"DefaultMatchScore",
"Y2024_Q1_Audio_Trending",
"Y2024_Q1_Audio_Top",
"Y2024_Q2_Plugin_SearchAndSort_Monetization_MSD",
"Y2024_Q3_Audio_CreatedDate",
"Y2024_Q4_Audio_TopListened"
],
"x-enum-descriptions": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"LEGACY_Model_Search_IR600LogMultiplicative",
"LEGACY_Plugin_SearchAndSort_Monetization",
"LEGACY_Model_Sort_InsertRatioSearchRankingValue",
"Y2022_Q1_Model_AllTime",
"Y2022_Q1_Model_Trending",
"LEGACY_AnyAssetType_Sort_SalesCountAllTime",
"Y2022_Q3_Model_IR600MSD",
"Y2022_Q3_Model_Sort_InsertRatioMSD",
"Y2022_Q3_Model_AllTimeMSD",
"Y2022_Q3_Model_TrendingMSD",
"Y2022_Q3_Plugin_SearchAndSort_Monetization_MSD",
"LEGACY_AnyAssetType_Sort_SalesCountPastWeek",
"Y2022_Q4_Model_Search_IR600MSD",
"Y2022_Q4_Model_Sort_InsertRatioMSD",
"Y2022_Q4_Model_AllTimeMSD",
"Y2022_Q4_Plugin_SearchAndSort_Monetization_MSD",
"Y2023_Q2_Audio_SearchAndSort_Trending",
"Y2023_Q2_Audio_SearchAndSort_AllTime",
"Y2023_Q2_Model_TrendingMSD",
"Y2023_Q2_Audio_Duration",
"DefaultMatchScore",
"Y2024_Q1_Audio_Trending",
"Y2024_Q1_Audio_Top",
"Y2024_Q2_Plugin_SearchAndSort_Monetization_MSD",
"Y2024_Q3_Audio_CreatedDate",
"Y2024_Q4_Audio_TopListened"
]
},
"SearchAudioTypeModel": {
"enum": ["Music", "SoundEffect"],
"type": "string",
"description": "Represents audio type values that will be properly displayed in Swagger UI.",
"x-enumNames": ["Music", "SoundEffect"],
"x-enum-varnames": ["Music", "SoundEffect"],
"x-enum-descriptions": ["Music", "SoundEffect"]
},
"SearchCategoryType": {
"enum": [
"Audio",
"Model",
"Decal",
"Plugin",
"MeshPart",
"Video",
"FontFamily"
],
"type": "string",
"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"
]
},
"SearchCreatorStoreAssetsResponse": {
"type": "object",
"properties": {
"nextPageToken": {
"type": "string",
"description": "The page token to view the next page of results.",
"nullable": true
},
"queryFacets": {
"allOf": [
{
"$ref": "#/components/schemas/QueryFacets"
}
],
"description": "The applied and available facets of a query.",
"nullable": true
},
"creatorStoreAssets": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CreatorStoreAsset"
},
"description": "The list of creator store assets returned by the search query.",
"nullable": true
},
"totalResults": {
"type": "integer",
"description": "The total number of results for the given search query.",
"format": "int64"
},
"filteredKeyword": {
"type": "string",
"description": "The filtered keyword that was used to search for assets, if applicable.",
"nullable": true
}
},
"additionalProperties": false,
"description": "The response for the SearchCreatorStoreAssets endpoint.",
"nullable": true
},
"SearchView": {
"enum": ["IDs", "Core", "Full"],
"type": "string",
"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.",
"x-enumNames": ["IDs", "Core", "Full"],
"x-enum-varnames": ["IDs", "Core", "Full"],
"x-enum-descriptions": ["IDs", "Core", "Full"]
},
"SocialLinkModel": {
"type": "object",
"properties": {
"linkType": {
"allOf": [
{
"$ref": "#/components/schemas/LinkType"
}
],
"description": "Gets or sets the link type.",
"x-enumNames": [
"Invalid",
"Facebook",
"Twitter",
"Youtube",
"Twitch",
"Discord",
"Github",
"Guilded",
"Roblox",
"Devforum",
"TryInExperience"
],
"x-enum-varnames": [
"Invalid",
"Facebook",
"Twitter",
"Youtube",
"Twitch",
"Discord",
"Github",
"Guilded",
"Roblox",
"Devforum",
"TryInExperience"
],
"x-enum-descriptions": [
"Invalid",
"Facebook",
"Twitter",
"Youtube",
"Twitch",
"Discord",
"Github",
"Guilded",
"Roblox",
"Devforum",
"TryInExperience"
]
},
"url": {
"type": "string",
"description": "Gets or sets the Url.",
"nullable": true
},
"title": {
"type": "string",
"description": "Gets or sets the title.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Model for a Social Link.",
"nullable": true
},
"SortByRankingScore": {
"type": "object",
"properties": {
"rankingType": {
"allOf": [
{
"$ref": "#/components/schemas/RankingType"
}
],
"x-enumNames": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"LEGACY_Model_Search_IR600LogMultiplicative",
"LEGACY_Plugin_SearchAndSort_Monetization",
"LEGACY_Model_Sort_InsertRatioSearchRankingValue",
"Y2022_Q1_Model_AllTime",
"Y2022_Q1_Model_Trending",
"LEGACY_AnyAssetType_Sort_SalesCountAllTime",
"Y2022_Q3_Model_IR600MSD",
"Y2022_Q3_Model_Sort_InsertRatioMSD",
"Y2022_Q3_Model_AllTimeMSD",
"Y2022_Q3_Model_TrendingMSD",
"Y2022_Q3_Plugin_SearchAndSort_Monetization_MSD",
"LEGACY_AnyAssetType_Sort_SalesCountPastWeek",
"Y2022_Q4_Model_Search_IR600MSD",
"Y2022_Q4_Model_Sort_InsertRatioMSD",
"Y2022_Q4_Model_AllTimeMSD",
"Y2022_Q4_Plugin_SearchAndSort_Monetization_MSD",
"Y2023_Q2_Audio_SearchAndSort_Trending",
"Y2023_Q2_Audio_SearchAndSort_AllTime",
"Y2023_Q2_Model_TrendingMSD",
"Y2023_Q2_Audio_Duration",
"DefaultMatchScore",
"Y2024_Q1_Audio_Trending",
"Y2024_Q1_Audio_Top",
"Y2024_Q2_Plugin_SearchAndSort_Monetization_MSD",
"Y2024_Q3_Audio_CreatedDate",
"Y2024_Q4_Audio_TopListened"
],
"x-enum-varnames": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"LEGACY_Model_Search_IR600LogMultiplicative",
"LEGACY_Plugin_SearchAndSort_Monetization",
"LEGACY_Model_Sort_InsertRatioSearchRankingValue",
"Y2022_Q1_Model_AllTime",
"Y2022_Q1_Model_Trending",
"LEGACY_AnyAssetType_Sort_SalesCountAllTime",
"Y2022_Q3_Model_IR600MSD",
"Y2022_Q3_Model_Sort_InsertRatioMSD",
"Y2022_Q3_Model_AllTimeMSD",
"Y2022_Q3_Model_TrendingMSD",
"Y2022_Q3_Plugin_SearchAndSort_Monetization_MSD",
"LEGACY_AnyAssetType_Sort_SalesCountPastWeek",
"Y2022_Q4_Model_Search_IR600MSD",
"Y2022_Q4_Model_Sort_InsertRatioMSD",
"Y2022_Q4_Model_AllTimeMSD",
"Y2022_Q4_Plugin_SearchAndSort_Monetization_MSD",
"Y2023_Q2_Audio_SearchAndSort_Trending",
"Y2023_Q2_Audio_SearchAndSort_AllTime",
"Y2023_Q2_Model_TrendingMSD",
"Y2023_Q2_Audio_Duration",
"DefaultMatchScore",
"Y2024_Q1_Audio_Trending",
"Y2024_Q1_Audio_Top",
"Y2024_Q2_Plugin_SearchAndSort_Monetization_MSD",
"Y2024_Q3_Audio_CreatedDate",
"Y2024_Q4_Audio_TopListened"
],
"x-enum-descriptions": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"LEGACY_Model_Search_IR600LogMultiplicative",
"LEGACY_Plugin_SearchAndSort_Monetization",
"LEGACY_Model_Sort_InsertRatioSearchRankingValue",
"Y2022_Q1_Model_AllTime",
"Y2022_Q1_Model_Trending",
"LEGACY_AnyAssetType_Sort_SalesCountAllTime",
"Y2022_Q3_Model_IR600MSD",
"Y2022_Q3_Model_Sort_InsertRatioMSD",
"Y2022_Q3_Model_AllTimeMSD",
"Y2022_Q3_Model_TrendingMSD",
"Y2022_Q3_Plugin_SearchAndSort_Monetization_MSD",
"LEGACY_AnyAssetType_Sort_SalesCountPastWeek",
"Y2022_Q4_Model_Search_IR600MSD",
"Y2022_Q4_Model_Sort_InsertRatioMSD",
"Y2022_Q4_Model_AllTimeMSD",
"Y2022_Q4_Plugin_SearchAndSort_Monetization_MSD",
"Y2023_Q2_Audio_SearchAndSort_Trending",
"Y2023_Q2_Audio_SearchAndSort_AllTime",
"Y2023_Q2_Model_TrendingMSD",
"Y2023_Q2_Audio_Duration",
"DefaultMatchScore",
"Y2024_Q1_Audio_Trending",
"Y2024_Q1_Audio_Top",
"Y2024_Q2_Plugin_SearchAndSort_Monetization_MSD",
"Y2024_Q3_Audio_CreatedDate",
"Y2024_Q4_Audio_TopListened"
]
},
"sortRange": {
"allOf": [
{
"$ref": "#/components/schemas/FilterSortRange"
}
],
"nullable": true
},
"sortableAudienceType": {
"allOf": [
{
"$ref": "#/components/schemas/SortableAudienceType"
}
],
"x-enumNames": ["VALUE", "DEVELOPER_SEGMENT"],
"x-enum-varnames": ["VALUE", "DEVELOPER_SEGMENT"],
"x-enum-descriptions": ["VALUE", "DEVELOPER_SEGMENT"]
},
"audienceName": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false,
"nullable": true
},
"SortCategory": {
"enum": [
"Relevance",
"Trending",
"Top",
"AudioDuration",
"CreateTime",
"UpdatedTime",
"Ratings"
],
"type": "string",
"description": "The category to sort the search results by.",
"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"
]
},
"SortDirection": {
"enum": ["None", "Ascending", "Descending"],
"type": "string",
"description": "Represents the direction in which to sort the results",
"x-enumNames": ["None", "Ascending", "Descending"],
"x-enum-varnames": ["None", "Ascending", "Descending"],
"x-enum-descriptions": ["None", "Ascending", "Descending"]
},
"SortableAudienceType": {
"enum": [0, 1],
"type": "integer",
"format": "int32",
"x-enumNames": ["VALUE", "DEVELOPER_SEGMENT"],
"x-enum-varnames": ["VALUE", "DEVELOPER_SEGMENT"],
"x-enum-descriptions": ["VALUE", "DEVELOPER_SEGMENT"]
},
"SoundEffect": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Audio"
}
],
"properties": {
"category": {
"type": "string",
"description": "The sound effect category.",
"nullable": true
},
"subcategory": {
"type": "string",
"description": "The sound effect subcategory.",
"nullable": true
}
},
"additionalProperties": false,
"description": "Representation of a sound effect asset.",
"nullable": true
},
"SpellCheckerResult": {
"type": "object",
"properties": {
"correctionState": {
"allOf": [
{
"$ref": "#/components/schemas/CorrectionState"
}
],
"description": "The state of spell correction: Toolbox.Service.CorrectionState",
"x-enumNames": [
"NoCorrection",
"CorrectionAvailable",
"CorrectionAccepted"
],
"x-enum-varnames": [
"NoCorrection",
"CorrectionAvailable",
"CorrectionAccepted"
],
"x-enum-descriptions": [
"NoCorrection",
"CorrectionAvailable",
"CorrectionAccepted"
]
},
"correctedQuery": {
"type": "string",
"description": "The spell corrected query if available.",
"nullable": true
},
"userQuery": {
"type": "string",
"description": "The user query that originated the correction.",
"nullable": true
}
},
"additionalProperties": false,
"description": "The result of spell checker.",
"nullable": true
},
"SubcategoryModel": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the subcategory.",
"nullable": true
},
"displayName": {
"type": "string",
"description": "The display name of the subcategory.",
"nullable": true
},
"hidden": {
"type": "boolean",
"description": "Whether this category should be hidden in client side lists"
},
"searchKeywords": {
"type": "string",
"description": "The search keywords to use for this subcategory",
"nullable": true,
"deprecated": true
},
"queryParams": {
"allOf": [
{
"$ref": "#/components/schemas/SubcategoryQueryParams"
}
],
"description": "The parameters we'll use when getting assets",
"nullable": true
},
"path": {
"type": "array",
"items": {
"type": "string"
},
"description": "The full path of the subcategory",
"nullable": true
},
"index": {
"type": "integer",
"description": "The index/order of the subcategory in the list",
"format": "int32"
},
"children": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/SubcategoryModel"
},
"description": "The children nested under this subcategory.",
"nullable": true
},
"childCount": {
"type": "integer",
"description": "The number of children",
"format": "int32",
"readOnly": true
},
"thumbnail": {
"allOf": [
{
"$ref": "#/components/schemas/SubcategoryThumbnail"
}
],
"description": "Optional thumbnail information for the subcategory",
"nullable": true
},
"categoryPath": {
"type": "string",
"description": "The taxonomy slug for this subcategory. e.g. \"3d__characters\"",
"nullable": true
}
},
"additionalProperties": false,
"description": "Represents a basic subcategory.",
"nullable": true
},
"SubcategoryQueryParams": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"description": "The search keyword to use",
"nullable": true
},
"assetSubTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AssetSubType"
},
"description": "A list of subtypes to use (e.g. MaterialPack, Ad, etc.)",
"nullable": true
},
"creatorTargetId": {
"type": "integer",
"description": "The creator target ID filter.",
"format": "int64",
"nullable": true
},
"creatorType": {
"allOf": [
{
"$ref": "#/components/schemas/CreatorType"
}
],
"description": "The creator type ID.",
"nullable": true
},
"excludeAssetSubTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AssetSubType"
},
"description": "A list of subtype to remove https://jira.rbx.com/browse/STM-2597.",
"nullable": true
},
"audioTypes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AudioType"
},
"description": "A list of audio types to include (e.g. Music, SoundEffect, Unknown).",
"nullable": true
},
"uiSortIntent": {
"allOf": [
{
"$ref": "#/components/schemas/UiSortIntent"
}
],
"description": "The UI sort intent.",
"nullable": true
},
"sortDirection": {
"allOf": [
{
"$ref": "#/components/schemas/SortDirection"
}
],
"description": "The sort direction.",
"nullable": true
},
"musicChartType": {
"allOf": [
{
"$ref": "#/components/schemas/MusicChartType"
}
],
"description": "The music chart type.",
"nullable": true
},
"categoryPath": {
"type": "string",
"description": "The taxonomy category path slug to use for category filtering",
"nullable": true
}
},
"additionalProperties": false,
"description": "The parameters we'll use when querying assets\r\nNOTE: All fields *must* be nullable to avoid improper filtering",
"nullable": true
},
"SubcategoryThumbnail": {
"type": "object",
"properties": {
"assetId": {
"type": "integer",
"description": "The asset id to use for the thumbnail image",
"format": "int64"
},
"backgroundColor": {
"type": "string",
"description": "The color to use for the background gradient, in hex format, ex: #FFFFFF",
"nullable": true
}
},
"additionalProperties": false,
"description": "Data class representing a subcategory thumbnail\r\nThese property names are lower-case because obelix doesn't support DataContract/DataMember yet",
"nullable": true
},
"ThresholdWithFallback": {
"type": "object",
"properties": {
"min": {
"type": "number",
"format": "float",
"nullable": true
},
"max": {
"type": "number",
"format": "float",
"nullable": true
},
"fallbackField": {
"type": "string",
"nullable": true
},
"fallbackMin": {
"type": "number",
"format": "float",
"nullable": true
},
"fallbackMax": {
"type": "number",
"format": "float",
"nullable": true
}
},
"additionalProperties": false,
"nullable": true
},
"ToolboxItem": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "item id",
"format": "int64"
},
"name": {
"type": "string",
"description": "item name",
"nullable": true
},
"debugInfo": {
"type": "object",
"properties": {
"SND_INFRA_ALGORITHM_NAME": {
"nullable": true
},
"SND_INFRA_BLENDERS": {
"nullable": true
},
"ELASTIC_SEARCH_EXPLANATIONS": {
"nullable": true
},
"ELASTIC_SEARCH_DOCUMENTS": {
"nullable": true
}
},
"additionalProperties": false,
"description": "debug",
"nullable": true
},
"searchResultSource": {
"type": "string",
"description": "Search result source eg SemanticScann, lexical",
"nullable": true
}
},
"additionalProperties": false,
"description": "The model of an toolbox item",
"nullable": true
},
"ToolboxItemApiPageResponse": {
"type": "object",
"properties": {
"previousPageCursor": {
"type": "string",
"description": "Gets or sets the exclusive start key for the previous page of results.",
"nullable": true
},
"nextPageCursor": {
"type": "string",
"description": "Gets or sets the exclusive start key for the next page of results.",
"nullable": true
},
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ToolboxItem"
},
"description": "Gets or sets the data of the array.",
"nullable": true
}
},
"additionalProperties": false,
"description": "The API standard pagination response. This is supposed to only be used for public endpoints.",
"nullable": true
},
"ToolboxItemsPageResponse": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/ToolboxItemApiPageResponse"
}
],
"properties": {
"totalResults": {
"type": "integer",
"description": "Gets or sets total results",
"format": "int64"
},
"filteredKeyword": {
"type": "string",
"description": "Gets or sets the filtered version of the query's filtered keyword",
"nullable": true
},
"searchDebugInfo": {
"allOf": [
{
"$ref": "#/components/schemas/ISearchDebugInfo"
}
],
"description": "Gets or sets the search infra debug info",
"nullable": true
},
"spellCheckerResult": {
"allOf": [
{
"$ref": "#/components/schemas/SpellCheckerResult"
}
],
"description": "Gets or sets the result of the spell checker",
"nullable": true
},
"queryFacets": {
"allOf": [
{
"$ref": "#/components/schemas/QueryFacets"
}
],
"description": "Gets or sets the applied and available facets of a query.",
"nullable": true
},
"imageSearchStatus": {
"allOf": [
{
"$ref": "#/components/schemas/ImageSearchStatus"
}
],
"description": "Gets or sets the status of image search, conveying whether the search succeeded or hit any errors.",
"nullable": true
}
},
"additionalProperties": false,
"description": "toolbox items pagination response.",
"nullable": true
},
"UiSortIntent": {
"enum": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
"type": "integer",
"format": "int32",
"x-enumNames": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"Top",
"Duration",
"DateCreated",
"DateModified",
"Creator",
"Name",
"AssetType"
],
"x-enum-varnames": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"Top",
"Duration",
"DateCreated",
"DateModified",
"Creator",
"Name",
"AssetType"
],
"x-enum-descriptions": [
"Relevance",
"MostTaken",
"Favorites",
"Updated",
"Ratings",
"Trending",
"AllTime",
"Top",
"Duration",
"DateCreated",
"DateModified",
"Creator",
"Name",
"AssetType"
]
},
"VotingModel": {
"type": "object",
"properties": {
"showVotes": {
"type": "boolean",
"description": "Gets or sets show votes."
},
"upVotes": {
"type": "integer",
"description": "Gets or sets success.",
"format": "int64"
},
"downVotes": {
"type": "integer",
"description": "Gets or sets down votes.",
"format": "int64"
},
"canVote": {
"type": "boolean",
"description": "Gets or sets can vote."
},
"userVote": {
"type": "boolean",
"description": "Gets or sets user vote.",
"nullable": true
},
"hasVoted": {
"type": "boolean",
"description": "Gets UserVote.",
"readOnly": true
},
"voteCount": {
"type": "integer",
"description": "The total number of votes",
"format": "int64"
},
"upVotePercent": {
"type": "integer",
"description": "The percentage of total votes that have been UpVotes",
"format": "int32"
}
},
"additionalProperties": false,
"description": "model for voting.",
"nullable": true
}
},
"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"
}
}
},
"servers": [
{
"url": "https://apis.roblox.com"
}
]
}