Storefront APIs
Catalog

Catalog

The Catalog endpoints in the B2B Edition Storefront API enable you to retrieve product and variant information from a BigCommerce store. These endpoints are designed for fast, programmatic access to variant data, supporting use cases such as catalog display, quick ordering, and integration with external systems.

Use these endpoints to:

  • List variants for a specific product (/catalogs/variants)
  • Fetch details for one or more variants by SKU (/catalogs/quick-product)
  • Retrieve comprehensive variant data for quick order workflows (/catalogs/quick-order-pad)

All endpoints require a Bearer token for authentication. For details, see the REST Storefront API authentication guide.

These endpoints mirror the functionality of standard BigCommerce REST API endpoints and provide data similar to Storefront GraphQL API queries like productVariantsInfo and variantSku. For more information, see the GraphQL Playground (opens in a new tab).

Refer to the individual endpoint documentation below for parameters, responses, and usage examples.

Get Product Variants Info

GET /catalogs/variants

Request

Returns a list of variants associated with the product identified by the productId parameter.

Analogous to the Get all product variants endpoint in the default BigCommerce API.

Equivalent Storefront GraphQL API Query: productVariantsInfo. For more information, see the GraphQL Playground.

Authentication

  • Authorization in header in the format of Bearer {{token}}

Parameters

  • productId in query - string
    required
    The unique product ID as assigned by BigCommerce.
    Example: 123

example

curl --request GET \
--url https://api-b2b.bigcommerce.com/api/v2/catalogs/variants \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json'

Response

SUCCESS

Body

object | application/json
  • code
    integer

    HTTP status code indicating the result of the API operation.

    Default: 200

  • message
    string

    Message describing the outcome of the request.

    Default: Success

  • data
    array[object]

    List of variant identifiers and their corresponding SKUs.

example

{
"code": 200,
"message": "Success",
"data": [
{
"sku": "HB-2-RE-SM",
"variantId": 118
}
]
}

Get Variant Information

GET /catalogs/quick-product

Request

Returns detailed information for each product variant provided in the variantSkus parameter. Several fields are duplicated in other formats for convenience.

Analogous to the Get a product variant endpoint in the default BigCommerce API.

Equivalent Storefront GraphQL API Query: variantSku. For more information, see the GraphQL Playground.

Authentication

  • Authorization in header in the format of Bearer {{token}}

Parameters

  • variantSkus in query - string
    required
    A collection of SKUs associated with product variants, separated by |.
    Example: HB-2-RE-SM|HB-2-GR-SM|HB-2-BL-SM

example

curl --request GET \
--url https://api-b2b.bigcommerce.com/api/v2/catalogs/quick-product \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json'

Response

SUCCESS

Body

object | application/json
  • code
    integer

    HTTP status code indicating the result of the operation.
    Example: 200
  • message
    string

    Message describing the result of the operation.
    Example: Success
  • data
    array[object]

    List of product variant data objects.

example

{
"code": 200,
"message": "Success",
"data": [
{
"id": 118,
"product_id": 134,
"sku": "HB-2-RE-SM",
"calculated_price": 15,
"cost_price": 0,
"purchasing_disabled": false,
"image_url": "https://cdn.example.com/product_images/attribute_rule_images/2_source_1709578415.jpg",
"inventory_level": 0,
"option_values": [
{
"id": 113,
"label": "Red",
"option_id": 120,
"option_display_name": "Color"
}
],
"variantSku": "HB-2-RE-SM",
"productId": "134",
"variantId": "118",
"baseSku": "HB-2",
"productName": "A Most Excellent Product",

Get Detailed Variant Information

POST /catalogs/quick-order-pad

Request

Returns detailed information about the variants whose SKUs are provided in the body of the request. This includes the information from Get Variant Information as well as other variant data that may affect pricing, availability, and other factors.

Details provided in the response body are sufficient to quickly add a product to a cart or a quote using appropriate methods.

Note: This endpoint uses the POST method, despite its use to only retrieve information. Using the GET method with this endpoint will return a 200 status, but the data field will be empty. Likewise, using POST with this endpoint with an empty body will return an empty data field.

Equivalent Storefront GraphQL API Query: variantSku. For more information, see the GraphQL Playground.

Authentication

  • Authorization in header in the format of Bearer {{token}}

Parameters

  • currencyCode in query - string
    The three-letter currency code to use in price calculation. If not provided, defaults to the store's default currency.
    Example: USD

Body

object | application/json
  • variantSkus
    array[string]

    List of variant SKUs for which to fetch detailed information. If this is omitted, the response will be empty.
    Type: array[string]
    Example: ["HB-2-RE-SM","HB-2-RE-ME"]

example

{
"variantSkus": [
"HB-2-RE-SM",
"HB-2-RE-ME"
]
}

Response

SUCCESS

Body

object | application/json
  • code
    integer

    HTTP status code of the response.
    Example: 200
  • message
    string

    Status message.
    Example: Success
  • data
    array[object]

    List of product variant info objects.

example

{
"code": 200,
"message": "Success",
"data": [
{
"isStock": "0",
"stock": 0,
"variantSku": "HB-2-RE-ME",
"productId": "134",
"calculatedPrice": 15,
"imageUrl": "https://cdn.example.com/product_images/attribute_rule_images/2_source_1709578415.jpg",
"variantId": 119,
"baseSku": "HB-2",
"productName": "A Most Excellent Product",
"categories": [
24
],
"option": [
{
"id": 113,
"label": "Red",
"option_id": 120,
"option_display_name": "Color"
}
],
"minQuantity": 0,
"maxQuantity": 0,
"purchasingDisabled": "0",

See something you can improve? Edit this file on GitHub

Did you find what you were looking for?