> ## 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 bundle details by handle

> Retrieves complete details for a subscription bundle using its unique handle. This endpoint returns the bundle configuration, included products, pricing, and available subscription options.

**Bundle Information Returned:**
- Bundle name and description
- Product selections with quantities
- Pricing and discounts
- Available subscription frequencies
- Bundle status and availability
- Product images and details

**Use Cases:**
- Display bundle details on product pages
- Show bundle contents in customer portal
- Fetch bundle configuration for cart/checkout
- Integration with external systems
- Build custom bundle selection interfaces

**Bundle Handle:**
The handle is a unique, URL-friendly identifier for the bundle. It's typically generated when the bundle is created and remains constant throughout the bundle's lifecycle.

**Authentication:** Requires valid X-API-Key header



## OpenAPI

````yaml /subscription/admin-api-swagger.json get /api/external/v2/subscription-bundlings/external/get-bundle/{handle}
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for managing subscriptions, payments, and
    related operations. These APIs allow you to programmatically manage
    subscription lifecycles, handle payments, configure products, and integrate
    subscription functionality into your applications.
  title: Admin APIs
  version: 0.0.1
servers:
  - url: https://subscription-admin.appstle.com
security: []
tags:
  - description: >-
      Core APIs for managing the complete subscription lifecycle including
      creation, updates, pausing, resuming, and cancellation of subscriptions.
    name: Subscription Management
  - description: >-
      APIs for managing subscription payment methods, processing payments,
      handling payment retries, and updating billing information.
    name: Subscription Payments
  - description: >-
      APIs for managing subscription contracts including delivery schedules,
      pricing, order notes, billing cycles, and shipping addresses.
    name: Subscription Contracts
  - description: >-
      APIs for managing products within subscriptions including adding,
      removing, updating quantities, and swapping products.
    name: Subscription Products
  - description: >-
      APIs for handling billing operations, payment processing, and financial
      transactions related to subscriptions.
    name: Billing & Payments
  - description: >-
      APIs for managing discounts and promotional codes applied to
      subscriptions.
    name: Subscription Discounts
  - description: >-
      APIs for managing one-time add-on products that can be purchased alongside
      recurring subscription items.
    name: Subscription One-Time Products
  - description: >-
      APIs for managing subscription plans, pricing tiers, and plan
      configurations.
    name: Subscription Plans
  - description: >-
      APIs for managing customizable product boxes and bundles where customers
      can select multiple items.
    name: Build-a-Box & Bundles
  - description: >-
      APIs for managing the product catalog including product information,
      variants, and inventory.
    name: Product Catalog
  - description: >-
      APIs for managing operational settings, configurations, and administrative
      functions.
    name: Operations & Settings
  - description: >-
      APIs powering the customer-facing portal where subscribers can manage
      their own subscriptions.
    name: Customer Portal
  - description: APIs for managing customer information, profiles, and account details.
    name: Customers
  - description: >-
      APIs for retrieving aggregated subscription data, customer subscription
      history, and account-level subscription information.
    name: Subscription Data
  - description: >-
      APIs for managing delivery profiles, shipping rates, free shipping
      configuration, and delivery method options on subscriptions.
    name: Delivery & Shipping
  - description: >-
      APIs for managing storefront customization including custom CSS, theme
      settings, label translations, and merchant-defined widget configuration.
    name: Customization
  - description: >-
      APIs for configuring cancellation flows, retention offers, cancellation
      reason management, and win-back automation.
    name: Customer Retention
paths:
  /api/external/v2/subscription-bundlings/external/get-bundle/{handle}:
    get:
      tags:
        - Build-a-Box & Bundles
      summary: Get bundle details by handle
      description: >-
        Retrieves complete details for a subscription bundle using its unique
        handle. This endpoint returns the bundle configuration, included
        products, pricing, and available subscription options.


        **Bundle Information Returned:**

        - Bundle name and description

        - Product selections with quantities

        - Pricing and discounts

        - Available subscription frequencies

        - Bundle status and availability

        - Product images and details


        **Use Cases:**

        - Display bundle details on product pages

        - Show bundle contents in customer portal

        - Fetch bundle configuration for cart/checkout

        - Integration with external systems

        - Build custom bundle selection interfaces


        **Bundle Handle:**

        The handle is a unique, URL-friendly identifier for the bundle. It's
        typically generated when the bundle is created and remains constant
        throughout the bundle's lifecycle.


        **Authentication:** Requires valid X-API-Key header
      operationId: getValidSubscriptionCustomerV2_1
      parameters:
        - description: Customer Handle
          in: path
          name: handle
          required: true
          schema:
            type: string
        - description: API Key (Deprecated - Use Header X-API-Key instead)
          in: query
          name: api_key
          required: false
          schema:
            type: string
        - in: header
          name: X-API-Key
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                Success Response:
                  description: Success Response
                  value:
                    bundle:
                      currencyCode: USD
                      description: Choose your favorite coffee blends
                      handle: premium-coffee-bundle
                      id: 12345
                      maxProducts: 5
                      minProducts: 2
                      name: Premium Coffee Bundle
                      totalPrice: '49.99'
                    products:
                      - available: true
                        image: https://cdn.shopify.com/image.jpg
                        price: '14.99'
                        productId: 99999
                        title: Medium Roast Coffee
                        variantId: 11111
                    subscriptions:
                      - discount: 10
                        discountType: PERCENTAGE
                        frequency: MONTH
                        frequencyCount: 1
                        frequencyName: Monthly Delivery
                      - discount: 15
                        discountType: PERCENTAGE
                        frequency: WEEK
                        frequencyCount: 2
                        frequencyName: Bi-Weekly Delivery
          description: Bundle details successfully retrieved
        '401':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionBundlingResponse'
          description: Authentication required
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionBundlingResponse'
          description: Insufficient permissions
        '404':
          content:
            application/json:
              example:
                detail: 'No bundle exists with handle: premium-coffee-bundle'
                status: 404
                title: Bundle not found
                type: https://example.com/errors/not-found
          description: Bundle not found or no subscriptions available
components:
  schemas:
    SubscriptionBundlingResponse:
      properties:
        bundle:
          $ref: '#/components/schemas/SubscriptionBundling'
        products:
          items:
            $ref: '#/components/schemas/ProductInfo'
          type: array
        subscriptions:
          items:
            $ref: '#/components/schemas/SubscriptionGroupPlan'
          type: array
        variants:
          items:
            type: string
          type: array
      type: object
    SubscriptionBundling:
      properties:
        allowOneTimePurchase:
          type: boolean
        appliesOn:
          enum:
            - PRODUCT
            - COLLECTION
            - BOTH
            - ONE_TIME
            - SUBSCRIPTION
          type: string
        buildABoxType:
          enum:
            - CLASSIC
            - SINGLE_PRODUCT
            - MIX_AND_MATCH
            - INFINITE
            - CUSTOMIZE_BUNDLE
            - CLASSIC_BUILD_A_BOX
            - SINGLE_PRODUCT_BUILD_A_BOX
            - VOLUME_DISCOUNT
            - DISCOUNTED_PRICING
            - SHIPPING_DISCOUNT
            - BUY_X_GET_Y
            - SECTIONED_BUNDLE
          type: string
        bundleBottomHtml:
          type: string
        bundleRedirect:
          enum:
            - CART
            - CHECKOUT
            - CUSTOM
            - NONE
          type: string
        bundleTopHtml:
          type: string
        chooseProductsText:
          type: string
        collectionData:
          type: string
        customRedirectURL:
          type: string
        discount:
          format: double
          type: number
        discountedVariants:
          type: string
        id:
          format: int64
          type: integer
        maxProductCount:
          format: int32
          type: integer
        minOrderAmount:
          format: double
          type: number
        minProductCount:
          format: int32
          type: integer
        minUniqueProductCheck:
          type: boolean
        name:
          type: string
        proceedToCheckoutButtonText:
          type: string
        productDiscountType:
          enum:
            - SELECTED_PRODUCT
            - EACH_PRODUCT
          type: string
        productSelectionType:
          enum:
            - PRODUCT
            - COLLECTION
          type: string
        productViewStyle:
          enum:
            - QUICK_ADD
            - VIEW_DETAILS
          type: string
        sections:
          type: string
        selectionType:
          enum:
            - FIXED
            - FLEXIBLE
          type: string
        sellingPlanIds:
          type: string
        shop:
          type: string
        singleProductSettings:
          type: string
        subscriptionBundlingEnabled:
          type: boolean
        subscriptionGroup:
          type: string
        subscriptionId:
          format: int64
          type: integer
        thirdPartyRule:
          type: boolean
        tieredDiscount:
          type: string
        trackInventory:
          type: boolean
        uniqueRef:
          type: string
        variants:
          type: string
      required:
        - shop
      type: object
    ProductInfo:
      properties:
        id:
          format: int64
          type: integer
        productHandle:
          type: string
        productId:
          format: int64
          type: integer
        productTitle:
          type: string
        shop:
          type: string
      required:
        - shop
      type: object
    SubscriptionGroupPlan:
      properties:
        groupName:
          type: string
        id:
          format: int64
          type: integer
        infoJson:
          type: string
        productCount:
          format: int32
          type: integer
        productIds:
          type: string
        productVariantCount:
          format: int32
          type: integer
        shop:
          type: string
        subscriptionId:
          format: int64
          type: integer
        translations:
          type: string
        variantIds:
          type: string
        variantProductIds:
          type: string
      required:
        - shop
      type: object

````