Fetches comprehensive Build-A-Box bundle configuration using a user-friendly handle (URL slug) instead of numeric ID. This endpoint is specifically designed for customer-facing storefronts and integration scenarios where you want to reference bundles by their human-readable handles rather than database IDs.
Key Differences from GET /:
What is a Bundle Handle? A handle is a URL-friendly identifier for a bundle:
premium-coffee-selection, monthly-snack-box, beauty-essentialsResponse Structure (SubscriptionBundlingResponseV3):
{
"bundle": { // Complete bundle configuration
"id": 45678,
"bundleName": "Premium Coffee Selection",
"bundleHandle": "premium-coffee-selection",
"description": "...",
"products": [...],
"pricing": {...},
"active": true
},
"subscription": { // Associated subscription plan details
"planId": 98765,
"frequencies": [...],
"deliveryOptions": {...},
"sellingPlan": {...}
}
}
Primary Use Cases:
When to Use Handle vs ID:
Use Handle when:
Use ID when:
Availability Validation: The endpoint validates that:
Integration Examples: Storefront Display:
// Fetch bundle for display on product page
const handle = 'premium-coffee-selection';
const response = await fetch(
`/api/external/v2/build-a-box/${handle}`,
{ headers: { 'X-API-Key': 'your-api-key' } }
);
const { bundle, subscription } = await response.json();
displayBundleOptions(bundle, subscription);
Best Practices:
Performance Considerations:
Authentication: Requires valid X-API-Key header or api_key parameter (deprecated)
curl --request GET \
--url https://subscription-admin.appstle.com/api/external/v2/build-a-box/{handle}{
"bundle": {
"id": 45678,
"shop": "example-shop.myshopify.com",
"bundleName": "Premium Coffee Selection",
"bundleHandle": "premium-coffee-selection",
"uniqueRef": "bab_abc123xyz",
"description": "Choose your favorite coffee blends for monthly delivery",
"buildABoxType": "SINGLE_PRODUCT",
"buildBoxVersion": "V2",
"minProductCount": 2,
"maxProductCount": 5,
"discount": 10,
"discountType": "PERCENTAGE",
"allowOneTimePurchase": true,
"active": true,
"products": [
{
"productId": 111111,
"variantId": 222222,
"title": "Medium Roast Coffee - 12oz",
"price": "14.99",
"imageUrl": "https://cdn.shopify.com/coffee-medium.jpg"
}
]
},
"subscription": {
"subscriptionPlanId": 98765,
"sellingPlanGroupId": "gid://shopify/SellingPlanGroup/123456",
"frequencies": [
{
"interval": "MONTH",
"intervalCount": 1,
"displayName": "Deliver every month"
},
{
"interval": "WEEK",
"intervalCount": 2,
"displayName": "Deliver every 2 weeks"
}
],
"deliveryPolicy": {
"type": "RECURRING",
"anchors": []
}
},
"createdAt": "2024-03-15T10:30:00Z",
"updatedAt": "2024-03-20T14:45:00Z"
}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.
Bundle Handle
API Key (Deprecated - Use Header X-API-Key instead)
Bundle and subscription details successfully retrieved
curl --request GET \
--url https://subscription-admin.appstle.com/api/external/v2/build-a-box/{handle}{
"bundle": {
"id": 45678,
"shop": "example-shop.myshopify.com",
"bundleName": "Premium Coffee Selection",
"bundleHandle": "premium-coffee-selection",
"uniqueRef": "bab_abc123xyz",
"description": "Choose your favorite coffee blends for monthly delivery",
"buildABoxType": "SINGLE_PRODUCT",
"buildBoxVersion": "V2",
"minProductCount": 2,
"maxProductCount": 5,
"discount": 10,
"discountType": "PERCENTAGE",
"allowOneTimePurchase": true,
"active": true,
"products": [
{
"productId": 111111,
"variantId": 222222,
"title": "Medium Roast Coffee - 12oz",
"price": "14.99",
"imageUrl": "https://cdn.shopify.com/coffee-medium.jpg"
}
]
},
"subscription": {
"subscriptionPlanId": 98765,
"sellingPlanGroupId": "gid://shopify/SellingPlanGroup/123456",
"frequencies": [
{
"interval": "MONTH",
"intervalCount": 1,
"displayName": "Deliver every month"
},
{
"interval": "WEEK",
"intervalCount": 2,
"displayName": "Deliver every 2 weeks"
}
],
"deliveryPolicy": {
"type": "RECURRING",
"anchors": []
}
},
"createdAt": "2024-03-15T10:30:00Z",
"updatedAt": "2024-03-20T14:45:00Z"
}