> ## Documentation Index
> Fetch the complete documentation index at: https://getfaceage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> Every option you can pass to new FaceAge(options).

All options are passed to `new FaceAge(options)`.

## Core

| Option | Type | Default | Description |
| - | - | - | - |
| `elementId` | `String` | — | **Required** for `widget` and `section` display modes. ID of the container element. |
| `faceageId` | `String` | — | **Required.** Your Face Age Client ID from the [panel](https://panel.getfaceage.com). |
| `displayModel` | `String` | `'section'` | Display mode: `'widget'`, `'section'` or `'modal'`. |
| `language` | `String` | `'en'` | UI language code. See [Supported languages](#supported-languages). |
| `width` | `String` | `'360px'` | Width of the widget. Only applies when `displayModel` is `'widget'`. |
| `height` | `String` | `'800px'` / `'580px'` | Height of the widget. Defaults differ for `section` and `widget`. |
| `currency` | `String` | `'$'` | Currency symbol shown next to product prices. |

## Display modes

| Mode | Behavior |
| - | - |
| `'section'` | Renders inline, filling one content row of the page. |
| `'widget'` | Renders as a fixed-size standalone panel that respects `width` and `height`. |
| `'modal'` | Opens as a full-screen overlay. No `elementId` required. |

## Quiz

| Option | Type | Default | Description |
| - | - | - | - |
| `quiz` | `Boolean` | `true` | Show the pre-analysis quiz form. |
| `defaultQuiz` | `Object` | — | Pre-fill quiz fields, for example `{ email: 'user@example.com' }`. |

## Products and routines

| Option | Type | Default | Description |
| - | - | - | - |
| `showProducts` | `Boolean` | `false` | Show product recommendations after the analysis. |
| `showRoutine` | `Boolean` | `false` | Show skincare routine groupings. |
| `showAddToCard` | `Boolean` | `true` | Show add-to-cart buttons on products. |
| `showAddToCardAll` | `Boolean` | `false` | Show a single "add all to cart" button when the template supports it. |
| `routinesSupport` | `Array` | `[]` | Limit routines to specific groups, for example `['cleanser', 'serum', 'moisturizer']`. Empty means all groups. |
| `showEmptyRoutines` | `Boolean` | `false` | Show routine sections even when no product matches. |

> [!NOTE]
>
> The add-to-cart options are spelled `showAddToCard` and `showAddToCardAll` in the SDK.

## Skin analysis

| Option | Type | Default | Description |
| - | - | - | - |
| `problems` | `Array` | all 13 | Skin issues to detect and display. See the list below. |
| `showCamera` | `Boolean` | `true` | Let users take a photo with their camera. |
| `showUpload` | `Boolean` | `true` | Let users upload an image from their device. |
| `disableSkinHealth` | `Boolean` | `false` | Hide the skin health/damage summary. Alias: `disable_skin_health`. |
| `disableSkinAge` | `Boolean` | `false` | Hide the skin age result. Alias: `disable_skin_age`. |
| `disableImageAlert` | `Boolean` | `false` | Disable the image quality warning. Alias: `disable_image_alert`. |

Available `problems` values:

`fineWrinkles` · `eyeWrinkles` · `deepWrinkles` · `darkCircle` · `eyeBag` · `pores` · `pigment` · `redness` · `oiliness` · `dryness` · `sagginess` · `dullness` · `acne`

## History

| Option | Type | Default | Description |
| - | - | - | - |
| `history` | `Boolean` | `false` | Enable previous-analysis history. Stored in `localStorage`/cookies by default, or injected with [`setHistoryData()`](https://getfaceage.com/docs/developer-guides/reference/sdk-api#history). |

## Promotions and legal

| Option | Type | Default | Description |
| - | - | - | - |
| `privacyUrl` | `String` | `null` | URL of your privacy policy. Invalid URLs are ignored. |
| `discount` | `Object` | `null` | Show a copyable promo code, for example `{ title: 'Code at checkout', code: 'SAVE20' }`. |

## Analytics

| Option | Type | Default | Description |
| - | - | - | - |
| `gtag` | `String` | — | Google Analytics or Tag Manager ID, in `G-…`, `GT-…` or `GTM-…` format. |
| `gtagInsert` | `Boolean` | `true` | Inject the GTM script automatically. |
| `gtagDataLayer` | `Array` | — | Use a custom `dataLayer`. |
| `fbPixel` | `String` | — | Your numeric Facebook Pixel ID. |
| `fbPixelInsert` | `Boolean` | `true` | Inject the Pixel script automatically. |

See [Events & analytics](https://getfaceage.com/docs/developer-guides/integrations/events.md) for the tracked events.

## Supported languages

40 language codes are supported:

`ar` · `bg` · `bn` · `cs` · `da` · `de` · `el` · `en` · `es` · `et` · `fa` · `fi` · `fr` · `he` · `hi` · `hr` · `hu` · `id` · `it` · `ja` · `ko` · `lt` · `lv` · `ms` · `nl` · `no` · `pl` · `pt` · `ro` · `ru` · `sk` · `sr` · `sv` · `th` · `tl` · `tr` · `uk` · `ur` · `vi` · `zh`

Arabic (`ar`), Persian (`fa`) and Urdu (`ur`) switch the UI to a right-to-left layout automatically.

To change labels or add translations without code, use the **Languages** page of your business in the [panel](https://panel.getfaceage.com).

![Languages page in the Face Age panel](https://mintcdn.com/getfaceage-com/wLP35CGqBY74yiOL/images/developer-guides/panel-languages.png?fit=max\&auto=format\&n=wLP35CGqBY74yiOL\&q=85\&s=e4a11e33340325ad06bad2be3972a7dd)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.