---
title: "Gets the contents of a specific folder."
method: GET
path: "/v1/folders/{folderId}/items"
tags: ["Assets"]
---

# Gets the contents of a specific folder.

`GET /v1/folders/{folderId}/items`

## Request

- Base URL: `https://itemconfiguration.roblox.com`
- URL: `https://itemconfiguration.roblox.com/v1/folders/{folderId}/items`
- Auth: one of:
  - API key in cookie `.ROBLOSECURITY`
  - API key in header `x-api-key`

## Path parameters

- `folderId` string, required

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

OK

- RobloxItemConfigurationApiModelsResponseFolderGetFolderItemsResponse: Response model for getting folder items.
  - `items` RobloxItemConfigurationApiModelsFolderFolderItemDetails[]: The list of items in the folder.
    - `id` string: The unique identifier for the item.
    - `marketplaceItem` RobloxItemConfigurationApiMarketplaceItem
      - `id` string: The id of the item.
      - `marketplaceItemDetails` RobloxItemConfigurationApiMarketplaceItemDetails: The marketplace item details. Only one of the AssetDetails and BundleDetails will be set.
        - `assetDetails` RobloxItemConfigurationApiAssetDetails: The asset details.
          - `assetType` 0 | 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 | 97: The asset type. ['Invalid' = 0, '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, 'AvatarSpawnEffect' = 97]
        - `bundleDetails` RobloxItemConfigurationApiBundleDetails: The bundle details.
          - `bundleType` 0 | 1 | 2 | 3 | 4: The bundle type. ['Invalid' = 0, 'Body' = 1, 'DynamicHead' = 2, 'Shoes' = 3, 'AvatarAnimations' = 4]
      - `createdTime` string, date-time: The created time.
      - `name` string: The name of the item.
      - `description` string: The description of the item.
      - `creator` RobloxAvatarMarketplacePublishingSharedV1Beta1Creator
        - `User` RobloxAvatarMarketplacePublishingSharedV1Beta1CreatorTypesUser
          - `UserId` integer
        - `Group` RobloxAvatarMarketplacePublishingSharedV1Beta1CreatorTypesGroup
          - `GroupId` integer
        - `KindCase` 0 | 1 | 2: ['None' = 0, 'User' = 1, 'Group' = 2]
      - `moderationStatus` 0 | 1 | 2 | 3 | 4: The moderation status of the item. ['Invalid' = 0, 'Pending' = 1, 'Moderated' = 2, 'Approved' = 3, 'RequiresIntervention' = 4]
      - `isUpdating` boolean: Whether the item currently has an in-flight Catalog Asset Update (a submitted update whose staging content is still being created / validated / moderated). The creator dashboard renders such an item as "pending" — the same treatment as an item still under moderation review.
      - `price` integer: The price of the item. If price = 0 => free, if price = null => unset.
      - `saleStatus` 0 | 1 | 2: The sale status of the item. ['OnSale' = 0, 'OffSale' = 1, 'Free' = 2]
      - `collectibleItemType` 0 | 1 | 2: The collectible item type. If null => item has not been published into collectible system. ['Invalid' = 0, 'Limited' = 1, 'NonLimited' = 2]
      - `creationUniverseId` integer: The creation universe id. Used for IEC items.
      - `delistingStatus` RobloxAvatarMarketplacePublishingAvatarMarketplacePublishingGatewayV1Beta1ItemDelistingStatus
        - `Target` RobloxAvatarMarketplacePublishingAvatarMarketplacePublishingGatewayV1Beta1Target
          - `TargetType` 0 | 1 | 2 | 3 | 4: ['Invalid' = 0, 'Asset' = 1, 'Bundle' = 2, 'AvatarMarketplaceToken' = 3, 'Look' = 4]
          - `Id` string
        - `Status` 0 | 1 | 2: ['Invalid' = 0, 'Delisted' = 1, 'NotDelisted' = 2]
      - `scheduledRelease` RobloxCollectiblesSharedV1ScheduledRelease
        - `OnSaleTime` GoogleProtobufWellKnownTypesTimestamp
          - `Seconds` integer
          - `Nanos` integer
        - `OffSaleTime` GoogleProtobufWellKnownTypesTimestamp
          - `Seconds` integer
          - `Nanos` integer
      - `cannotBePublishedReason` 0 | 1 | 2 | 3 | 4 | 5 | 6: The cannot be published reason. If Invalid, the item CAN be published. ['Invalid' = 0, 'None' = 1, 'Iec' = 2, 'AssetPartOfBundle' = 3, 'Delisted' = 4, 'RealWorldCommerce' = 5, 'AiGenerated' = 6]
      - `dynamicPriceConfiguration` RobloxAvatarMarketplacePublishingAvatarMarketplacePublishingGatewayV1Beta1DynamicPriceConfiguration
        - `MinimumPrice` integer
        - `PriceOffset` integer
        - `IsOptOutRegionalPricing` boolean
      - `isRentalOptIn` boolean: Whether the item is opted into rental.
      - `rentalOptions` RobloxItemConfigurationApiRentalOption[]: All rental options for the collectible item. Empty if the item is not opted in for rental.
        - `rentalDays` integer: The duration of the rental in days. null is the permanent purchase price.
        - `priceInRobux` integer: The price of the rental in Robux.
      - `taxonomyDetails` RobloxItemConfigurationApiModelsMarketplaceItemTaxonomyDetails: The taxonomy-related details of an item.
        - `dpfTaxonomyName` string
        - `dpfTaxonomyId` string
        - `dpfTaxonomyIsDefaultTaxonomy` boolean
      - `isHD` boolean: Whether the item is HD.
      - `discoverabilityDetails` RobloxItemConfigurationApiModelsMarketplaceItemDiscoverabilityDetails: The discoverability-related details of an item.
        - `isDiscoverabilityReduced` boolean
        - `isCoreContentGated` boolean
      - `isEmissive` boolean: Whether the item has emissive properties.
      - `isCollectible` boolean: Whether the item is a collectible (i.e. it has been published into the collectible system).
      - `saleLocation` RobloxItemConfigurationApiModelsMarketplaceItemSaleLocation: The collectible sale location.
        - `saleLocationType` 0 | 1 | 2 | 3 | 4: The sale location type. ['SALE_LOCATION_TYPE_INVALID' = 0, 'SALE_LOCATION_TYPE_SHOP_AND_ALL_EXPERIENCES' = 1, 'SALE_LOCATION_EXPERIENCES_AND_DEV_API_ONLY' = 2, 'SALE_LOCATION_TYPE_SHOP_ONLY' = 3, 'SALE_LOCATION_TYPE_SHOP_AND_EXPERIENCES_BY_ID' = 4]
        - `universeIds` integer[]: The universe ids the collectible item may be sold in.
      - `collectibleDetails` RobloxItemConfigurationApiModelsMarketplaceItemCollectibleDetails: Details specific to a collectible item. Set only when the item is a collectible.
        - `collectibleItemId` string: The collectible item id.
        - `quantityLimitPerUser` integer: The max number of instances of the collectible item a user can own. Null if there is no limit.
        - `totalRestockedQuantity` integer: The total quantity that has been restocked for the collectible item.
        - `lastRestockedTime` string, date-time: The time the collectible item was last restocked.
        - `isResellable` boolean: Whether the collectible item is resellable.
        - `totalQuantity` integer: The total quantity available for the collectible item.
        - `licensingInfo` RobloxItemConfigurationApiModelsMarketplaceItemLicensingInfo: Licensing info for the collectible item.
          - `state` 0 | 1 | 2 | 3 | 4: The licensing state. See Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingState. ['Invalid' = 0, 'NotLicensed' = 1, 'Licensed' = 2, 'Expired' = 3, 'Terminated' = 4]
          - `licenseId` string: The id of the license backing the agreement. Empty unless Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingInfo.State is Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingState.Licensed, Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingState.Expired, or Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingState.Terminated.
          - `agreementId` string: The id of the agreement backing the license. Empty unless Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingInfo.State is Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingState.Licensed, Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingState.Expired, or Roblox.ItemConfiguration.Api.Models.MarketplaceItem.LicensingState.Terminated.
    - `folder` RobloxItemConfigurationApiModelsFolderFolder: Information about a folder.
      - `folderId` string: The unique identifier for the folder.
      - `name` string: The name of the folder.
      - `parentFolderId` string: The ID of the parent folder. Null for root folders.
  - `nextCursor` string
  - `prevCursor` string

## Other responses

- `400`: 1: The folder ID is invalid. 16: The limit is invalid. 17: The pagination cursor is invalid.
- `401`: 0: Authorization has been denied for this request. 7: The authenticated user is missing.
- `403`: 8: The user does not own the folder.
- `404`: 5: The folder was not found.
- `503`: 11: The service is unavailable.

## Changes

- **2026-11-13** `e1e00fbc18e5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/roblox/apis/roblox-api/changes/v1/folders/:folderId/items/get.md)

---

[API](https://skmtc.dev/roblox/apis/roblox-api.md) - [All operations](https://skmtc.dev/roblox/apis/roblox-api/llms.txt) - [OpenAPI document](https://skmtc.dev/roblox/apis/roblox-api/revisions/c2ba38e6ba62?raw)
