> ## Documentation Index
> Fetch the complete documentation index at: https://developers.appstle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get build-a-box configuration by handle



## OpenAPI

````yaml /bundles/storefront-api-swagger.json get /bundles/bb/api/build-a-box/get-bundle/{handle}
openapi: 3.0.1
info:
  description: ''
  title: Storefront APIs
  version: 0.0.1
servers:
  - url: https://bundles-admin.appstle.com
security: []
tags:
  - description: Fetch build-a-box configuration and generate bundle discounts.
    name: Build-a-Box
  - description: Storefront-facing Bundles widget and visitor activity endpoints.
    name: Storefront
  - description: >-
      Storefront product and collection data, proxied through the Shopify
      Storefront API for build-a-box and bundle widgets.
    name: Product Catalog
paths:
  /bundles/bb/api/build-a-box/get-bundle/{handle}:
    get:
      tags:
        - Build-a-Box
      summary: Get build-a-box configuration by handle
      operationId: getValidSubscriptionCustomer
      parameters:
        - in: path
          name: handle
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BuildABoxResponse'
          description: OK
components:
  schemas:
    BuildABoxResponse:
      properties:
        bundle:
          $ref: '#/components/schemas/BundleRuleDTO'
        products:
          items:
            $ref: '#/components/schemas/BuildABoxProductVariantDTO'
          type: array
        variants:
          items:
            format: int64
            type: integer
          type: array
      type: object
    BundleRuleDTO:
      properties:
        allowMixAndMatchBelowMinimumTier:
          type: boolean
        allowedCountries:
          type: string
        allowedTags:
          type: string
        announcementBarMessage:
          type: string
        appliesOn:
          enum:
            - ONE_TIME
            - SUBSCRIPTION
            - BOTH
          type: string
        autofillNotChosenItems:
          type: boolean
        automaticDiscountNodeId:
          type: string
        automaticShippingDiscountNodeId:
          type: string
        averageOrderValue:
          format: double
          type: number
        badgesBackgroundColor:
          type: string
        badgesStyles:
          enum:
            - TRIANGLES
            - NORMAL
          type: string
        badgesTextColor:
          type: string
        blockTitleColor:
          type: string
        blockTitleFontSize:
          format: int32
          type: integer
        blockTitleFontStyle:
          type: string
        borderRadius:
          format: int32
          type: integer
        breadCrumbSelectSectionIconUrl:
          type: string
        bundleActiveFrom:
          format: date-time
          type: string
        bundleActiveTo:
          format: date-time
          type: string
        bundleCheckoutSectionPosition:
          enum:
            - ABOVE
            - BELOW
          type: string
        bundleHtml:
          type: string
        bundlePageBackgroundColor:
          type: string
        bundleProductId:
          format: int64
          type: integer
        bundleProductNameSortOrder:
          enum:
            - DEFAULT
            - ASC
            - DESC
          type: string
        bundleRedirect:
          enum:
            - CART
            - CHECKOUT
            - CUSTOM
            - NONE
          type: string
        bundleSubType:
          enum:
            - BUY_X_GET_Y
            - FIXED_BUNDLE
          type: string
        bundleType:
          enum:
            - MIX_AND_MATCH
            - CLASSIC
            - INFINITE
            - CUSTOMIZE_BUNDLE
            - CLASSIC_BUILD_A_BOX
            - SINGLE_PRODUCT_BUILD_A_BOX
            - VOLUME_DISCOUNT
            - DISCOUNTED_PRICING
            - SHIPPING_DISCOUNT
            - BUY_X_GET_Y
            - SECTIONED_BUNDLE
            - COMBO_BUNDLE
          type: string
        bundleVariantId:
          type: string
        buttonBackgroundColor:
          type: string
        buttonPriceSelector:
          type: string
        cardBackgroundColor:
          type: string
        cardBorderColor:
          type: string
        cardGap:
          format: int32
          type: integer
        cardHoverColor:
          type: string
        clearCart:
          enum:
            - DEFAULT
            - ENABLED
            - DISABLED
          type: string
        collectionData:
          type: string
        combinedWithOrderDiscount:
          type: boolean
        combinedWithProductDiscount:
          type: boolean
        combinedWithShippingDiscount:
          type: boolean
        comboProductFullPriceFontSize:
          format: int32
          type: integer
        comboProductFullPriceFontStyle:
          type: string
        comboProductPriceFontSize:
          format: int32
          type: integer
        comboProductPriceFontStyle:
          type: string
        comboProductTitleFontSize:
          format: int32
          type: integer
        comboProductTitleFontStyle:
          type: string
        combos:
          type: string
        compareAtPriceSelector:
          type: string
        conversionRate:
          format: int64
          type: integer
        countrySelectionType:
          enum:
            - ALL_COUNTRY
            - SELECTED_COUNTRY
          type: string
        customRedirectURL:
          type: string
        customerIncludeTags:
          type: string
        dedicatedSubscriptionLayout:
          enum:
            - LAYOUT_ONE
            - LAYOUT_TWO
            - LAYOUT_THREE
          type: string
        defaultVariants:
          type: string
        description:
          type: string
        disableCartLineForSelectedBundleItems:
          type: boolean
        disableHighestTierPreference:
          type: boolean
        disableProductDescription:
          type: boolean
        disableQuantityRestrictedSection:
          type: boolean
        disableScrollingToBundle:
          type: boolean
        disableTierRestriction:
          type: boolean
        disabledTextColor:
          type: string
        discountAppliesOn:
          enum:
            - PER_QUANTITY
            - PER_ORDER
            - PER_LINE_ITEM
          type: string
        discountApplyApproach:
          enum:
            - SHOPIFY_DISCOUNT_FUNCTION
            - SHOPIFY_DISCOUNT_API
          type: string
        discountBadgeSelector:
          type: string
        discountId:
          type: string
        discountName:
          type: string
        discountTargetType:
          enum:
            - PRODUCT
            - VARIANT
            - ANY
          type: string
        discountType:
          enum:
            - PERCENTAGE
            - FIXED_AMOUNT
            - FIXED_BUNDLE_AMOUNT
            - TIERED_DISCOUNT
            - NO_DISCOUNT
            - FREE_GIFT
          type: string
        discountValue:
          format: double
          type: number
        discountedProductChooseType:
          enum:
            - CHOOSE_ALL
            - CHOOSE_ONE
            - CHOOSE_SPECIFIC
          type: string
        discountedVariantSelectionLimit:
          format: int32
          type: integer
        discountedVariants:
          type: string
        enableAnnouncementBar:
          type: boolean
        enableCompactMixAndMatchVariants:
          type: boolean
        enableDedicatedAddToCartButton:
          type: boolean
        enableMixAndMatchNativeAddToCart:
          type: boolean
        enableOrderDiscountClass:
          type: boolean
        enableProgressiveGifts:
          type: boolean
        enableSequentialProductLoading:
          type: boolean
        enableSubscription:
          type: boolean
        enableTriggerFreeGiftWithoutWidget:
          type: boolean
        enableVolumeDiscountMixAndMatch:
          type: boolean
        enableVolumeDiscountTierRestriction:
          type: boolean
        enableVolumeDiscountUpsell:
          type: boolean
        excludeSubscriptionPlans:
          type: string
        externalBuildABoxId:
          format: int64
          type: integer
        fieldDisabledBackgroundColor:
          type: string
        fixedBundleProductPageAddToBundleButtonBackgroundColor:
          type: string
        fixedBundleProductPageAddToBundleButtonTextColor:
          type: string
        fixedBundleProductPageAddToBundleLabel:
          type: string
        fixedBundleProductPageAddToCartLabel:
          type: string
        fixedBundleProductPageAddingToCartLabel:
          type: string
        fixedBundleProductPageAdditionalOrderNoteLabel:
          type: string
        fixedBundleProductPageAllSetLabel:
          type: string
        fixedBundleProductPageAllSetLabelColor:
          type: string
        fixedBundleProductPageBorderRadius:
          format: int32
          type: integer
        fixedBundleProductPageBreakdownFreeBadgeBackgroundColor:
          type: string
        fixedBundleProductPageBreakdownFreeBadgeTextColor:
          type: string
        fixedBundleProductPageBreakdownLabel:
          type: string
        fixedBundleProductPageBreakdownToggleFontSize:
          format: int32
          type: integer
        fixedBundleProductPageBreakdownToggleFontStyle:
          type: string
        fixedBundleProductPageBreakdownYouPayColor:
          type: string
        fixedBundleProductPageCardBackgroundColor:
          type: string
        fixedBundleProductPageCardBorderColor:
          type: string
        fixedBundleProductPageCardPadding:
          format: int32
          type: integer
        fixedBundleProductPageCheckoutButtonBackgroundColor:
          type: string
        fixedBundleProductPageCheckoutButtonFontSize:
          format: int32
          type: integer
        fixedBundleProductPageCheckoutButtonFontStyle:
          type: string
        fixedBundleProductPageCheckoutButtonTextColor:
          type: string
        fixedBundleProductPageChildCompareAtPriceColor:
          type: string
        fixedBundleProductPageChildFixedQtyBackgroundColor:
          type: string
        fixedBundleProductPageChildPriceFontSize:
          format: int32
          type: integer
        fixedBundleProductPageChildPriceFontStyle:
          type: string
        fixedBundleProductPageChildTitleColor:
          type: string
        fixedBundleProductPageChildTitleFontSize:
          format: int32
          type: integer
        fixedBundleProductPageChildTitleFontStyle:
          type: string
        fixedBundleProductPageChildVariantColor:
          type: string
        fixedBundleProductPageChooseAssociatedProductsLabel:
          type: string
        fixedBundleProductPageChooseSourceProductLabel:
          type: string
        fixedBundleProductPageContentsSubtitleColor:
          type: string
        fixedBundleProductPageContentsTitleColor:
          type: string
        fixedBundleProductPageContentsTitleFontSize:
          format: int32
          type: integer
        fixedBundleProductPageContentsTitleFontStyle:
          type: string
        fixedBundleProductPageCurrentlyOutOfStockTooltip:
          type: string
        fixedBundleProductPageDetailsMediaBackgroundColor:
          type: string
        fixedBundleProductPageEmptyContentsLabel:
          type: string
        fixedBundleProductPageFixedContentsTitle:
          type: string
        fixedBundleProductPageFlexibleContentsTitle:
          type: string
        fixedBundleProductPageFooterPriceColor:
          type: string
        fixedBundleProductPageFooterPriceFontSize:
          format: int32
          type: integer
        fixedBundleProductPageFooterPriceFontStyle:
          type: string
        fixedBundleProductPageFreeLabel:
          type: string
        fixedBundleProductPageItemsInsideLabel:
          type: string
        fixedBundleProductPageLowStockLabel:
          type: string
        fixedBundleProductPageLowStockTooltip:
          type: string
        fixedBundleProductPageMaximumQuantityLabel:
          type: string
        fixedBundleProductPageMinimumQuantityLabel:
          type: string
        fixedBundleProductPageNotEligibleLabel:
          type: string
        fixedBundleProductPageOrderNoteLabel:
          type: string
        fixedBundleProductPageOutOfStockCheckoutMessage:
          type: string
        fixedBundleProductPageOutOfStockLabel:
          type: string
        fixedBundleProductPageOutOfStockTooltip:
          type: string
        fixedBundleProductPageParentCompareAtPriceColor:
          type: string
        fixedBundleProductPageParentEyebrowColor:
          type: string
        fixedBundleProductPageParentPriceColor:
          type: string
        fixedBundleProductPageParentPriceFontSize:
          format: int32
          type: integer
        fixedBundleProductPageParentPriceFontStyle:
          type: string
        fixedBundleProductPageParentTitleColor:
          type: string
        fixedBundleProductPageParentTitleFontSize:
          format: int32
          type: integer
        fixedBundleProductPageParentTitleFontStyle:
          type: string
        fixedBundleProductPagePickAnyLabel:
          type: string
        fixedBundleProductPagePickMaxLabel:
          type: string
        fixedBundleProductPagePickMinLabel:
          type: string
        fixedBundleProductPagePickRangeLabel:
          type: string
        fixedBundleProductPagePriceBreakdownTitle:
          type: string
        fixedBundleProductPageProgressBarFillColor:
          type: string
        fixedBundleProductPageProgressBarTrackColor:
          type: string
        fixedBundleProductPageProgressLabel:
          type: string
        fixedBundleProductPagePurchaseOptionBorderColor:
          type: string
        fixedBundleProductPagePurchaseOptionLabel:
          type: string
        fixedBundleProductPagePurchaseOptionLabelColor:
          type: string
        fixedBundleProductPagePurchaseOptionSelectedColor:
          type: string
        fixedBundleProductPageRequiredLoginLabel:
          type: string
        fixedBundleProductPageSelectOptionLabel:
          type: string
        fixedBundleProductPageSubscriptionSaveLabel:
          type: string
        fixedBundleProductPageTotalValueLabel:
          type: string
        fixedBundleProductPageValidationMessageColor:
          type: string
        fixedBundleProductPageYouPayLabel:
          type: string
        fixedBundleProductPageYourBundleLabel:
          type: string
        freeShipping:
          type: boolean
        getYAppliesOn:
          enum:
            - ONE_TIME
            - SUBSCRIPTION
            - BOTH
          type: string
        hasOptionChanges:
          type: boolean
        hasProductChanges:
          type: boolean
        headingTextColor:
          type: string
        hideOneTimePurchase:
          type: boolean
        hideOutOfStockVariants:
          type: boolean
        hideQuantitySelector:
          type: boolean
        hideSubscriptionPurchase:
          type: boolean
        id:
          format: int64
          type: integer
        includedSubscriptionPlans:
          type: string
        initialVisibleMixAndMatchVariantCount:
          format: int32
          type: integer
        insufficientStockLabel:
          type: string
        internalName:
          type: string
        inventoryTrackingMode:
          enum:
            - ADD_CHILD_PRODUCT_ON_ORDER
            - ADD_CHILD_PRODUCT_ON_CHECKOUT
          type: string
        labels:
          type: string
        layoutType:
          enum:
            - LAYOUT_ONE
            - LAYOUT_TWO
            - LAYOUT_THREE
            - LAYOUT_FOUR
          type: string
        limitToUsePerCustomer:
          format: int32
          type: integer
        maxOrderAmount:
          format: double
          type: number
        maxPrice:
          format: double
          type: number
        maxProductCount:
          format: int32
          type: integer
        minOrderAmount:
          format: double
          type: number
        minPrice:
          format: double
          type: number
        minProductCount:
          format: int32
          type: integer
        mixAndMatchAddButtonLabel:
          type: string
        mixAndMatchAddToCartLabel:
          type: string
        mixAndMatchAddedItemsLabel:
          type: string
        mixAndMatchGiftBadgeLabel:
          type: string
        mixAndMatchLockedLabel:
          type: string
        mixAndMatchNoProductSelectedLabel:
          type: string
        mixAndMatchNoProductsAvailableLabel:
          type: string
        mixAndMatchSeeAllLabel:
          type: string
        mixAndMatchTierDiscountLabel:
          type: string
        mixAndMatchTierQuantityLabel:
          type: string
        mixAndMatchUnlockedLabel:
          type: string
        mixAndMatchUpsellBadgeLabel:
          type: string
        name:
          type: string
        numberOfProducts:
          format: int32
          type: integer
        oneTimeSubtitle:
          type: string
        oneTimeTitle:
          type: string
        otherProductsButtonBackgroundColor:
          type: string
        otherProductsButtonTextColor:
          type: string
        otherProductsImageSize:
          format: int32
          type: integer
        otherProductsModalButtonBackgroundColor:
          type: string
        otherProductsModalButtonTextColor:
          type: string
        otherProductsModalFullPriceColor:
          type: string
        otherProductsModalHeadingLabelColor:
          type: string
        otherProductsModalImageSize:
          format: int32
          type: integer
        otherProductsModalOverlayColor:
          type: string
        otherProductsModalPriceColor:
          type: string
        otherProductsModalProductPriceTextSize:
          format: int32
          type: integer
        otherProductsModalProductTitleColor:
          type: string
        otherProductsModalProductTitleTextSize:
          format: int32
          type: integer
        otherProductsModalSubtitleLabel:
          type: string
        otherProductsProductTitleColor:
          type: string
        otherProductsProductTitleSize:
          format: int32
          type: integer
        perRowItem:
          enum:
            - TWO
            - THREE
          type: string
        price:
          format: double
          type: number
        priceSelector:
          type: string
        primaryColor:
          type: string
        primaryDisabledColor:
          type: string
        primaryDisabledTextColor:
          type: string
        primaryHoverColor:
          type: string
        primaryTextColor:
          type: string
        productCardBackgroundColor:
          type: string
        productChooseType:
          enum:
            - CHOOSE_ALL
            - CHOOSE_ONE
            - CHOOSE_SPECIFIC
          type: string
        productDiscountType:
          enum:
            - EACH_PRODUCT
            - SELECTED_PRODUCT
          type: string
        productFilterConfig:
          type: string
        productHandle:
          type: string
        productSelectionType:
          enum:
            - PRODUCT
            - COLLECTION
          type: string
        productViewStyle:
          enum:
            - QUICK_ADD
            - VIEW_DETAILS
          type: string
        products:
          type: string
        progressiveGift:
          type: string
        purchaseRequirement:
          enum:
            - MINIMUM_AMOUNT
            - MINIMUM_QUANTITY
            - NO_REQUIREMENT
          type: string
        recurringCycleLimit:
          format: int32
          type: integer
        removeBundlePropertiesWhenNoDiscount:
          type: boolean
        restrictTags:
          type: string
        ruleUpsellSubTitleFontSize:
          format: int32
          type: integer
        ruleUpsellSubTitleTextColor:
          type: string
        ruleUpsellTitleFontSize:
          format: int32
          type: integer
        ruleUpsellTitleTextColor:
          type: string
        saveBadgeBackgroundColor:
          type: string
        saveBadgeFontSize:
          format: int32
          type: integer
        saveBadgeFontStyle:
          type: string
        saveBadgeTextColor:
          type: string
        scheduledBundleRule:
          type: boolean
        secondaryTextColor:
          type: string
        sections:
          type: string
        selectedCardBackgroundColor:
          type: string
        selectedCardBorderColor:
          type: string
        selectionType:
          enum:
            - FIXED
            - FLEXIBLE
          type: string
        sellingPlanDisplayType:
          enum:
            - DROPDOWN
            - RADIO
          type: string
        sellingPlanSource:
          enum:
            - PRODUCT
            - SUBSCRIPTION_WIDGET
          type: string
        sellingPlanType:
          enum:
            - BUNDLE_LEVEL
            - PRODUCT_LEVEL
          type: string
        sequenceNo:
          format: int32
          type: integer
        sequentialProductsPerBatch:
          format: int32
          type: integer
        settings:
          type: string
        shippingDiscountType:
          enum:
            - NO_DISCOUNT
            - FREE_SHIPPING_FOR_BUNDLE_ONLY
            - FREE_SHIPPING_FOR_ENTIRE_ORDER
          type: string
        shop:
          type: string
        showAdditionalNoteInput:
          type: boolean
        showBundleInProductPage:
          type: boolean
        showClassicBundleWidgetInChildProduct:
          type: boolean
        showComboBundleWidgetInComboProduct:
          type: boolean
        showCompareAtPrice:
          type: boolean
        showPriceOfChosenProductsOnly:
          type: boolean
        showPriceWithSubscriptionPrice:
          type: boolean
        showPricesWithoutDecimal:
          type: boolean
        showSectionedBundleDiscountProgressBar:
          type: boolean
        showSellingPlanDescription:
          type: boolean
        showUnitPrice:
          type: boolean
        singleProductSettings:
          type: string
        status:
          enum:
            - ACTIVE
            - DRAFT
          type: string
        style:
          type: string
        subTitle:
          type: string
        subscribeSubtitle:
          type: string
        subscribeTitle:
          type: string
        subscriptionBundleLink:
          type: string
        subscriptionBundlingEnabled:
          type: boolean
        subscriptionId:
          format: int64
          type: integer
        subscriptionPreselected:
          type: boolean
        subscriptionSubTitleFontSize:
          format: int32
          type: integer
        subscriptionSubTitleTextColor:
          type: string
        subscriptionTitleFontSize:
          format: int32
          type: integer
        subscriptionTitleTextColor:
          type: string
        subscriptionWidgetPosition:
          enum:
            - ABOVE
            - BELOW
          type: string
        tag:
          type: string
        themeProductPriceType:
          enum:
            - PRICE_PER_ITEM
            - BUNDLE_PRICE
          type: string
        themeType:
          enum:
            - THEME_ONE
            - THEME_TWO
          type: string
        tierFreeGiftBackgroundColor:
          type: string
        tierFreeGiftPriceFontSize:
          format: int32
          type: integer
        tierFreeGiftPriceFontStyle:
          type: string
        tierFreeGiftTextColor:
          type: string
        tierFreeGiftTitleFontSize:
          format: int32
          type: integer
        tierFreeGiftTitleFontStyle:
          type: string
        tierFullPriceColor:
          type: string
        tierFullPriceFontSize:
          format: int32
          type: integer
        tierFullPriceFontStyle:
          type: string
        tierPriceColor:
          type: string
        tierPriceFontSize:
          format: int32
          type: integer
        tierPriceFontStyle:
          type: string
        tierSubTitleColor:
          type: string
        tierSubTitleFontSize:
          format: int32
          type: integer
        tierSubTitleFontStyle:
          type: string
        tierTitleColor:
          type: string
        tierTitleFontSize:
          format: int32
          type: integer
        tierTitleFontStyle:
          type: string
        tierUnitLabelFontSize:
          format: int32
          type: integer
        tierUnitLabelFontStyle:
          type: string
        tierUpsellBackgroundColor:
          type: string
        tierUpsellSubTitleFontSize:
          format: int32
          type: integer
        tierUpsellSubTitleTextColor:
          type: string
        tierUpsellTitleFontSize:
          format: int32
          type: integer
        tierUpsellTitleTextColor:
          type: string
        tieredDiscount:
          type: string
        topBarDiscountRequiredAmountMessage:
          type: string
        topBarDiscountRequiredQuantityMessage:
          type: string
        topBarDiscountUnlockTitlePrefix:
          type: string
        topBarFixedDiscountMessage:
          type: string
        topBarFreeShippingMessage:
          type: string
        topBarPercentDiscountMessage:
          type: string
        totalOrderValue:
          format: double
          type: number
        totalVisitor:
          format: int64
          type: integer
        trackInventory:
          type: boolean
        translations:
          type: string
        uniqueRef:
          type: string
        unitLabel:
          type: string
        updateThemeProductPrice:
          type: boolean
        upsellProductSelectionMode:
          type: string
        upsellSubTitle:
          type: string
        upsellTitle:
          type: string
        upsells:
          type: string
        useOriginalPriceForBuyXTotal:
          type: boolean
        validateInventoryQuantity:
          type: boolean
        variantSelectionLimit:
          format: int32
          type: integer
        variantVisibilityType:
          enum:
            - SHOW_VARIANTS_AS_INDIVIDUAL
            - SHOW_VARIANTS_AS_OPTIONS
          type: string
        variants:
          type: string
        volumeAmountDiscountQuantityRewardsLabel:
          type: string
        volumeAmountDiscountSaveRewardsLabel:
          type: string
        volumeAmountDiscountSpentAmountRewardsLabel:
          type: string
        volumeDiscountQuantityRewardsLabel:
          type: string
        volumeDiscountSaveRewardsLabel:
          type: string
        volumeDiscountSpentAmountRewardsLabel:
          type: string
      type: object
    BuildABoxProductVariantDTO:
      properties:
        imageSrc:
          type: string
        isMandatory:
          type: boolean
        maxQuantity:
          format: int32
          type: integer
        minQuantity:
          format: int32
          type: integer
        name:
          type: string
        price:
          format: double
          type: number
        productHandle:
          type: string
        productId:
          format: int64
          type: integer
        quantity:
          format: int32
          type: integer
        status:
          type: string
        variantId:
          format: int64
          type: integer
        variantsCount:
          format: int32
          type: integer
      type: object

````