---
title: "Gets recommendations for a given bundle, bundleId of 0 returns randomized bundles
- Accepts both public and authenticated users."
method: GET
path: "/v1/bundles/{bundleId}/recommendations"
tags: ["Assets", "Avatars"]
---

# Gets recommendations for a given bundle, bundleId of 0 returns randomized bundles
- Accepts both public and authenticated users.

`GET /v1/bundles/{bundleId}/recommendations`

## Path parameters

- `bundleId` integer, required

## Query parameters

- `numItems` integer

## Response `200`

OK

- RobloxWebWebAPIModelsApiArrayResponseRobloxCatalogApiBundleDetailsModel
  - `data` RobloxCatalogApiBundleDetailsModel[]
    - `id` integer
    - `name` string
    - `description` string
    - `bundleType` string
    - `isRecolorable` boolean
    - `items` RobloxCatalogApiBundleItemDetailModel[]
      - `owned` boolean
      - `id` integer
      - `name` string
      - `type` string
      - `supportsHeadShapes` boolean — Whether the bundle item supports head shapes.
      - `assetType` integer — The asset type of the bundle item, if it's an asset.
    - `creator` RobloxCatalogApiBundleCreatorModel
      - `id` integer
      - `name` string
      - `type` string
      - `hasVerifiedBadge` boolean
    - `product` RobloxCatalogApiBundleProductModel
      - `id` integer
      - `type` string
      - `isPublicDomain` boolean
      - `isForSale` boolean
      - `priceInRobux` integer
      - `isFree` boolean
      - `noPriceText` string
      - `premiumPricing` RobloxCatalogApiPremiumPricingModel — Defines the Premium pricing for a catalog item.
        - `premiumDiscountPercentage` integer — The Premium discount percentage for a catalog item.
        - `premiumPriceInRobux` integer — The Premium price for a catalog item.
    - `itemRestrictions` integer[]
    - `collectibleItemDetail` RobloxCatalogApiCollectibleItemDetail
      - `collectibleItemId` string
      - `collectibleProductId` string
      - `price` integer
      - `lowestPrice` integer
      - `lowestResalePrice` integer
      - `totalQuantity` integer
      - `unitsAvailable` integer
      - `saleLocation` RobloxCatalogApiSaleLocation — SaleLocation information for a collectible item (asset or bundle).
        - `saleLocationType` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 — Sale location type related for an item detail. ['NotApplicable' = 0, 'ShopOnly' = 1, 'MyExperiencesOnly' = 2, 'ShopAndMyExperiences' = 3, 'ExperiencesById' = 4, 'ShopAndAllExperiences' = 5, 'ExperiencesDevApiOnly' = 6, 'ShopAndExperiencesById' = 7]
        - `saleLocationTypeId` integer
        - `universeIds` integer[]
        - `enabledUniverseIds` integer[]
      - `hasResellers` boolean
      - `saleStatus` 0 | 1 | 2 | 3 | 4 — ['Invalid' = 0, 'Draft' = 1, 'OffSale' = 2, 'OnSale' = 3, 'PendingSale' = 4]
      - `quantityLimitPerUser` integer
      - `offSaleDeadline` string, date-time
      - `collectibleItemType` 0 | 1 | 2 — The type of collectible item, limited or non-limited for now. ['Invalid' = 0, 'Limited' = 1, 'NonLimited' = 2]
      - `lowestAvailableResaleProductId` string
      - `lowestAvailableResaleItemInstanceId` string
      - `resaleRestriction` 0 | 1 | 2 — ['Invalid' = 0, 'None' = 1, 'Disabled' = 2]
    - `discountInformation` RobloxCatalogApiDiscountInformation
      - `originalPrice` integer
      - `totalDiscountPercentage` number, float
      - `totalDiscountAmount` integer
      - `discounts` RobloxCatalogApiDiscount[]
        - `robuxDiscountAmount` integer
        - `robuxDiscountPercentage` number, float
        - `discountCampaign` string
        - `localizedDiscountAttribution` string

## Other responses

- `400` — 1: Invalid bundle 2: Error retrieving bundles 3: Error getting bundle recommendations 4: NumItems exceed maximum

---

[API](https://skmtc.net/roblox/apis/roblox-api.md) · [All operations](https://skmtc.net/roblox/apis/roblox-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/roblox/roblox-api/versions/756260310407/schema)
