Project Settings

The 140+ settings covering display, branding, lighting, camera, AR, e-commerce, email and PDF export are stored on the project as sceneData.projectSettings.

Where each key is stored

renderQuality and mode are scene-level and live on sceneData.settings. Every other key is a configurator setting and lives on sceneData.projectSettings — that is what the editor, the Preview modal and the public share view read. The /settings endpoints route each key to the right object for you, so you can send a partial patch of either kind.

Read project settings

GET/projects/:id/settings
const response = await fetch(BASE_URL + '/projects/' + projectId + '/settings', {
  headers: { 'Authorization': 'Bearer ' + accessToken }
});

const { settings, projectSettings } = await response.json();

// settings        -> { renderQuality, mode }
// projectSettings -> enableSidebar, showPrice, enableAR, primaryAccentColor,
//                    pricingCurrency, emailDriver, webhookUrl, ... (140+)

Update project settings

PUT/projects/:id/settings

Send only the keys you want to change — the patch is merged, so unlisted settings are preserved.

await fetch(BASE_URL + '/projects/' + projectId + '/settings', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer ' + accessToken,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    // Display
    enableSidebar: true,
    showPrice: true,

    // Branding
    primaryAccentColor: '#2C7873',
    controlAccentColor: '#2C7873',

    // Pricing display
    pricingCurrency: 'EUR',
    pricingCurrencySymbol: '€',

    // AR
    enableAR: true,
    arMode: 'default',

    // Advanced
    webhookUrl: 'https://example.com/hooks/simplio3d',

    // Scene-level — routed to sceneData.settings automatically
    renderQuality: 'high'
  })
});

// { success, settings: { renderQuality, mode },
//   projectSettings: { ...the merged configurator settings... } }

Render quality

PUT/projects/:id/settings

renderQuality (low, optimised, high) and mode are scene-level, so they are stored on sceneData.settings. Note the Preview modal and the public share view always render at high quality regardless of this value — it affects the editor viewport.

await fetch(BASE_URL + '/projects/' + projectId + '/settings', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer ' + accessToken,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ renderQuality: 'high' })
});

Continue reading