# Get list of bundles

Gets the list of bundles within a project for administration.

NoteDo not use this endpoint for building a store catalog.

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

## 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).

## Response 200 fields (application/json):

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

  - `total_items_count` (integer)
    Total number of items in the system.

  - `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` (object,null)
    Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options 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.
    Example: [{"external_id":"attribute_external_id","name":{"en":"Attribute name","de":"Attributname"},"values":[{"external_id":"value_1","name":{"en":"value 1","de":"wert 1"}},{"external_id":"value_2","name":{"en":"value 2","de":"wert 2"}}]}]

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

  - `items.attributes.name` (object)
    Object with localizations for attribute's name. Keys are specified in ISO 3166-1.
    Example: {"en":"Attribute name","de":"Attributname"}

  - `items.attributes.values` (array, required)
    Example: [{"external_id":"value_1","name":{"en":"value 1","de":"wert 1"}},{"external_id":"value_2","name":{"en":"value 2","de":"wert 2"}}]

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

  - `items.attributes.values.value` (object, required)
    Object with localizations of the value's name. Keys are specified in ISO 3166-1.

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

  - `items.bundle_type` (string)
    Bundle type. Returned if item type is a bundle.
    Enum: "standard", "virtual_currency_package", "partner_side_content"

  - `items.description` (object,null)
    Object with localizations for item’s description. 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 options 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.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.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.is_paid_randomized_reward` (boolean)
    Whether the item is a randomized paid reward, e.g., a loot box.

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

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

  - `items.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.prices` (array)
    Prices in real currencies.

  - `items.prices.amount` (string, required)
    Item price.

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

  - `items.prices.is_default` (boolean, required)
    Default price is used to build a catalog if no price in the user's currency is specified.

  - `items.prices.is_enabled` (boolean, required)
    The price is enabled.

  - `items.prices.country_iso` (string,null)
    Country where this price is available. Two-letter code per [ISO 3166-1 alpha 2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
    Example: "US"

  - `items.virtual_prices` (array)

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

  - `items.virtual_prices.name` (object,null)
    Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options 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.virtual_prices.type` (string)
    Virtual currency type.

  - `items.virtual_prices.description` (object,null)
    Object with localizations for item’s description. 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 options 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.virtual_prices.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.virtual_prices.amount` (string)
    Item price with a discount.

  - `items.virtual_prices.is_default` (boolean)
    Whether the price is default for an item.

  - `items.media_list` (any)

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

  - `items.is_enabled` (boolean)
    If disabled, the item can't be found and purchased.

  - `items.is_show_in_store` (boolean)
    Item is available for purchase.

  - `items.regions` (array)

  - `items.regions.id` (integer)
    Example: 1

  - `items.content` (array)

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

  - `items.content.name` (object,null)
    Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options 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.content.type` (string)
    Type of item.

  - `items.content.description` (object,null)
    Object with localizations for item’s description. 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 options 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.content.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.content.quantity` (integer)
    Quantity of the item type in the bundle.

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

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

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

  - `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)
    Global item limitation.

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

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

  - `items.limits.per_item.reserved` (integer)

  - `items.limits.per_item.sold` (integer)

  - `items.limits.recurrent_schedule` (object,null)
    Limit refresh period.

  - `items.limits.recurrent_schedule.per_user` (any)
    User limit refresh period.

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

  - `items.periods.date_from` (string,null)
    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.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).

## Response 401 fields (application/json):

  - `statusCode` (integer)
    Example: 401

  - `errorCode` (integer)
    Example: 1020

  - `errorMessage` (string)
    Example: "[0401-1020]: Error in Authentication method occurred"


