---
title: "Returns list of item details complete with user ownership and economy information. Batch version of GetItemDetailsComplete. Items with critical errors are returned in ItemErrors with their corresponding HTTP status code (404 for not-found, 500 for other errors)."
method: POST
path: "/v1/catalog/items/details/complete"
tags: ["Assets"]
---

# Returns list of item details complete with user ownership and economy information. Batch version of GetItemDetailsComplete. Items with critical errors are returned in ItemErrors with their corresponding HTTP status code (404 for not-found, 500 for other errors).

`POST /v1/catalog/items/details/complete`

## Request

- Base URL: `https://catalog.roblox.com`
- URL: `https://catalog.roblox.com/v1/catalog/items/details/complete`
- Auth: one of:
  - none
  - API key in cookie `.ROBLOSECURITY`

## Headers

- `Roblox-Place-Id` integer, required
- `Roblox-Game-Id` string, required

## Request body

- RobloxCatalogApiMultigetItemDetailsRequestModel
  - `items` RobloxCatalogApiMultigetItemDetailsRequestItem[]: The items to retrieve details for. Each endpoint has an item count limit per request.
    - `itemType` 1 | 2: ['Asset' = 1, 'Bundle' = 2]
    - `id` integer

## Response `200`

OK

- RobloxCatalogApiBatchItemDetailsCompleteResponse: Response for the batch GetItemDetailsComplete endpoint. Each entry in Roblox.Catalog.Api.BatchItemDetailsCompleteResponse.Data is either a successfully hydrated item or a critical error.
  - `data` RobloxCatalogApiCatalogItemOrError[]
    - `id` integer
    - `itemType` 1 | 2: ['Asset' = 1, 'Bundle' = 2]
    - `item` RobloxCatalogApiCatalogSearchDetailedCompleteResponseItem: The detailed model for catalog items, complete with economy and ownership info. This response model is bound in the game-engine here: https://create.roblox.com/docs/reference/engine/classes/AvatarEditorService#GetItemDetails.
      - `expectedSellerId` integer: Id to pass into economy purchase api userID of lowest private seller if resellable Creator AgentID (deprecated) / CreatorTargetId otherwise.
      - `owned` boolean: Whether item is owned by user.
      - `isPurchasable` boolean: Whether item can be purchased.
      - `creatingUniverseId` integer: The universeId that this asset was created in, null if not an in-experience creation.
      - `expirationTime` string, date-time: If a user purchased timed option item, its expiration time.
      - `id` integer: The Item Id.
      - `itemType` 1 | 2: The Roblox.Catalog.Api.CatalogSearchDetailedResponseItem.ItemType item type. ['Asset' = 1, 'Bundle' = 2]
      - `assetType` 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: The Roblox.Platform.Assets.AssetType serialized if item is an asset.
      - `bundleType` 1 | 2 | 3 | 4: The Roblox.Platform.Bundles.Core.BundleType serialized if item is a bundle.
      - `isRecolorable` boolean: Gets or sets the property whether a bundle is recolorable or not. Not serialized for asset.
      - `name` string: The item name.
      - `description` string: The item description.
      - `productId` integer: The product id of corresponding item.
      - `bundledItems` RobloxCatalogApiBundleItemDetailModel[]: The System.Collections.Generic.IEnumerable`1 contained in the bundle, serialized if item is a bundle.
        - `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.
      - `itemStatus` integer[]: The System.Collections.Generic.IEnumerable`1 if item has Roblox.Catalog.Api.CatalogItemStatus.
      - `itemRestrictions` integer[]: The System.Collections.Generic.IEnumerable`1 if item has Roblox.Catalog.Api.CatalogItemRestriction.
      - `creatorHasVerifiedBadge` boolean: The verified status of a creator.
      - `creatorType` 0 | 1 | 2: The Roblox.Catalog.Api.CatalogSearchDetailedResponseItem.CreatorType of the item's creator.
      - `creatorTargetId` integer: The creator id of the item's creator.
      - `creatorName` string: The creator name of the item's creator.
      - `price` integer: The item's price.
      - `lowestPrice` integer: The item's lowest price, only if the item is resellable and there are resellers.
      - `lowestResalePrice` integer: The item's lowest resale price, only if the item is resellable and there are resellers, including current user.
      - `priceStatus` string: The localized string item status if the item's price should not be displayed.
      - `unitsAvailableForConsumption` integer: The number of items in stock, only if the item is resellable and is limitedEdition.
      - `favoriteCount` integer: The number of times the item has been favorited.
      - `offSaleDeadline` string, date-time: When the item will go off sale, if the item has an off deadline.
      - `collectibleItemId` string: The item's collectible item id. It is an UUID if a item is collectible type. Otherwise, it is null.
      - `totalQuantity` integer: The collectible or limited-unique item's total quantity of unique instances.
      - `saleLocationType` 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7: The sale location type of the item. ['NotApplicable' = 0, 'ShopOnly' = 1, 'MyExperiencesOnly' = 2, 'ShopAndMyExperiences' = 3, 'ExperiencesById' = 4, 'ShopAndAllExperiences' = 5, 'ExperiencesDevApiOnly' = 6, 'ShopAndExperiencesById' = 7]
      - `hasResellers` boolean: An indicator if the item has resellers or not (null if not resellable).
      - `isOffSale` boolean: An indicator if the item is off sale or not.
      - `quantityLimitPerUser` integer: Quantity limit for how many instances a user can buy.
      - `supportsHeadShapes` boolean: Whether the item supports head shapes.
      - `timedOptions` RobloxCatalogApiTimedOption[]: The timed options for the item.
        - `days` integer: The days for the timed option.
        - `price` integer: The price for the timed option.
        - `discountInformation` RobloxCatalogApiDiscountInformation
          - `originalPrice` integer
          - `totalDiscountPercentage` number, float
          - `totalDiscountAmount` integer
          - `discounts` RobloxCatalogApiDiscount[]
            - `robuxDiscountAmount` integer
            - `robuxDiscountPercentage` number, float
            - `discountCampaign` string
            - `localizedDiscountAttribution` string
        - `selected` boolean: To indicate if this option is selected by the client.
    - `httpStatusCode` integer

## Other responses

- `400`: 2: Invalid count
- `403`: 0: Token Validation Failed 7: User is unauthorized.
- `429`: 8: The flood limit has been exceeded.

## Changes

- **2026-10-14** `5dcfa33df56a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/roblox/apis/roblox-api/changes/v1/catalog/items/details/complete/post.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/bcfdc20689cd?raw)
