> For the complete documentation index, see [llms.txt](https://docs.giga.store/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.giga.store/android-sdk/all-profiles.md).

# Profiles

### Retrieve profiles

The `getAllProfiles` function can be used to return all eSIM profiles created for the device. An error is returned if the request can't be fulfilled.&#x20;

<pre class="language-kotlin"><code class="lang-kotlin">Gigastore.getAllProfiles { profiles, error ->
    Log.i("GigastoreSDK", "Profiles: $profiles")
<strong>    Log.i("GigastoreSDK", "Error: $error")
</strong>})
</code></pre>

### Profile Object

The profile contains several identifiers and states.&#x20;

* **id -** internal id of the profile
* **state** - returns the current profile state. See [eSIM Profiles](/api/esim-profiles.md#esim-states)for details of the relevant states.
* **imsi -** IMSI (International Mobile Subscriber Identity) of the eSIM profile
* **iccid** - ICCID (Integrated Circuit Card Identification number) of the eSIM profile. Used for support cases and main identifier. The ICCID of an installed profile is also accessible for the user in the OS settings.
* **isValidEsimProfile()** - returns true, if the object instance contains all the necessary information
* **isInstalled() -** returns true, if the profile is installed (and active) on the device.

{% hint style="info" %}
To check if a profile is **installable**, use\
`profile.state == GigastoreESIMProfile.State.Released` .&#x20;
{% endhint %}
