Skip to main content
PATCH
Update a product

Authorizations

Authorization
string
header
required

Organization-scoped bearer credential: a customer API key (1club_sk_live_...) or an MCP OAuth access token.

Path Parameters

id
integer
required

Body

application/json

Fields accepted when updating a product. Send only what changes; null clears a nullable field, and an omitted field is left alone. At least one field is required.

name
string
Maximum string length: 255
description
string
Maximum string length: 5000
price
number
Required range: x >= 0
costPrice
number | null
Required range: x >= 0
clubId
integer | null

Limit the product to one club; null sells it everywhere.

categoryId
integer | null

From GET /v1/platform/product-categories

brandId
integer | null
sku
string | null

Stock-keeping code. Scannable at the till, so it must be unused by any other product, package, plan or access card in the organization.

Maximum string length: 64
barcode
string | null

Must be unused by any other product, package, plan or access card in the organization.

Maximum string length: 64
isActive
boolean
visibility
enum<string>
Available options:
Public,
Member_only,
Private
taxRateId
integer | null
revenueAccountId
integer | null
images
string<uri>[]

Replaces the whole list. Use already-hosted URLs.

features
string[]

Replaces the whole list.

Response

The updated product

A product the organization sells over the counter.

productId
integer
name
string
description
string | null
clubId
integer | null

Club the product is sold at; null when available organization-wide.

categoryId
integer | null

Product category it is grouped under.

brandId
integer | null
sku
string | null

Stock-keeping code, if the gym uses one.

barcode
string | null

Scanned at the till. Unique across everything scannable in the organization.

price
number

What a customer pays, in the organization currency.

costPrice
number | null

What the gym pays for it; null when not tracked. Never shown to customers.

isActive
boolean

False for a product taken off the till without deleting its history.

visibility
enum<string>

Who may see it on customer-facing surfaces.

Available options:
Public,
Member_only,
Private
images
string[]
features
string[]
taxRateId
integer | null

Per-product VAT rate; takes precedence over the revenue account default at the till.

revenueAccountId
integer | null
createdAt
string<date-time>
updatedAt
string<date-time>