Get a single product with its variants
One product with every variant on it — the same shape as one entry from the list endpoint, so a caller can use
the same parsing for both. Reach for this when you already hold a prod_… and want its current state, rather
than paging the list to find it.
Errors
404 product_not_found— unknown ID, or one belonging to another tenant.422 wrong_id_type:expected_products_got_<table>— the prefix isn’tprod_.422 unknown_fields:<names>— afieldsentry that doesn’t exist on a product.
GET
/api/v1/products/{id}Authorization
AuthorizationBearer token (bloomcount_...) · headerrequiredPath parameters
idstringrequiredQuery parameters
fieldsstringComma-separated list of the fields to return, so a caller can ask for the parts of an object it actually uses. A dotted path reaches inside a collection, so `variants.sku` keeps the variants array with only each variant's SKU. The object's own id comes back whether or not it is listed, which keeps a trimmed response addressable. A name that the resource hasn't got returns 422 `unknown_fields:` followed by the names that did not resolve. Omit the parameter for the full object.
Responses
200OK
productIdstringrequirednamestringrequiredcategorystringrequiredproductTypestring | null- `flower` — fresh stems, no SKU.
- `material` — sundries (foam, ribbon, vases) with SKU.
Allowed:
flowermaterialseasonalityobject | nullShow propertiesHide properties
startMonthintegerendMonthintegervariantsobject[]requiredShow propertiesHide properties
Array of
objectvariantIdstringrequirednamestringrequiredskustring | nullstemLengthinteger | nullunitsPerPackinteger | nullgradestring | nullbrandstring | nullmaterialstring | nullsupplierIdsstring[]Visible suppliers that sell this variant. The hidden Default supplier is filtered out — when a variant is only attached to Default this is `[]`, meaning "no specific supplier required".
supplierMinPacksobject[]Per-supplier minimum order quantity (in packs). Only entries that enforce a minimum (`minPacks > 1`) are returned.
Show propertiesHide properties
Array of
objectsupplierIdstringrequiredminPacksintegerrequiredhireablebooleanrequiredAlways `false` for flower variants and for material variants that aren't rentable. `true` when this is a studio-owned hire item.
inventoryQtyinteger | nullrequiredNumber of units owned, when `hireable: true`. `null` for non-hireable variants.
401Missing or invalid API key, or revoked / expired.
errorstringrequired403Authenticated, but the key lacks the required scope or the tenant has no API access.
errorstringrequired404The requested resource doesn't exist or belongs to a different tenant.
errorstringrequired422Request body or arguments failed validation.
errorstringrequired429Per-minute rate limit (60/min) or per-month cap exceeded.
errorstringrequired