Skip to main content
GET
/
api
/
public
/
store
/
products

List Store Products

Returns all products available in the ecommerce store for the current location. Supports filtering by tag, product type (time passes), and selected plans.

Authentication

No authentication required for public product listing.

Query Parameters

profileId
number
Customer profile ID to personalise available products. Defaults to 0.
tag
string
Filter by product tag. URL-encoded.
productId
number
Filter to a specific product by ID.
onlyTimePasses
boolean
When true, returns only time-pass products.
selectedPlans
number[]
Array of plan IDs to filter products compatible with specific plans.
_shape
string
Comma-separated list of field paths to include in the response. When provided, only the specified fields are returned — useful for reducing payload size. Supports nested paths using dot notation. Example: _shape=Products.Name,Products.Price,Products.PriceFormatted.

Response

Returns an object with a Products array. Each product has the following fields:

Identity

FieldTypeDescription
IdnumberUnique identifier for the product
UniqueIdstringGUID identifier

Core

FieldTypeDescription
NamestringDisplay name of the product
DescriptionstringProduct description (may contain HTML)
TagsstringComma-separated tags
DisplayOrdernumberSort order for display
SystemProductTypenumberInternal product type identifier
VisiblebooleanWhether the product is visible in the store

Pricing

FieldTypeDescription
PricenumberPrice amount
PriceFormattedstringLocale-formatted price string
ProductCurrencyCodestringISO currency code
CurrencyCurrencyCurrency object (nested)
TaxRatenumber?Applicable tax rate

Billing

FieldTypeDescription
QuantitynumberDefault quantity
RegularChargebooleanWhether this is a recurring charge
AlwaysRecurrentbooleanAlways billed as recurring
AlwaysOneOffbooleanAlways billed as one-off
InvoiceCoworkerbooleanWhether to invoice the coworker

Stock

FieldTypeDescription
TrackStockbooleanWhether stock tracking is enabled
CurrentStocknumber?Current available stock
AllowNegativeStockbooleanWhether negative stock is allowed

Business

FieldTypeDescription
BusinessIdnumberBusiness identifier
BusinessNamestringBusiness name
BusinessWebAddressstringBusiness web address
HasTimePassesbooleanWhether the product has associated time passes

Timestamps (from base)

FieldTypeDescription
CreatedOnstringRecord creation timestamp (local)
UpdatedOnstringRecord last-update timestamp (local)
CreatedOnUtcstringRecord creation timestamp (UTC)
UpdatedOnUtcstringRecord last-update timestamp (UTC)

Examples

Fetch all store products

GET /api/public/store/products?profileId=0

Fetch time passes only

GET /api/public/store/products?profileId=0&onlyTimePasses=true

TypeScript Integration

import endpoints from '@/api/endpoints'

const { resource: store } = useTypedData(
  httpClient,
  endpoints.products.products({
    profileId: 0,
    tag: 'day-pass',
  }),
)
// store.Products