Fenestro API Docs

Options

Options are reusable tenant-scoped choices used by product configuration steps. Examples include colours, openings, handles, glazing, motors, accessories, and other selectable catalogue data.

Endpoints

MethodPathUse
POST/v1/optionsCreate a reusable option.
GET/v1/optionsList options. Supports option_type, active, page, and page_size.
GET/v1/options/typesList option types available for the tenant.
GET/v1/options/{id}Read one option.
PATCH/v1/options/{id}Update provided fields.
DELETE/v1/options/{id}Deactivate the option.

Create example

curl -X POST https://api.fenestro.io/v1/options \
  -H "Authorization: Bearer fen_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "option_type": "couleurs",
    "name": "Anthracite grey",
    "description": "RAL 7016",
    "image_url": "/images/options/ral-7016.png",
    "price_supplement": 25.00,
    "supplement_type": "fixed",
    "display_order": 10,
    "display_price": true,
    "metadata": { "ral": "7016", "hex": "#383E42" },
    "translations": {
      "en": { "name": "Anthracite grey", "description": "RAL 7016" }
    }
  }'

Important fields

FieldNotes
option_typeGroups options for a configurator step, for example couleurs, ouvertures, or poignees.
nameRequired label shown to users.
price_supplementDecimal pricing metadata. It can be positive, zero, or negative.
supplement_typeFree-form pricing mode such as fixed, percent, per_m2, or tenant-specific values.
metadataOptional JSON for visual or domain-specific fields such as RAL, hex colour, SVG key, or supplier code.
translationsOptional JSON object for localized labels/descriptions.

Tenant compatibility

Every option belongs to the tenant behind the bearer token. Product steps can attach only active options from the same tenant. Public option identifiers preserve the stable original_id value when it exists, so copied catalogue data can continue to reference existing configurator JSON safely.

Common option errors

ErrorMeaning
validation_errorThe request body is missing required fields or violates field limits.
not_foundThe option does not exist for the authenticated tenant.