Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
AssetQuota — openapi
Represents a quota for an asset-related action.
For example, a user might be able to upload 100 audio files per month and have uploaded 15 already. In this example:
quotaTypeisRATE_LIMIT_UPLOADassetTypeisAUDIOusageis15capacityis100periodisMONTHusageResetTimeindicates when a new period begins and usage resets to 0. This value doesn't necessarily correlate with the first day of a calendar month or midnight on a given day. For more information on the upload process, see the usage guide.
Properties
| Name | Type | Required | Description |
|---|---|---|---|
| path | string | false | The resource path of the asset quota. Format: users/{user_id}/asset-quotas/{asset_quota_id} |
| quotaType | string | false | Type of quota. Possible values: | Value | Description | | --- | --- | | QUOTA_TYPE_UNSPECIFIED | The default quota type. | | RATE_LIMIT_UPLOAD | Rate limit on how often one can upload an asset. | | RATE_LIMIT_CREATOR_STORE_DISTRIBUTE | Rate limit on how often one can distribute an asset on the Creator Store. | |
| assetType | string | false | The asset type the quota is for. Possible values: | Value | Description | | --- | --- | | ASSET_TYPE_UNSPECIFIED | The default asset type. | | IMAGE | Image | | TSHIRT | Tshirt | | AUDIO | Audio | | MESH | Mesh | | LUA | Lua | | HAT | Hat | | PLACE | Place | | MODEL | Model | | SHIRT | Classic Shirt | | PANTS | Classic Pants | | DECAL | Decal | | HEAD | Head | | FACE | Face | | GEAR | Gear | | ANIMATION | Animation | | TORSO | Torso | | RIGHT_ARM | Right Arm | | LEFT_ARM | Left Arm | | LEFT_LEG | Left Leg | | RIGHT_LEG | Right Leg | | YOUTUBE_VIDEO | YouTube Video | | APP | App | | CODE | Code | | PLUGIN | Plugin | | SOLID_MODEL | Solid Model | | MESH_PART | Mesh Part | | HAIR_ACCESSORY | Hair Accessory | | FACE_ACCESSORY | Face Accessory | | NECK_ACCESSORY | Neck Accessory | | SHOULDER_ACCESSORY | Shoulder Accessory | | FRONT_ACCESSORY | Front Accessory | | BACK_ACCESSORY | Back Accessory | | WAIST_ACCESSORY | Waist Accessory | | CLIMB_ANIMATION | Climb Animation | | DEATH_ANIMATION | Death Animation | | FALL_ANIMATION | Fall Animation | | IDLE_ANIMATION | Idle Animation | | JUMP_ANIMATION | Jump Animation | | RUN_ANIMATION | Run Animation | | SWIM_ANIMATION | Swim Animation | | WALK_ANIMATION | Walk Animation | | POSE_ANIMATION | Pose Animation | | LOCALIZATION_TABLE_MANIFEST | Localization Table Manifest | | LOCALIZATION_TABLE_TRANSLATION | Localization Table Translation | | EMOTE_ANIMATION | Emote Animation | | VIDEO | Video | | TEXTURE_PACK | Texture Pack | | TSHIRT_ACCESSORY | Tshirt Accessory | | SHIRT_ACCESSORY | Shirt Accessory | | PANTS_ACCESSORY | Pants Accessory | | JACKET_ACCESSORY | Jacket Accessory | | SWEATER_ACCESSORY | Sweater Accessory | | SHORTS_ACCESSORY | Shorts Accessory | | LEFT_SHOE_ACCESSORY | Left Shoe Accessory | | RIGHT_SHOE_ACCESSORY | Right Shoe Accessory | | DRESS_SKIRT_ACCESSORY | Dress Skirt Accessory | | FONT_FAMILY | Font Family | | FONT_FACE | Font Face | | MESH_HIDDEN_SURFACE_REMOVAL | Mesh Hidden Surface Removal | | EYEBROW_ACCESSORY | Eyebrow Accessory | | EYELASH_ACCESSORY | Eyelash Accessory | | MOOD_ANIMATION | Mood Animation | | DYNAMIC_HEAD | Dynamic Head | | CODE_SNIPPET | Code Snippet | | ADS_VIDEO | Ads Video | |
| usage | integer | false | The current usage of the quota. |
| capacity | integer | false | The capacity of the quota. |
| period | string | false | The period of time the quota is for. Possible values: | Value | Description | | --- | --- | | PERIOD_UNSPECIFIED | The default period, which is invalid. Specify another value. | | MONTH | Month | | DAY | Day | |
| usageResetTime | string | false | The time the usage will reset for this quota. |
Complete Schema
{
"type": "object",
"properties": {
"path": {
"example": "users/123/asset-quotas/some-asset-quota",
"type": "string",
"description": "The resource path of the asset quota.\n\nFormat: `users/{user_id}/asset-quotas/{asset_quota_id}`"
},
"quotaType": {
"example": "QUOTA_TYPE_UNSPECIFIED",
"enum": [
"QUOTA_TYPE_UNSPECIFIED",
"RATE_LIMIT_UPLOAD",
"RATE_LIMIT_CREATOR_STORE_DISTRIBUTE"
],
"type": "string",
"description": "Type of quota.\n\nPossible values:\n\n | Value | Description |\n | --- | --- |\n | QUOTA_TYPE_UNSPECIFIED | The default quota type. |\n | RATE_LIMIT_UPLOAD | Rate limit on how often one can upload an asset. |\n | RATE_LIMIT_CREATOR_STORE_DISTRIBUTE | Rate limit on how often one can distribute an asset on the Creator Store. |",
"format": "enum"
},
"assetType": {
"example": "ASSET_TYPE_UNSPECIFIED",
"enum": [
"ASSET_TYPE_UNSPECIFIED",
"IMAGE",
"TSHIRT",
"AUDIO",
"MESH",
"LUA",
"HAT",
"PLACE",
"MODEL",
"SHIRT",
"PANTS",
"DECAL",
"HEAD",
"FACE",
"GEAR",
"ANIMATION",
"TORSO",
"RIGHT_ARM",
"LEFT_ARM",
"LEFT_LEG",
"RIGHT_LEG",
"YOUTUBE_VIDEO",
"APP",
"CODE",
"PLUGIN",
"SOLID_MODEL",
"MESH_PART",
"HAIR_ACCESSORY",
"FACE_ACCESSORY",
"NECK_ACCESSORY",
"SHOULDER_ACCESSORY",
"FRONT_ACCESSORY",
"BACK_ACCESSORY",
"WAIST_ACCESSORY",
"CLIMB_ANIMATION",
"DEATH_ANIMATION",
"FALL_ANIMATION",
"IDLE_ANIMATION",
"JUMP_ANIMATION",
"RUN_ANIMATION",
"SWIM_ANIMATION",
"WALK_ANIMATION",
"POSE_ANIMATION",
"LOCALIZATION_TABLE_MANIFEST",
"LOCALIZATION_TABLE_TRANSLATION",
"EMOTE_ANIMATION",
"VIDEO",
"TEXTURE_PACK",
"TSHIRT_ACCESSORY",
"SHIRT_ACCESSORY",
"PANTS_ACCESSORY",
"JACKET_ACCESSORY",
"SWEATER_ACCESSORY",
"SHORTS_ACCESSORY",
"LEFT_SHOE_ACCESSORY",
"RIGHT_SHOE_ACCESSORY",
"DRESS_SKIRT_ACCESSORY",
"FONT_FAMILY",
"FONT_FACE",
"MESH_HIDDEN_SURFACE_REMOVAL",
"EYEBROW_ACCESSORY",
"EYELASH_ACCESSORY",
"MOOD_ANIMATION",
"DYNAMIC_HEAD",
"CODE_SNIPPET",
"ADS_VIDEO"
],
"type": "string",
"description": "The asset type the quota is for.\n\nPossible values:\n\n | Value | Description |\n | --- | --- |\n | ASSET_TYPE_UNSPECIFIED | The default asset type. |\n | IMAGE | Image |\n | TSHIRT | Tshirt |\n | AUDIO | Audio |\n | MESH | Mesh |\n | LUA | Lua |\n | HAT | Hat |\n | PLACE | Place |\n | MODEL | Model |\n | SHIRT | Classic Shirt |\n | PANTS | Classic Pants |\n | DECAL | Decal |\n | HEAD | Head |\n | FACE | Face |\n | GEAR | Gear |\n | ANIMATION | Animation |\n | TORSO | Torso |\n | RIGHT_ARM | Right Arm |\n | LEFT_ARM | Left Arm |\n | LEFT_LEG | Left Leg |\n | RIGHT_LEG | Right Leg |\n | YOUTUBE_VIDEO | YouTube Video |\n | APP | App |\n | CODE | Code |\n | PLUGIN | Plugin |\n | SOLID_MODEL | Solid Model |\n | MESH_PART | Mesh Part |\n | HAIR_ACCESSORY | Hair Accessory |\n | FACE_ACCESSORY | Face Accessory |\n | NECK_ACCESSORY | Neck Accessory |\n | SHOULDER_ACCESSORY | Shoulder Accessory |\n | FRONT_ACCESSORY | Front Accessory |\n | BACK_ACCESSORY | Back Accessory |\n | WAIST_ACCESSORY | Waist Accessory |\n | CLIMB_ANIMATION | Climb Animation |\n | DEATH_ANIMATION | Death Animation |\n | FALL_ANIMATION | Fall Animation |\n | IDLE_ANIMATION | Idle Animation |\n | JUMP_ANIMATION | Jump Animation |\n | RUN_ANIMATION | Run Animation |\n | SWIM_ANIMATION | Swim Animation |\n | WALK_ANIMATION | Walk Animation |\n | POSE_ANIMATION | Pose Animation |\n | LOCALIZATION_TABLE_MANIFEST | Localization Table Manifest |\n | LOCALIZATION_TABLE_TRANSLATION | Localization Table Translation |\n | EMOTE_ANIMATION | Emote Animation |\n | VIDEO | Video |\n | TEXTURE_PACK | Texture Pack |\n | TSHIRT_ACCESSORY | Tshirt Accessory |\n | SHIRT_ACCESSORY | Shirt Accessory |\n | PANTS_ACCESSORY | Pants Accessory |\n | JACKET_ACCESSORY | Jacket Accessory |\n | SWEATER_ACCESSORY | Sweater Accessory |\n | SHORTS_ACCESSORY | Shorts Accessory |\n | LEFT_SHOE_ACCESSORY | Left Shoe Accessory |\n | RIGHT_SHOE_ACCESSORY | Right Shoe Accessory |\n | DRESS_SKIRT_ACCESSORY | Dress Skirt Accessory |\n | FONT_FAMILY | Font Family |\n | FONT_FACE | Font Face |\n | MESH_HIDDEN_SURFACE_REMOVAL | Mesh Hidden Surface Removal |\n | EYEBROW_ACCESSORY | Eyebrow Accessory |\n | EYELASH_ACCESSORY | Eyelash Accessory |\n | MOOD_ANIMATION | Mood Animation |\n | DYNAMIC_HEAD | Dynamic Head |\n | CODE_SNIPPET | Code Snippet |\n | ADS_VIDEO | Ads Video |",
"format": "enum"
},
"usage": {
"type": "integer",
"description": "The current usage of the quota.",
"format": "int64"
},
"capacity": {
"type": "integer",
"description": "The capacity of the quota.",
"format": "int64"
},
"period": {
"example": "PERIOD_UNSPECIFIED",
"enum": [
"PERIOD_UNSPECIFIED",
"MONTH",
"DAY"
],
"type": "string",
"description": "The period of time the quota is for.\n\nPossible values:\n\n | Value | Description |\n | --- | --- |\n | PERIOD_UNSPECIFIED | The default period, which is invalid. Specify another value. |\n | MONTH | Month |\n | DAY | Day |",
"format": "enum"
},
"usageResetTime": {
"example": "2023-07-05T12:34:56Z",
"type": "string",
"description": "The time the usage will reset for this quota.",
"format": "date-time"
}
},
"description": "Represents a quota for an asset-related action.\n\nFor example, a user might be able to upload 100 audio files per month and\nhave uploaded 15 already. In this example:\n- `quotaType` is `RATE_LIMIT_UPLOAD`\n- `assetType` is `AUDIO`\n- `usage` is `15`\n- `capacity` is `100`\n- `period` is `MONTH`\n`usageResetTime` indicates when a new period begins and usage resets to 0.\nThis value **doesn't** necessarily correlate with the first day of a\ncalendar month or midnight on a given day. For more information on the\nupload process, see the\n[usage\nguide](https://create.roblox.com/docs/en-us/cloud/open-cloud/usage-assets).",
"x-aep-resource": {
"patterns": [
"users/{user_id}/asset-quotas/{asset_quota_id}"
],
"plural": "asset-quotas",
"singular": "asset-quota"
},
"x-resource": true
}