# Get list of bundles

Gets a list of bundles for building a catalog.

  Attention
    All projects have the limitation to the number of items that you can
    get in the response. The default and maximum value is 50 items
    per response. To get more data page by page, use limit
    and offset fields.
  
  Note
    This API call returns generic item catalog data when used without
    authorization. Use authorization to retrieve
    personalized
    user data, such as limits and promotions associated with the item.
    To do this, pass the user JWT in the Authorization header.
    For more information about user JWT, see the Security block
    for this call.

Endpoint: GET /v2/project/{project_id}/items/bundle
Version: 2.0.0
Security: XsollaLoginUserJWT

## Path parameters:

  - `project_id` (integer, required)
    Project ID. You can find this parameter in your Publisher Account next to the project name and in the browser address bar when working with a project. The URL has the following format: https://publisher.xsolla.com//projects/.
    Example: 44056

## Query parameters:

  - `limit` (integer)
    Limit for the number of elements on the page.
    Example: 50

  - `offset` (integer)
    Number of the element from which the list is generated (the count starts from 0).

  - `locale` (string)
    Response language. Two-letter lowercase language code per ISO 639-1 (for example, en). Five-character locale codes (for example, en-US) are supported in localization fields such as name and description, but are normalized to two-letter codes in responses. You can find the full list of supported languages in the documentation.

  - `additional_fields[]` (array)
    Additional fields to include in the response. By default, these fields are not returned. Pass the required values to include them.
    Enum: "media_list", "order", "long_description", "custom_attributes", "item_order_in_group"

  - `country` (string)
    Two-letter uppercase country code per ISO 3166-1 alpha-2. Check the documentation for detailed information about countries supported by Xsolla and the process of determining the country.
    Example: "US"

  - `promo_code` (string)
    Unique case sensitive code. Contains letters and numbers.
    Example: "WINTER2021"

  - `show_inactive_time_limited_items` (integer)
    Shows time-limited items that are not available to the user. The validity period of such items has not started or has already expired.
    Example: 1

## Response 200 fields (application/json):

  - `has_more` (boolean)
    Used as an indicator that there are more pages.

  - `items` (array)

  - `items.item_id` (integer)
    Internal unique item ID.

  - `items.sku` (string)
    Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores.

  - `items.name` (string)
    Item name.

  - `items.groups` (array)
    Groups the item belongs to.

  - `items.groups.external_id` (string)
    [External item group ID](/api/catalog/item-groups-admin/admin-create-item-group#item-groups-admin/admin-create-item-group/t=request&path=external_id) specified during creation.
    Example: "exclusive"

  - `items.groups.name` (string)
    Name of the group.
    Example: "Exclusive"

  - `items.groups.item_order_in_group` (integer)
    The item's position within the group that determines its display order. 
Returned only if requested via the additional_fields[] query parameter.
    Example: 1

  - `items.description` (string,null)
    Item description.

  - `items.long_description` (object,null)
    Object with localizations for long description of item. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character locale codes (e.g., en-US).  While both formats are accepted as input, responses return two-letter lowercase language codes. When both variants for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the [documentation](/doc/shop-builder/references/supported-languages/).

  - `items.attributes` (array)
    List of attributes and their values corresponding to the item. Can be used for catalog filtering.

  - `items.attributes.external_id` (string)
    Unique attribute ID. The external_id may contain only lowercase and uppercase Latin alphanumeric characters, dashes, and underscores.

  - `items.attributes.name` (string)
    Name of attribute.
    Example: "Genre"

  - `items.attributes.values` (array)

  - `items.attributes.values.external_id` (string)
    Unique value ID for an attribute. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

  - `items.attributes.values.value` (string)
    Value of attribute.
    Example: "Strategy"

  - `items.type` (string)
    Type of item.

  - `items.bundle_type` (string)
    Bundle type. Use standard to create a bundle with items and specify the SKUs of the items included in the bundle.
Use partner_side_content to create an empty bundle and add items on your side using a [webhook](https://developers.xsolla.com/webhooks/operation/personalized-partner-catalog/). This type is used only for [Catalog personalization on partner side](https://developers.xsolla.com/doc/shop-builder/features/personalization/#guides_personalization_on_partner_side).
    Enum: "standard", "partner_side_content"

  - `items.image_url` (string,null)
    Image URL. For the image to display correctly and load quickly on the payment UI, check our image and URL guidelines:Supported formats: WebP (recommended), PNG, JPG.File size: ≤ 50 KB (for WebP) or ≤ 150 KB (for PNG and JPG).Image size: 280 x 280 px.Color space: sRGB.Protocol: HTTPS with long-lived caching for versioned URLs.

  - `items.is_free` (boolean)
    Whether the item is free.

  - `items.price` (object,null)
    Item price.

  - `items.price.amount` (string, required)
    Item price with a discount.

  - `items.price.amount_without_discount` (string, required)
    Item price.

  - `items.price.currency` (string, required)
    Item price currency. Three-letter code per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).

  - `items.total_content_price` (object,null)
    Sum of the bundle content prices.

  - `items.total_content_price.amount` (string)
    Sum of the bundle content prices with a discount.
    Example: "100.99"

  - `items.total_content_price.amount_without_discount` (string)
    Sum of the bundle content prices.
    Example: "100.99"

  - `items.total_content_price.currency` (string)
    Item price currency. Three-letter code per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).

  - `items.virtual_prices` (array)
    Virtual prices.

  - `items.virtual_prices.amount` (integer)
    Item price in virtual currency.
    Example: 100

  - `items.virtual_prices.amount_without_discount` (integer)
    Item price in virtual currency without discount. Always equal to amount since discounts are not applied to prices in virtual currency.
    Example: 200

  - `items.virtual_prices.sku` (string)
    Virtual currency SKU.
    Example: "vc_gold"

  - `items.virtual_prices.is_default` (boolean)
    Whether it is the default price in virtual currency.
    Example: true

  - `items.virtual_prices.image_url` (string,null)
    Virtual currency image URL.
    Example: "http://image.png"

  - `items.virtual_prices.name` (string)
    Virtual currency name.
    Example: "Gold"

  - `items.virtual_prices.type` (string)
    Item type. For virtual currency, it is virtual_currency.
    Example: "virtual_currency"

  - `items.virtual_prices.description` (string,null)
    Virtual currency description.
    Example: "In-game currency used to purchase weapons and upgrades"

  - `items.can_be_bought` (boolean)
    If true, the user can buy an item.

  - `items.content` (array)
    Bundle package content.

  - `items.content.sku` (string)
    Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, dashes, and underscores.
    Example: "com.xsolla.big_rocket_1"

  - `items.content.name` (string)
    Item name.
    Example: "Big Rocket"

  - `items.content.type` (string)
    Type of item: virtual_good/virtual_currency/bundle.
    Example: "virtual_currency"

  - `items.content.description` (string)
    Item description.
    Example: "Big Rocket - description"

  - `items.content.image_url` (string)
    Image URL.
    Example: "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png"

  - `items.content.quantity` (integer)
    Quantity of item in a package.
    Example: 250

  - `items.content.virtual_item_type` (string)
    Type of virtual item.

Possible values:
- consumable — An item that disappears from the inventory after use (e.g., ammo).
- non_consumable — An item that stays in the inventory for an unlimited period of time.
- non_renewing_subscription — Time-limited item that can represent access to services or content for a limited period of time.
    Enum: "consumable", "non_consumable", "non_renewing_subscription"

  - `items.content.attributes` (array)
    List of attributes and their values corresponding to the item. Can be used for catalog filtering.

  - `items.content.attributes.external_id` (string)
    Unique attribute ID. The external_id may contain only lowercase and uppercase Latin alphanumeric characters, dashes, and underscores.

  - `items.content.attributes.name` (string)
    Name of attribute.
    Example: "Genre"

  - `items.content.attributes.values` (array)

  - `items.content.attributes.values.external_id` (string)
    Unique value ID for an attribute. The external_id may only contain lowercase Latin alphanumeric characters, dashes, and underscores.

  - `items.content.attributes.values.value` (string)
    Value of attribute.
    Example: "Strategy"

  - `items.content.price` (object,null)
    Item prices.

  - `items.content.price.amount` (string)
    Item price with a discount.
    Example: "100.99"

  - `items.content.price.amount_without_discount` (string)
    Item price.
    Example: "100.99"

  - `items.content.price.currency` (string)
    Item price currency. Three-letter code per [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Check the documentation for detailed information about [currencies supported by Xsolla](https://developers.xsolla.com/doc/pay-station/references/supported-currencies/).
    Example: "USD"

  - `items.content.virtual_prices` (array)
    Virtual prices.

  - `items.content.virtual_prices.amount` (integer)
    Item price in virtual currency.
    Example: 100

  - `items.content.virtual_prices.amount_without_discount` (integer)
    Item price in virtual currency without discount. Always equal to amount since discounts are not applied to prices in virtual currency.
    Example: 200

  - `items.content.virtual_prices.sku` (string)
    Virtual currency SKU.
    Example: "vc_gold"

  - `items.content.virtual_prices.is_default` (boolean)
    Whether it is the default price in virtual currency.
    Example: true

  - `items.content.virtual_prices.image_url` (string,null)
    Virtual currency image URL.
    Example: "http://image.png"

  - `items.content.virtual_prices.name` (string)
    Virtual currency name.
    Example: "Gold"

  - `items.content.virtual_prices.type` (string)
    Item type. For virtual currency, it is virtual_currency.
    Example: "virtual_currency"

  - `items.content.virtual_prices.description` (string,null)
    Virtual currency description.
    Example: "In-game currency used to purchase weapons and upgrades"

  - `items.content.limits` (object,null)
    Item limits.

  - `items.content.limits.per_user` (object,null)
    Item limits for a user.

  - `items.content.limits.per_user.total` (integer)
    Maximum number of items a single user can purchase.
    Example: 5

  - `items.content.limits.per_user.available` (integer)
    Remaining number of items the current user can purchase.
    Example: 3

  - `items.content.limits.per_user.recurrent_schedule` (any)

  - `items.content.limits.per_user.limit_exceeded_visibility` (string)
    Determines the visibility of the item in the catalog after the purchase limit is reached, until the next limit reset.

Applies to items for which recurring limit resets are configured in the recurrent_schedule array.

If limit resets are not configured, the item doesn't appear in the catalog after the purchase limit is reached,
regardless of the limit_exceeded_visibility value.

Possible values:
- show — The item is returned in catalog retrieval API calls after the purchase limit is reached. In client-side
catalog retrieval API calls, once the limit is reached, the item is returned with the can_be_bought: false flag. The
next reset date is returned in reset_next_date.
- hide — The item is not returned in catalog retrieval API calls after the purchase limit is reached, until the
limit is reset.
    Enum: "show", "hide"

  - `items.content.limits.per_item` (object,null)
    Item limits for an item.

  - `items.content.limits.per_item.total` (integer)
    Maximum number of items all users can purchase.
    Example: 5

  - `items.content.limits.per_item.available` (integer)
    Remaining number of items all users can purchase.
    Example: 3

  - `items.content.is_free` (boolean)
    Whether the item is free.

  - `items.content.groups` (array)
    Groups the item belongs to.

  - `items.content.groups.external_id` (string)
    Example: "horror"

  - `items.content.groups.name` (object)
    Name of item. Should contain key/value pairs
where key is a locale with "^[a-z]{2}" format, value is string.
    Example: {"en":"Horror","de":"Horror"}

  - `items.promotions` (array)
    Applied promotions for specific items in the cart. The array is returned in the following cases:

* A discount promotion is configured for a specific item.

* A promo code with the Discount on selected items setting is applied.

If no item-level promotions are applied, an empty array is returned.

  - `items.promotions.name` (string)

  - `items.promotions.date_start` (string,null)

  - `items.promotions.date_end` (string,null)

  - `items.promotions.discount` (object,null)

  - `items.promotions.discount.percent` (string,null)

  - `items.promotions.discount.value` (string,null)

  - `items.promotions.bonus` (array)

  - `items.promotions.bonus.sku` (string)

  - `items.promotions.bonus.quantity` (integer)

  - `items.promotions.bonus.type` (string)
    Bonus item type.
    Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft"

  - `items.promotions.bonus.name` (string)
    Bonus item name. Not available for physical_good bonus item type.

  - `items.promotions.bonus.image_url` (string)
    Bonus item image URL. Not available for physical_good bonus item type.

  - `items.promotions.bonus.bundle_type` (string)
    Bonus bundle item type. Available only for bundle bonus item type.
    Enum: "standard", "virtual_currency_package"

  - `items.promotions.limits` (object)

  - `items.promotions.limits.per_user` (object)

  - `items.promotions.limits.per_user.available` (integer)

  - `items.promotions.limits.per_user.total` (integer)

  - `items.limits` (object,null)
    Item limits.

  - `items.limits.per_user` (object,null)
    Item limits for a user.

  - `items.limits.per_user.total` (integer)
    Maximum number of items a single user can purchase.
    Example: 5

  - `items.limits.per_user.available` (integer)
    Remaining number of items the current user can purchase.
    Example: 3

  - `items.limits.per_user.recurrent_schedule` (any)

  - `items.limits.per_user.limit_exceeded_visibility` (string)
    Determines the visibility of the item in the catalog after the purchase limit is reached, until the next limit reset.

Applies to items for which recurring limit resets are configured in the recurrent_schedule array.

If limit resets are not configured, the item doesn't appear in the catalog after the purchase limit is reached,
regardless of the limit_exceeded_visibility value.

Possible values:
- show — The item is returned in catalog retrieval API calls after the purchase limit is reached. In client-side
catalog retrieval API calls, once the limit is reached, the item is returned with the can_be_bought: false flag. The
next reset date is returned in reset_next_date.
- hide — The item is not returned in catalog retrieval API calls after the purchase limit is reached, until the
limit is reset.
    Enum: "show", "hide"

  - `items.limits.per_item` (object,null)
    Item limits for an item.

  - `items.limits.per_item.total` (integer)
    Maximum number of items all users can purchase.
    Example: 5

  - `items.limits.per_item.available` (integer)
    Remaining number of items all users can purchase.
    Example: 3

  - `items.periods` (array,null)
    Item sales period.

  - `items.periods.date_from` (string)
    Date when the specified item will be available for sale.
    Example: "2020-08-11T10:00:00+03:00"

  - `items.periods.date_until` (string,null)
    Date when the specified item will become unavailable for sale. Can be null.
    Example: "2020-08-11T20:00:00+03:00"

  - `items.custom_attributes` (object)
    A JSON object containing item attributes and values.

  - `items.vp_rewards` (array)
    List of value point rewards for the item.

  - `items.vp_rewards.item_id` (integer)
    Internal unique item ID.

  - `items.vp_rewards.sku` (string)
    Unique value point ID.

  - `items.vp_rewards.amount` (integer)
    Amount of value points.

  - `items.vp_rewards.name` (string)
    Value point name.

  - `items.vp_rewards.image_url` (string)
    Image URL.

  - `items.vp_rewards.is_clan` (boolean)
    Whether the value point is used in clan reward chains.

  - `items.loyalty_rewards` (array)
    Loyalty points the user receives as a reward for purchasing the item.

  - `items.loyalty_rewards.name` (string)
    Loyalty point name.

  - `items.loyalty_rewards.sku` (string)
    Loyalty point SKU. Pass this value in the loyalty_point_sku parameter of other API calls, for example, when creating an order paid with loyalty points.

  - `items.loyalty_rewards.description` (string)
    Loyalty point description.

  - `items.loyalty_rewards.image_url` (string,null)
    Image URL.

  - `items.loyalty_rewards.amount` (integer)
    Number of loyalty points the user receives for purchasing the item.

  - `items.loyalty_prices` (array)
    Loyalty points that can be used to purchase the item.

  - `items.loyalty_prices.name` (string)
    Loyalty point name.

  - `items.loyalty_prices.sku` (string)
    Loyalty point SKU. Pass this value in the loyalty_point_sku parameter of other API calls, for example, when creating an order paid with loyalty points.

  - `items.loyalty_prices.description` (string)
    Loyalty point description.

  - `items.loyalty_prices.image_url` (string,null)
    Image URL.

  - `items.loyalty_prices.amount` (integer)
    Item price in the specified loyalty points.

  - `items.order` (integer)
    Bundle's order priority in the list.

  - `items.media_list` (array)
    Bundle's additional assets.

  - `items.media_list.type` (string)
    Type of media: image/video.
    Enum: "image", "video"

  - `items.media_list.url` (string)
    Resource file.
    Example: "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"


