Get product detail with issues and attribute mappings
/stores/{store_id}/catalog/products/{sku}AuthorizationBearer token (JWT) · headerrequiredJWT issued by the external IdP via the OAuth 2.0 authorization-code flow (Kinde in
production; a simulator in test). The client obtains it and sends it as a Bearer token on
every authenticated call. Sarvex's services verify it — issuer, audience, signature
(IdP JWKS), expiry — and read identity and tenant from its claims. Sarvex does not issue
or revoke these tokens. merchant_id/store_id are read from the verified claims (and the
merchant→store mapping), never from the URL. The operator scope is required for
/operator/*. Operators acting on a specific merchant pass the X-Operate-As header,
which is recorded in the audit log.
store_idstringrequiredA store the caller's merchant owns. Authorized server-side against the principal; not a free-form tenant selector.
skustringrequiredProduct detail.
skustringtitlestringscoreintegerhas_blocking_issuebooleanopen_issue_countintegerdimensionsobjectShow propertiesHide properties
completenessintegerconsistencyintegerattribute_qualityintegerdelivery_dataintegerissuesproduct_issue[]Show propertiesHide properties
product_issueissue_idstringfieldstringproblemstringmissingfree_textnon_standard_enuminconsistentblocks_checkoutbooleanrevenue_impact_monthlymoneyShow propertiesHide properties
amount_minorintegerrequiredAmount in minor units (cents).
currencystringrequiredremediablestringrulemanualattribute_mappingsattribute_mapping[]Show propertiesHide properties
attribute_mappingsource_attributestringcatalog_attributestringThe canonical merchandising attribute the raw value resolved onto, drawn from the catalogue's attribute field set (internal/pkg/ucp/catalogue/v1/attribute_fields_data.go). These are product-data attributes, NOT fields of the UCP protocol: the UCP spec has no brand, mpn, condition or age_group, and expresses gtin as a barcode type and color/size/material as product options. This was named ucp_field, which asserted a correspondence that does not exist.
tierresolution_tierOntology resolution tier shown in V1 (no LLM tier). unresolved means no raw store attribute resolved onto this target at all — the resolve stage emits one entry per catalogue target field, so unresolved entries are the normal way a product reports what it is missing, and carry an empty source_attribute and zero confidence. It was absent from this enum while the sync plane emitted it, which led clients to treat any non-rule tier as learned.
rulelearnedunresolvedconfidencenumber<float>Resource not found within the caller's tenant.
errorobjectrequiredShow propertiesHide properties
codestringrequiredmessagestringrequireddetailsobject | null