---
Source: https://docs.microblink.com/blinkid/v8000/front-facing-camera
Title: Use the front-facing camera
Description: Configure BlinkID to use the front-facing camera for kiosk applications
---

# Use the front-facing camera

By default, BlinkID uses the rear-facing camera.
For kiosk-style applications where a tablet or similar device is mounted and the user holds their document up to the screen, configure the SDK to use the front-facing camera instead.

## Set the front-facing camera

<Tabs queryString="platform">

  <TabItem value="web" label="Web (TS)" default>

  :::note
  This option is **not** supported when using the all-in-one
  [`blinkid`](https://github.com/microblink/web-sdks/tree/main/packages/blinkid) package.
  Use the
  [`camera-manager`](https://github.com/microblink/web-sdks/tree/main/packages/camera-manager)
  package and build your own scanning flow using the lower-level API.
  :::

  Pass `preferredFacing: "front"` when starting the video stream:

  ```typescript
  import { CameraManager } from "@microblink/camera-manager";

  const cameraManager = new CameraManager();
  await cameraManager.startCameraStream({
    preferredFacing: "front",
  });
  ```

  See the [camera selection example app](https://github.com/microblink/web-sdks/tree/main/apps/examples/camera-selection) for a complete integration example.

  </TabItem>
  <TabItem value="android" label="Android (Kotlin)">

  Pass `CameraSettings` with `lensFacing` set to `CameraLensFacing.LensFacingFront`:

  ```kotlin
  BlinkIdCameraScanningScreen(
      blinkIdSdk = blinkIdSdk,
      cameraSettings = CameraSettings(
          lensFacing = CameraLensFacing.LensFacingFront,
      ),
      onScanningSuccess = { result ->
          // use result
      },
      onScanningCanceled = { }
  )
  ```

  </TabItem>
  <TabItem value="ios" label="iOS (Swift)">

  Pass `ScanningUXSettings` with `preferredCameraPosition` set to `.front` via the `.uxSettings()` modifier:

  ```swift
  BlinkIDUXView(
      analyzer: analyzer,
      onScanCompleted: { resultState in
          guard let result = resultState.scanningResult else { return }
          // use result
      }
  )
  .uxSettings(ScanningUXSettings(preferredCameraPosition: .front))
  ```

  </TabItem>
  <TabItem value="flutter" label="Flutter (Dart)">

  Pass `BlinkIdScanningUxSettings` with `preferredCamera` set to `PreferredCamera.front` as the `blinkidScanningUxSettings` argument:

  ```dart
  import 'package:flutter/services.dart';

  try {
    final result = await blinkIdPlugin.performScan(
      BlinkIdSdkSettings(licenseKey: licenseKey)..downloadResources = true,
      BlinkIdSessionSettings(
        scanningMode: ScanningMode.automatic,
        scanningSettings: BlinkIdScanningSettings(
          documentCaptureModule: DocumentCaptureModuleSettings(),
          mrzModule: MrzModuleSettings(),
          barcodeModule: BarcodeModuleSettings(),
          vizModule: VizModuleSettings(),
        ),
      ),
      blinkidScanningUxSettings:
          BlinkIdScanningUxSettings(preferredCamera: PreferredCamera.front),
    );
    // use result
  } on PlatformException catch (e) {
    // handle error
  }
  ```

  </TabItem>
  <TabItem value="react-native" label="React Native (TS)">

  Pass `scanningUxSettings` with `preferredCamera` set to `'front'` to `performScan`:

  ```typescript
  const result = await performScan({
    sdkSettings: { licenseKey, downloadResources: true },
    sessionSettings: {
      scanningMode: 'automatic',
      scanningSettings: {
        documentCaptureModule: {},
        mrzModule: {},
        barcodeModule: {},
        vizModule: {},
      },
    },
    scanningUxSettings: { preferredCamera: 'front' },
  });
  ```

  </TabItem>
</Tabs>

## Related articles

- [How to scan in real time via camera](scan-camera.md)


Last updated on Jul 24, 2026
