# NamiConfiguration

{% tabs %}
{% tab title="Apple" %}

* **appPlatformId** (required): The unique App Platform ID from the Nami Control Center, used to fetch the correct configuration from the server.
* **logLevel** *(optional)*: Controls the SDK’s logging verbosity. Defaults to .warn.
* **namiLanguageCode** *(optional)*: Specifies the desired language for configuration and assets, falling back to the device’s preferred locale.
* **initialConfig** *(optional)*: JSON string used to bootstrap the SDK on first run if server config is unavailable.
* **provisionalGrantTTL** *(optional)*: Sets the duration (in seconds) for temporary entitlements before they expire. Default behavior varies between production and sandbox environments.
* **namiCommands**: Enables feature flags or functionality for testing and internal diagnostics.
  {% endtab %}

{% tab title="Android" %}

* **appPlatformId** (required): The unique App Platform ID from the Nami Control Center, used to fetch the correct configuration from the server.
* **context** (required): The Android Context (typically the Application context) needed to initialize internal SDK components.
* **logLevel** *(optional)*: Controls log output from the SDK. Defaults to NamiLogLevel.WARN. For production builds, it’s recommended to use NamiLogLevel.ERROR or omit entirely.
* **namiLanguageCode** *(optional)*: Specifies the language for paywalls, chosen from the supported NamiLanguageCode values.
* **initialConfig** *(optional)*: JSON string used to bootstrap the SDK on first run if server config is unavailable.
* **provisionalGrantTTL** *(optional)*: Custom duration (in seconds) for temporary entitlements. Defaults to 24 hours for production, 3 minutes for sandbox.
* **settingsList** *(optional)*:  Enables feature flags or functionality for testing and internal diagnostics.
  {% endtab %}

{% tab title="Flutter" %}

* **appPlatformIdApple** (required): The App Platform ID for the iOS version of your app, found in the Nami Control Center under App Settings → Platforms tab.
* **appPlatformIdAndroid** (required): The App Platform ID for the Android version of your app, also available in the Nami Control Center.
* **namiLogLevel** *(optional)*: Controls log verbosity using NamiLogLevel. Defaults to NamiLogLevel.warn. For production, use NamiLogLevel.error or omit the value entirely.
* **extraData** *(optional)*: Accepts a list of string values for feature flags or testing overrides.
  {% endtab %}

{% tab title="React Native" %}

* **appPlatformID** *(required)*: Your unique App Platform ID from the Nami Control Center, used to fetch the correct configuration for this app instance.
* **logLevel** *(required)*: A string representing the SDK’s logging verbosity (e.g., "error", "warn", "info"). For production environments, it’s recommended to use "error".
* **namiCommands** *(optional)*: A list of internal string-based flags to enable experimental or feature-specific SDK behaviors.
* **namiLanguageCode** *(optional)*: A value from NamiLanguageCodes enum used to define the language for paywall content and SDK behavior.
* **initialConfig** *(optional)*: A JSON string used to bootstrap the SDK on startup if no network config is available.
  {% endtab %}

{% tab title="Roku" %}

* **appPlatformId** *(required)*: The App Platform ID for your Roku channel, found in the Nami Control Center under App Settings → Platforms tab. This must be set before any SDK behavior can occur.
* **appFonts** *(optional)*: A list of font files or font references to be used with paywalls or other UI rendered by the SDK.
* **logLevel** *(optional)*: An array of log level strings that determine what debug or error information the SDK will output (e.g., \["error"], \["warn", "info"]).
* **appEnvironment** *(optional)*: Sets the environment for the SDK. Defaults to "staging" if not specified. You can override with "production" when ready.
* **language** *(optional)*: Specifies the language code used by the SDK for paywall localization (e.g., "en", "es").
* **namiCommands** *(optional)*: A list of string-based feature flags used to enable internal or experimental SDK behavior.
* **initialConfig** *(optional)*: A string of JSON configuration used to bootstrap the SDK if a network config request fails.
* **namiHost** *(optional)*: Custom hostname for dedicated Nami environments.
  {% endtab %}

{% tab title="Web" %}

* **appPlatformID** *(required)*: The unique identifier for your app, found in the Nami Control Center under App Settings → Platforms tab.
* **logLevel** *(optional)*: Controls the verbosity of SDK logs. Accepts values from the NamiLogLevel enum. Defaults to NamiLogLevel.WARN. For production, use NamiLogLevel.ERROR.
* **namiCommands** *(optional)*: An array of string-based feature flags to enable internal, beta, or custom behaviors in the SDK.
* **namiLanguageCode** *(optional)*: Selects the language used by paywalls and server configuration, based on values in the NamiLanguageCodes enum.
* **initialConfig** *(optional)*: JSON string or object (InitialConfig or InitialConfigCompressed) used to bootstrap the SDK in offline or pre-loaded mode.
* **formFactor** *(optional)*: A string to indicate the device form factor (e.g., "television", "phone", "desktop", "tablet"), which may influence layout and logic.
* **purchaseChannel** *(optional)*: A string identifier to override or annotate the source of a purchase (e.g., "vizio").
  {% endtab %}
  {% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.namiml.com/sdk-reference/nami/namiconfiguration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
