Skip to main content

Subscription Builder API (1.0)

Download OpenAPI specification:Download

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.

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

Authentication

oauth2

Security Scheme Type OAuth2

customer_jwt

Security Scheme Type API Key
Query parameter name: token

Box

List Boxes

List subscription boxes

Authorizations:
oauth2 (
  • read_subscription_groups
)
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:
oauth2 (
  • write_subscription_groups
)
path Parameters
shop_identifier
required
string
Request Body schema: application/json
id
integer
shop_identifier
string
bold_subscription_group_id
integer
box_name
string
created_at
string <date-time>
updated_at
string <date-time>
Array of objects (Attribute) [ items ]

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 a subscription box by its ID

Authorizations:
oauth2 (
  • write_subscription_groups
)
path Parameters
shop_identifier
required
string
box_id
required
integer
Request Body schema: application/json
id
integer
shop_identifier
string
bold_subscription_group_id
integer
box_name
string
created_at
string <date-time>
updated_at
string <date-time>
Array of objects (Attribute) [ items ]

Responses

Request samples

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

Response samples

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

Get Box

Get a subscription box by its ID

Authorizations:
oauth2 (
  • read_subscription_groups
)
path Parameters
shop_identifier
required
string
box_id
required
integer

Responses

Response samples

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

Delete Box

Delete a subscription box by its ID

Authorizations:
oauth2 (
  • write_subscription_groups
)
path Parameters
shop_identifier
required
string
box_id
required
integer

Responses

Storefront: List Boxes

List subscription boxes

path Parameters
shop_identifier
required
string

Responses

Response samples

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

Storefront: Get Box

Get a subscription box by its ID

path Parameters
shop_identifier
required
string
box_id
required
integer

Responses

Response samples

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

Box Product

List Box Products

List box products

Authorizations:
oauth2 (
  • read_subscription_groups
)
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:
oauth2 (
  • write_subscription_groups
)
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) [ items ]

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:
oauth2 (
  • read_subscription_groups
)
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:
oauth2 (
  • write_subscription_groups
)
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) [ items ]

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:
oauth2 (
  • write_subscription_groups
)
path Parameters
shop_identifier
required
string
box_product_id
required
integer

Responses

Selection

List Selections

List selections for a single customer

Authorizations:
oauth2 (
  • read_subscriptions
)
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

Authorizations:
oauth2 (
  • write_subscriptions
)
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[ items ]
created_at
string <date-time>
updated_at
string <date-time>

Responses

Request samples

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

Get Selection

Get a selection by its ID

Authorizations:
oauth2 (
  • read_subscriptions
)
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 selection by its ID

Authorizations:
oauth2 (
  • write_subscriptions
)
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[ items ]
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 selection by its ID

Authorizations:
oauth2 (
  • write_subscriptions
)
path Parameters
shop_identifier
required
string
platform_customer_id
required
string
selection_id
required
integer

Responses

List Customer Selections

List selections for a single customer

Authorizations:
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": {
    },
  • "pagination": {
    }
}

Create Customer Selection

Create a new selection

Authorizations:
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[ items ]
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": {
    }
}

Get Customer Selection

Get a selection by its ID

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

Responses

Response samples

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

Update Customer Selection

Partially update a selection by its ID

Authorizations:
path Parameters
shop_identifier
required
string
selection_id
required
integer
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[ items ]
created_at
string <date-time>
updated_at
string <date-time>

Responses

Request samples

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

Delete Customer Selection

Delete a selection by its ID

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

Responses

Subscription Line Item

List Subscription Line Items

List subscription line items for existing subscription box subscriptions

Authorizations:
oauth2 (
  • read_subscriptions
)
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:
oauth2 (
  • read_subscriptions
)
path Parameters
shop_identifier
required
string
line_item_id
required
string

Responses

Response samples

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

Time Slot

Create Time Slot

Create a new time slot for an existing subscription box

Authorizations:
oauth2 (
  • write_subscription_groups
)
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) [ items ]
selection_deadline_date
string
visibility_date
string
Array of objects (Box Product) [ items ]

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:
oauth2 (
  • read_subscription_groups
)
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:
oauth2 (
  • read_subscription_groups
)
path Parameters
shop_identifier
required
string
time_slot_id
required
integer

Responses

Response samples

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

Update Time Slot

Partially update a time slot by its ID

Authorizations:
oauth2 (
  • write_subscription_groups
)
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) [ items ]
selection_deadline_date
string
visibility_date
string
Array of objects (Box Product) [ items ]

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 a time slot by its ID

Authorizations:
oauth2 (
  • write_subscription_groups
)
path Parameters
shop_identifier
required
string
time_slot_id
required
integer

Responses

List Time Slot Options

List options for an existing time slot

Authorizations:
oauth2 (
  • read_subscription_groups
)
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:
oauth2 (
  • write_subscription_groups
)
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:
oauth2 (
  • write_subscription_groups
)
path Parameters
shop_identifier
required
string
time_slot_id
required
integer
box_product_id
required
integer

Responses

Storefront: List Time Slots

List time slots for a subscription box

path Parameters
shop_identifier
required
string
box_id
required
string
query Parameters
order_datetime
string <date-time>

Responses

Response samples

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

Box Size

List Box Sizes

Get box sizes by a subscription box ID

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

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

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

path Parameters
shop_identifier
required
string
box_size_id
required
integer

Responses

Response samples

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

Update Box Size

Update a box size

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 a box size by its ID

path Parameters
shop_identifier
required
string
box_size_id
required
integer

Responses

Response samples

Content type
application/json
{ }

Storefront: Get Box Sizes

Get box sizes by a subscription box ID

path Parameters
shop_identifier
required
string
box_id
required
integer

Responses

Response samples

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