# SDK Modes

The SDK can operate in one of three modes that control how it captures and processes data. The mode is set at initialization with the `sdkMode` parameter, and can be changed at runtime with `setSdkMode()`.

| Mode          | Description                                                                             |
| ------------- | --------------------------------------------------------------------------------------- |
| `standard`    | Default capture and validation behavior.                                                |
| `captureOnly` | Offline capture mode. For ID and Selfie scan, only captures images without validations. |
| `submitOnly`  | Submit previously captured data without performing new capture steps.                   |

❗{/* [SME input needed: `submitOnly` mode appears in the source as a plain string value with no additional documentation. If there are use cases, constraints, or expected workflows for `submitOnly` mode that the SDK team knows about, document them here.] */}

## Set the mode at initialization

```ts
await IncodeSdk.initialize({
  testMode: false,
  sdkMode: 'standard',
  apiConfig: {
    key: 'YOUR_API_KEY',
    url: 'YOUR_API_URL',
  },
});
```

If `sdkMode` is omitted, the SDK defaults to `standard`.

## Change the mode after initialization

```ts
await IncodeSdk.setSdkMode('captureOnly');
```

❗{/* [SME input needed: `setSdkMode()` has no check in the source that would block mid-session use, but that doesn't confirm mid-session use is safe or supported. Confirm the intended usage pattern (mid-session vs. between sessions only).] */}

<br />
