Skip to main content

Subscription Builder Admin API (1.0)

Download OpenAPI specification:Download

Note: Subscription Builder requires Bold Checkout to be installed on your store. Therefore, it is not available to merchants using Shopify. For information on build-a-box subscriptions on Shopify, refer to the Help Center.

Subscription Builder makes it possible to create advanced build-a-box style subscription boxes, where customers can choose the contents of each subscription order. Merchants must be using Bold Checkout to use this functionality.

The Subscription Builder Admin API contains endpoints specific to the store backend functionality and requires OAuth authentication.

Refer to the changelog for the latest updates to this API.

Boxes

Contains information about subscription boxes, including shop IDs and subscription groups. Use these endpoints to get, list, remove, and update subscription boxes.

List Boxes

List subscription boxes in a store.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    }
}

Create Box

Create a new subscription box from an existing subscription group.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
Request Body schema: application/json
bold_subscription_group_id
integer

The subscription group identifier from the Subscriptions app. A subscription group can only be assigned to one box.

box_name
string
Array of objects (Attribute)

Responses

Request samples

Content type
application/json
{
  • "bold_subscription_group_id": 0,
  • "box_name": "string",
  • "attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Box

Partially update an existing subscription box by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer
Request Body schema: application/json
bold_subscription_group_id
integer

The subscription group identifier from the Subscriptions app. A subscription group can only be assigned to one box.

box_name
string
Array of objects (Attribute)

Responses

Request samples

Content type
application/json
{
  • "bold_subscription_group_id": 0,
  • "box_name": "string",
  • "attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Box

Get a subscription box by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Box

Delete an existing subscription box by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer

Responses

Response samples

Content type
application/json
[ ]

Box Products

A child resource of Boxes. Contains information about subscription box products, including product IDs, shop IDs, and subscription groups. Use these endpoints to get, list, remove, and update subscription box products.

List Box Products

List box products in a store.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    }
}

Create Box Product

Create a new box product from an existing product variant.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
Request Body schema: application/json
object (Box Product)
id
integer
platform_product_id
string
platform_variant_id
string
created_at
string <date-time>
updated_at
string <date-time>
Array of objects (Attribute)

Responses

Request samples

Content type
application/json
{
  • "box_product": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Box Product

Get a box product by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_product_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Box Product

Partially update a box product by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_product_id
required
integer
Request Body schema: application/json
id
integer
platform_product_id
string
platform_variant_id
string
created_at
string <date-time>
updated_at
string <date-time>
Array of objects (Attribute)

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "platform_product_id": "string",
  • "platform_variant_id": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Box Product

Delete a box product by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_product_id
required
integer

Responses

Box Sizes

A child resource of Boxes. Contains information about subscription box sizes, including subscription box ID and shop ID. Use these endpoints to get, create, list, remove, and update subscription box sizes.

List Box Sizes

Get box sizes by a subscription box ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    }
}

Create Box Size

Create a box size in a store.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer
Request Body schema: application/json
box_id
integer
box_size_name
string
pricing_mode
string
Value: "flexible_pricing"
min_quantity
integer >= 0
max_quantity
integer
created_at
string <date-time>
updated_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "box_id": 0,
  • "box_size_name": "string",
  • "pricing_mode": "flexible_pricing",
  • "min_quantity": 0,
  • "max_quantity": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Box Sizes

Update box sizes in a store.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer
Request Body schema: application/json
Array
box_id
integer
box_size_name
string
pricing_mode
string
Value: "flexible_pricing"
min_quantity
integer >= 0
max_quantity
integer
created_at
string <date-time>
updated_at
string <date-time>

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get Box Size

Get box size by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_size_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Box Size

Update an existing box size by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_size_id
required
integer
Request Body schema: application/json
box_id
integer
box_size_name
string
pricing_mode
string
Value: "flexible_pricing"
min_quantity
integer >= 0
max_quantity
integer
created_at
string <date-time>
updated_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "box_id": 0,
  • "box_size_name": "string",
  • "pricing_mode": "flexible_pricing",
  • "min_quantity": 0,
  • "max_quantity": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Box Size

Delete an existing box size by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_size_id
required
integer

Responses

Response samples

Content type
application/json
{ }

Selections

A child resource of Boxes. Contains information about a customer's product selections for a subscription box, including customer ID, shop ID, and subscription boxes. Use these endpoints to get, create, remove, and update customer selections.

List Selections

List selections for a single customer.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
platform_customer_id
required
string
query Parameters
bold_platform_subscription_line_item_id
integer

Filter by subscription line item

order_datetime
string <date-time>

Filter by order datetime

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create Selection

Create a new selection for a customer.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
platform_customer_id
required
string
Request Body schema: application/json
object (Selection)
id
integer
bold_platform_subscription_line_item_id
integer
order_datetime
string <date-time>
box_size_id
integer or null
time_slot_id
integer or null
Array of objects
created_at
string <date-time>
updated_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "selection": {
    }
}

Get Selection

Get a customer's selection by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
platform_customer_id
required
string
selection_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Selection

Partially update a customer's selection by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
platform_customer_id
required
string
selection_id
required
integer
Request Body schema: application/json
object (Selection)
id
integer
bold_platform_subscription_line_item_id
integer
order_datetime
string <date-time>
box_size_id
integer or null
time_slot_id
integer or null
Array of objects
created_at
string <date-time>
updated_at
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "selection": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Selection

Delete a customer's selection by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
platform_customer_id
required
string
selection_id
required
integer

Responses

Subscription Line Items

A child resource of Boxes. Contains information about line items available for subscriptions. Use these endpoints to list, get, and filter by line items for subscriptions.

List Subscription Line Items

List subscription line items for existing subscription boxes.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get Subscription Line Item

Get a subscription line item by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
line_item_id
required
string

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Time Slots

A child Resource of Boxes. Contains information about subscription box time slots, including datetime and time slot options. Use these endpoints to get, list, remove, and modify time slots for a subscription box.

Create Time Slot

Create a new time slot for an existing subscription box.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer
Request Body schema: application/json
id
integer
shop_identifier
string
box_id
integer
time_slot_name
string
start_date
string
end_date
string
created_at
string <date-time>
updated_at
string <date-time>
Array of objects (Attribute)
selection_deadline_date
string
visibility_date
string
Array of objects (Box Product)

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "shop_identifier": "string",
  • "box_id": 0,
  • "time_slot_name": "string",
  • "start_date": "string",
  • "end_date": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "attributes": [
    ],
  • "selection_deadline_date": "string",
  • "visibility_date": "string",
  • "box_products": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

List Time Slots

List time slots for a subscription box.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
box_id
required
integer
query Parameters
order_datetime
string <date-time>

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    }
}

Get Time Slot

Get a time slot by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
time_slot_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update Time Slot

Partially update an existing time slot by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
time_slot_id
required
integer
Request Body schema: application/json
id
integer
shop_identifier
string
box_id
integer
time_slot_name
string
start_date
string
end_date
string
created_at
string <date-time>
updated_at
string <date-time>
Array of objects (Attribute)
selection_deadline_date
string
visibility_date
string
Array of objects (Box Product)

Responses

Request samples

Content type
application/json
{
  • "id": 0,
  • "shop_identifier": "string",
  • "box_id": 0,
  • "time_slot_name": "string",
  • "start_date": "string",
  • "end_date": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "attributes": [
    ],
  • "selection_deadline_date": "string",
  • "visibility_date": "string",
  • "box_products": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Time Slot

Delete an existing time slot by its ID.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
time_slot_id
required
integer

Responses

List Time Slot Options

List options for an existing time slot.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
time_slot_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Create Time Slot Option

Create a new option for an existing time slot.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
time_slot_id
required
integer
Request Body schema: application/json
box_product_id
integer

Responses

Request samples

Content type
application/json
{
  • "box_product_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete Time Slot Option

Delete an option from an existing time slot.

Authorizations:
OAuthToken
path Parameters
shop_identifier
required
string
time_slot_id
required
integer
box_product_id
required
integer

Responses