Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
GET /v2/users/{userId}/inventory — openapi
Get user's inventory by multiple Roblox.Platform.Assets.AssetType.
GamePass and Badges not allowed.
Endpoint
Method: GET
Path: /v2/users/{userId}/inventory
Servers:
https://inventory.roblox.com
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
| userId | path | true | The inventory owner's userId. |
| assetTypes | query | true | The asset types to query. |
| filterDisapprovedAssets | query | false | Filters moderated assets when enabled. |
| showApprovedOnly | query | false | Filters moderated assets and assets pending review when enabled. |
| limit | query | false | The number of results per request. |
| cursor | query | false | The paging cursor for the previous or next page. |
| sortOrder | query | false | The order the results are sorted in. |
[
{
"in": "path",
"name": "userId",
"description": "The inventory owner's userId.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"in": "query",
"name": "assetTypes",
"description": "The asset types to query.",
"required": true,
"style": "form",
"explode": false,
"schema": {
"type": "array",
"items": {
"description": " ['Image' = 1, 'TShirt' = 2, 'Audio' = 3, 'Mesh' = 4, 'Lua' = 5, 'HTML' = 6, 'Text' = 7, 'Hat' = 8, 'Place' = 9, 'Model' = 10, 'Shirt' = 11, 'Pants' = 12, 'Decal' = 13, 'Avatar' = 16, 'Head' = 17, 'Face' = 18, 'Gear' = 19, 'Badge' = 21, 'GroupEmblem' = 22, 'Animation' = 24, 'Arms' = 25, 'Legs' = 26, 'Torso' = 27, 'RightArm' = 28, 'LeftArm' = 29, 'LeftLeg' = 30, 'RightLeg' = 31, 'Package' = 32, 'YouTubeVideo' = 33, 'GamePass' = 34, 'App' = 35, 'Code' = 37, 'Plugin' = 38, 'SolidModel' = 39, 'MeshPart' = 40, 'HairAccessory' = 41, 'FaceAccessory' = 42, 'NeckAccessory' = 43, 'ShoulderAccessory' = 44, 'FrontAccessory' = 45, 'BackAccessory' = 46, 'WaistAccessory' = 47, 'ClimbAnimation' = 48, 'DeathAnimation' = 49, 'FallAnimation' = 50, 'IdleAnimation' = 51, 'JumpAnimation' = 52, 'RunAnimation' = 53, 'SwimAnimation' = 54, 'WalkAnimation' = 55, 'PoseAnimation' = 56, 'LocalizationTableManifest' = 59, 'LocalizationTableTranslation' = 60, 'EmoteAnimation' = 61, 'Video' = 62, 'TexturePack' = 63, 'TShirtAccessory' = 64, 'ShirtAccessory' = 65, 'PantsAccessory' = 66, 'JacketAccessory' = 67, 'SweaterAccessory' = 68, 'ShortsAccessory' = 69, 'LeftShoeAccessory' = 70, 'RightShoeAccessory' = 71, 'DressSkirtAccessory' = 72, 'FontFamily' = 73, 'FontFace' = 74, 'MeshHiddenSurfaceRemoval' = 75, 'EyebrowAccessory' = 76, 'EyelashAccessory' = 77, 'MoodAnimation' = 78, 'DynamicHead' = 79, 'CodeSnippet' = 80, 'AdsVideo' = 81, 'OtaUpdate' = 82, 'Screenshot' = 83, 'RuntimePropertySet' = 84, 'StorePreviewVideo' = 85, 'GamePreviewVideo' = 86, 'CreatorExperienceConfig' = 87, 'FaceMakeup' = 88, 'LipMakeup' = 89, 'EyeMakeup' = 90, 'VoxelFragment' = 91, 'AvatarBackground' = 92, 'TextDocument' = 93, 'Post' = 94, 'AnimatedImage' = 95, 'ComputeFunction' = 96]",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
16,
17,
18,
19,
21,
22,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96
]
}
}
},
{
"in": "query",
"name": "filterDisapprovedAssets",
"description": "Filters moderated assets when enabled.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"in": "query",
"name": "showApprovedOnly",
"description": "Filters moderated assets and assets pending review when enabled.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"in": "query",
"name": "limit",
"description": "The number of results per request.",
"schema": {
"type": "integer",
"format": "int32",
"enum": [
10,
25,
50,
100
],
"default": 10
}
},
{
"in": "query",
"name": "cursor",
"description": "The paging cursor for the previous or next page.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "sortOrder",
"description": "The order the results are sorted in.",
"schema": {
"type": "string",
"enum": [
"Asc",
"Desc"
],
"default": "Asc"
}
}
] Responses
| Status | Description |
|---|---|
| 200 | OK |
| 400 | 1: Invalid user Id. 2: Invalid asset type Id. |
| 403 | 3: Insufficient permission. 4: You are not authorized to view this user's inventory. |
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Roblox.Web.WebAPI.Models.ApiPageResponse_Roblox.Inventory.Api.V2.UserAssetItemModelV2_"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Roblox.Web.WebAPI.Models.ApiPageResponse_Roblox.Inventory.Api.V2.UserAssetItemModelV2_"
}
}
}
},
"400": {
"description": "1: Invalid user Id.\r\n2: Invalid asset type Id."
},
"403": {
"description": "3: Insufficient permission.\r\n4: You are not authorized to view this user's inventory."
}
} Authentication
{
"security": [
{},
{
"roblox-legacy-cookie": []
}
],
"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",
"Inventories",
"Users"
],
"summary": "Get user's inventory by multiple Roblox.Platform.Assets.AssetType.",
"description": "GamePass and Badges not allowed.",
"parameters": [
{
"in": "path",
"name": "userId",
"description": "The inventory owner's userId.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"in": "query",
"name": "assetTypes",
"description": "The asset types to query.",
"required": true,
"style": "form",
"explode": false,
"schema": {
"type": "array",
"items": {
"description": " ['Image' = 1, 'TShirt' = 2, 'Audio' = 3, 'Mesh' = 4, 'Lua' = 5, 'HTML' = 6, 'Text' = 7, 'Hat' = 8, 'Place' = 9, 'Model' = 10, 'Shirt' = 11, 'Pants' = 12, 'Decal' = 13, 'Avatar' = 16, 'Head' = 17, 'Face' = 18, 'Gear' = 19, 'Badge' = 21, 'GroupEmblem' = 22, 'Animation' = 24, 'Arms' = 25, 'Legs' = 26, 'Torso' = 27, 'RightArm' = 28, 'LeftArm' = 29, 'LeftLeg' = 30, 'RightLeg' = 31, 'Package' = 32, 'YouTubeVideo' = 33, 'GamePass' = 34, 'App' = 35, 'Code' = 37, 'Plugin' = 38, 'SolidModel' = 39, 'MeshPart' = 40, 'HairAccessory' = 41, 'FaceAccessory' = 42, 'NeckAccessory' = 43, 'ShoulderAccessory' = 44, 'FrontAccessory' = 45, 'BackAccessory' = 46, 'WaistAccessory' = 47, 'ClimbAnimation' = 48, 'DeathAnimation' = 49, 'FallAnimation' = 50, 'IdleAnimation' = 51, 'JumpAnimation' = 52, 'RunAnimation' = 53, 'SwimAnimation' = 54, 'WalkAnimation' = 55, 'PoseAnimation' = 56, 'LocalizationTableManifest' = 59, 'LocalizationTableTranslation' = 60, 'EmoteAnimation' = 61, 'Video' = 62, 'TexturePack' = 63, 'TShirtAccessory' = 64, 'ShirtAccessory' = 65, 'PantsAccessory' = 66, 'JacketAccessory' = 67, 'SweaterAccessory' = 68, 'ShortsAccessory' = 69, 'LeftShoeAccessory' = 70, 'RightShoeAccessory' = 71, 'DressSkirtAccessory' = 72, 'FontFamily' = 73, 'FontFace' = 74, 'MeshHiddenSurfaceRemoval' = 75, 'EyebrowAccessory' = 76, 'EyelashAccessory' = 77, 'MoodAnimation' = 78, 'DynamicHead' = 79, 'CodeSnippet' = 80, 'AdsVideo' = 81, 'OtaUpdate' = 82, 'Screenshot' = 83, 'RuntimePropertySet' = 84, 'StorePreviewVideo' = 85, 'GamePreviewVideo' = 86, 'CreatorExperienceConfig' = 87, 'FaceMakeup' = 88, 'LipMakeup' = 89, 'EyeMakeup' = 90, 'VoxelFragment' = 91, 'AvatarBackground' = 92, 'TextDocument' = 93, 'Post' = 94, 'AnimatedImage' = 95, 'ComputeFunction' = 96]",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
16,
17,
18,
19,
21,
22,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96
]
}
}
},
{
"in": "query",
"name": "filterDisapprovedAssets",
"description": "Filters moderated assets when enabled.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"in": "query",
"name": "showApprovedOnly",
"description": "Filters moderated assets and assets pending review when enabled.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"in": "query",
"name": "limit",
"description": "The number of results per request.",
"schema": {
"type": "integer",
"format": "int32",
"enum": [
10,
25,
50,
100
],
"default": 10
}
},
{
"in": "query",
"name": "cursor",
"description": "The paging cursor for the previous or next page.",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "sortOrder",
"description": "The order the results are sorted in.",
"schema": {
"type": "string",
"enum": [
"Asc",
"Desc"
],
"default": "Asc"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Roblox.Web.WebAPI.Models.ApiPageResponse_Roblox.Inventory.Api.V2.UserAssetItemModelV2_"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Roblox.Web.WebAPI.Models.ApiPageResponse_Roblox.Inventory.Api.V2.UserAssetItemModelV2_"
}
}
}
},
"400": {
"description": "1: Invalid user Id.\r\n2: Invalid asset type Id."
},
"403": {
"description": "3: Insufficient permission.\r\n4: You are not authorized to view this user's inventory."
}
},
"servers": [
{
"url": "https://inventory.roblox.com"
}
],
"x-roblox-engine-usability": {
"apiKeyWithHttpService": false
},
"security": [
{},
{
"roblox-legacy-cookie": []
}
],
"externalDocs": {
"url": "https://create.roblox.com/docs/cloud/reference/features/assets#inventory_get_v2_users__userId__inventory"
},
"x-roblox-recommended-alternatives": [
{
"url": "https://apis.roblox.com/cloud/v2/users/{user_id}/inventory-items",
"httpMethod": "GET",
"documentationUrl": "https://create.roblox.com/docs/cloud/reference/features/inventories#Cloud_ListInventoryItems"
}
]
}