Embed sub-API
The web component (Mode 1) talks to a separate set of endpoints that return proxy-shaped responses (the same shapes the Liquid app proxy returns), wrapped with headless Bearer auth and CORS. You normally don’t call these directly — the storefront script does.
All paths are under:
https://live.bb.eight-cdn.com/api/headless/v1/embed/api/v1and require Authorization: Bearer kit_live_….
Get bundle (proxy shape)
Section titled “Get bundle (proxy shape)” GET
/embed/api/v1/bundle | Query param | Type | Description |
|---|---|---|
id | number | Bundle ID to fetch. |
productHandle | string | Resolve the bundle by product handle (alternative to id). |
lang | string | Locale for the response. |
forceTemplate | string | Template code override. |
visitor_id | string | UUID for A/B test routing. |
ab_bypass | boolean | Skip A/B routing when true. |
Returns the proxy-format bundle JSON, with productUrl / bundleUrl rewritten to headless embed paths.
Get settings (proxy shape)
Section titled “Get settings (proxy shape)” GET
/embed/api/v1/settings Proxy-format shop settings (accepts an optional lang query param).
Configure (embed)
Section titled “Configure (embed)” POST
/embed/api/v1/bundle/:id/product Configures a bundle — delegates to the same logic as /bundles/:id/configure.
Get configured variant content
Section titled “Get configured variant content” GET
/embed/api/v1/bundle/:id/variant/:variantId { "items": [ { "variantId": 1001, "sectionId": 1, "availableVariantIds": [1001, 1002] } ]}Batch content
Section titled “Batch content” POST
/embed/api/v1/content Fetch content for multiple configured bundles at once (max 100).
Request
{ "bundles": [ { "configuredBundleId": 9876 }, { "variantId": 44556677 } ] }Response
{ "bundles": [ { "configuredBundleId": 9876, "variantId": "44556677", "content": "…" } ]}Back-in-stock notify
Section titled “Back-in-stock notify” POST
/embed/api/v1/notify Register a stock reminder for a variant.
Request
{ "variant": "1001", "customer_email": "shopper@example.com", "bundle_name": "Build your own box" }Response
{ "message_code": "success" }