8 min read

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:

Properties

NameTypeRequiredDescription
pathstringfalseThe resource path of the asset quota. Format: users/{user_id}/asset-quotas/{asset_quota_id}
quotaTypestringfalseType 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. |
assetTypestringfalseThe 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 |
usageintegerfalseThe current usage of the quota.
capacityintegerfalseThe capacity of the quota.
periodstringfalseThe 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 |
usageResetTimestringfalseThe 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
}