eSIM Compatibility Check
An eSIM (embedded SIM) is a digital SIM card built directly into a device's hardware that replaces the need for a physical plastic card. It allows users to download and change cellular network profiles over the air, making it easier to switch carriers or activate international data plans instantly. The first mobile devices with eSIM support were released in 2017 and eSIMs have gain large market share since.
Is it still relevant to check for eSIM compatibility?
Even though most recent mobile devices support eSIMs, we strongly recommend to check the user's device for eSIM compatibility. Without a check, a user might buy travel data or a local line only to find out their device can't use it.
Ways to check
There are 3 ways to check for eSIM compatibility:
- On-device check (native iOS and Android),
- device model matching against a list of devices (web), or
- asking the user (all platforms).
While users usually know their device model, approaches 1 and 2 are much easier.
Detection on web
If you run Gigs in a web application or any other non-native integration, we recommend using regular methods to retrieve the mobile device model name and use the 2. approach.
1. On-device check
This allows you to check the user’s device compatibility automatically.
on Android via the Android SDK
This step requires Android 9 (API 28+).
- Check if the Android version is 9 or higher
- Use the EuiccManager library to check eSIM compatibility on the device
Kotlin: Sample code to check eSIM compatibility
val manager = context.getSystemService(Context.EUICC_SERVICE) as EuiccManager
val isSupported = manager.isEnabled
on iOS via the iOS SDK
There is no reliable native iOS SDK support to check for eSIM compatibility. Please use the option to check for the device model.
on iOS via the device model
- Read the device model on your app
- iPhone support eSIM as follows - this should be easy to filter out
| iPhone XS, XS Max, XR (2018) | First eSIM support — one eSIM + one physical nano-SIM |
|---|---|
| iPhone 11 (2019), SE 2nd gen (2020) | Continued dual SIM (nano-SIM + eSIM) |
| iPhone 12 series (2020) | Continued dual SIM (nano-SIM + eSIM) |
| iPhone 13 series (2021) | First to support two active eSIMs simultaneously |
| iPhone 14 series (2022) | First eSIM-only iPhones — no physical SIM tray in the US |
| iPhone 15+ | eSIM-only in the US; international models retain nano-SIM slot |
2. Device model matching against a list of devices
This approach works for all platforms on which you can retrieve the device model.
- Get the user's device identifier from their OS. Depending on your integration this can be the hardware identifier (e.g. the Android
Build.MODELstring) or the device's IMEI. - Look up the matching device model:
- Call the list all device models endpoint and filter by
hardwareIdentifier(and optionallybrandortype), or - Call the search for device models endpoint with the device's
imeifor a direct lookup.
- Call the list all device models endpoint and filter by
- Check the
simTypesarray in the returned device model. The device is eSIM compatible if it includes"eSIM".
You can also filter the list endpoint directly with the simType=eSIM query parameter to only return eSIM-capable device models.
The device database is updated weekly. The list is sorted by creation date (most recently created first) and does not support alphabetical sorting. This means you should filter by identifier rather than relying on the ordering.
You will most likely want to add front end screens for this to confirm that your matching is correct.
3. Asking the user
Asking the user to check if their device is compatible with eSIMs should only be used as a fallback in case the others do not render a clear result. Ideally, you add instructions for the user to follow.
iOS
Settings > General > About > Scroll to the bottom sections.
The device is eSIM compatible if
- in the network details an EID is listed OR
- an "eSIM" is listed.
Android
The exact path varies by manufacturer and Android version. Try one of the following:
- Stock Android / Google Pixel: Settings > Network & Internet > SIMs > Look for an option like "Download a SIM instead?" or "Add SIM"
- Samsung: Settings > Connections > SIM manager > See if "Add SIM" or "Add mobile plan" is available
The device is eSIM compatible if an option to download or add an eSIM is available.
Display EID in device information
An alternative method is to ask the user to dial the following characters on their phone. This will show the device information. If an EID is listed, for instance as "EID 1", it means the phone supports eSIMs. If no EID is listed, it does not support eSIMs.
Dial *#06#
- Open your phone's dialer.
- Type *#06#
- A screen will pop up showing information. If you see "EID" listed, your device supports eSIM.
Note that this method might not work and should be considered as a fallback to the others listed above.