Skip to main content
GET
Get an add-on by slug

Authorizations

x-api-key
string
header
default:sfk_your_api_key
required

Storefront API key (sfk_...)

Path Parameters

slug
string
required

Add-on slug

Response

200 - application/json

Add-on returned

id
string
required

Unique identifier for the add-on

Example:

"123e4567-e89b-12d3-a456-426614174000"

externalId
string
required

External platform product ID (e.g. Shopify Product ID) for synced add-ons

Example:

"1234567890"

externalVariantId
string
required

External platform variant ID (e.g. Shopify Variant ID) for synced add-ons

Example:

"9876543210"

storeId
string
required

ID of the store that owns this add-on

Example:

"123e4567-e89b-12d3-a456-426614174001"

slug
string
required

URL-friendly slug for the add-on (unique per store)

Example:

"child-seat"

title
string
required

Title of the add-on

Example:

"Child Seat"

description
string
required

Detailed description of the add-on

imageId
string
required

ID of the primary image for the add-on

color
enum<string>
default:slate
required

Color code used when displaying the add-on

Available options:
slate,
gray,
zinc,
neutral,
stone,
red,
orange,
amber,
yellow,
lime,
green,
emerald,
teal,
cyan,
sky,
blue,
indigo,
violet,
purple,
fuchsia,
pink,
rose
Example:

"slate"

price
number
required

Unit price of the add-on

Example:

15

taxable
boolean
default:true
required

Whether the add-on is taxable

durationMultiplied
boolean
default:false
required

When true, the add-on is charged per base-duration unit of the parent appointment. Quantity on the cart/order line item mirrors the parent CartItem.quantity (i.e., the booked duration units). Only meaningful for attached products with allowCustomDuration=true.

maxQuantity
number | null
required

Maximum quantity a customer can pick for this add-on. Only applies to fixed add-ons (durationMultiplied=false). Null means unlimited.

Required range: x >= 1
Example:

4

status
enum<string>
default:active
required

Current status of the add-on

Available options:
active,
inactive
Example:

"active"

createdAt
string
required

Timestamp when the add-on was created

updatedAt
string
required

Timestamp when the add-on was last updated

deletedAt
string
required

Timestamp when the add-on was soft-deleted

images
object[]
required

Gallery images for this add-on

locations
object[]
required

Locations where this add-on is available

staffMembers
object[]
required

Staff members who can deliver this add-on

products
object[]
required

Products that offer this add-on at checkout

image
object | null

Primary image of the add-on

Last modified on July 26, 2026