API ReferenceStorefront

Create a bundle

POST /rest/v1/storefront/bundles

POST
/storefront/bundles

name, pricing and 2 to 10 items are required; saving publishes the items to the storefront. Each invalid field answers 422 with its param (items, items[1].product_id, pricing.value); a product or variant not in the store is 404 product_not_found / variant_not_found with the item's param. Required scope: storefront:write.

AuthorizationBearer <token>

Authorization: Bearer nbl_live_... (or nbl_test_... for test mode). Test-mode writes are validated and simulated but never persisted and never touch channels; simulated results are marked simulated.

In: header

Header Parameters

Idempotency-Key?string

Unique client-generated key (max 255 chars), stored 24h.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/storefront/bundles" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "pricing": {      "type": "percentage",      "value": 10    },    "items": [      {        "product_id": "prod_6ad22d0ee891b034a5693aa0"      },      {        "product_id": "prod_6ad22d0ee891b034a5693aa0"      }    ]  }'
{  "id": "bndl_q83pgewu",  "object": "bundle",  "name": "string",  "description": "string",  "image": "string",  "pricing": {    "type": "percentage",    "value": 10  },  "items": [    {      "product_id": "string",      "variant_id": "string",      "quantity": 0    }  ],  "active": true,  "simulated": true}

Last updated on October 18, 2026

Need help?

Email us and a human replies, usually within one business day.