GET
/products/{slug}
Returns metadata, capabilities and absolute runtime links for an active published product available through company Headless access.
Request
Endpoint
GET
/studio/api/headless/v1/products/{slug}Path parameters
NameTypeRequiredDescription
slugstring✓YesActive published product slug.Headers
X-NOVOGEX-KEYstringEitherCompany Headless API key.AuthorizationBearerEitherAlternative: Bearer YOUR_COMPANY_API_KEY.Response
{
"productId": "<published-product-id>",
"slug": "<published-product-slug>",
"name": "<published-product-name>",
"productSku": "<published-sku>",
"version": "<published-version>",
"units": "<published-units>",
"publishedAtUtc": "<utc-timestamp>",
"currency": "<published-currency>",
"pricingMode": "<published-pricing-mode>",
"showPriceToCustomer": "<boolean>",
"capabilities": {
"has3dModel": "<boolean>",
"hasOptions": "<boolean>",
"hasRules": "<boolean>",
"supportsServerPricing": true,
"supportsQuantityPricing": "<boolean>",
"usesExternalPricing": "<boolean>"
},
"links": {
"model": "<absolute-model-url>",
"options": "<absolute-options-url>",
"scene": "<absolute-scene-url>",
"configuration": "<absolute-configuration-url>",
"calculate": "<absolute-calculate-url>",
"hostedConfigurator": "<absolute-hosted-url>",
"sdk": "<absolute-sdk-url>"
}
}Code example
JavaScript (fetch)
JavaScript (fetch)
const response = await fetch("https://your-novogex-host.example/studio/api/headless/v1/products/your-product-slug", {
method: "GET",
headers: {
"X-NOVOGEX-KEY": "YOUR_COMPANY_API_KEY"
}
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.message ?? `HTTP ${response.status}`);
}
const data = await response.json();Notes
- Price visibility is reported by showPriceToCustomer; Quote Only or hidden customer pricing is not exposed as customer price values.
- The links object points to the published model, options, scene, configuration, calculate, hosted configurator and SDK resources.
