License your app

Before you deploy your ArcGIS Runtime app into production, you're required to license it with one of the four ArcGIS Runtime license levels: Lite (free), Basic, Standard, and Advanced.

Note that other costs may be incurred when deploying your app, such as credits used by ArcGIS Online services in your app. For example, if you use ArcGIS Online in your app and use more than 50 credits per month or your app generates revenue, you must purchase a deployment plan. For details on deployment plans, see Terms of Use – FAQ.

Note:

No license is required to develop ArcGIS Runtime apps; there's no need to authorize your development machine. As a member of the ArcGIS Developer Program, you have a free ArcGIS Developer Subscription (Essentials Plan). With this plan you can download and install any ArcGIS Runtime SDK and immediately have access to all the functionality of the APIs for development purposes. You can become a member of the developer program for free.

Develop and test

You can download and install an ArcGIS Runtime SDK using an ArcGIS for Developer account. You then have access to all of the functionality in the API for development and testing purposes. In this mode the app will adopt the following behavior:

  • Any map or scene will be watermarked with the words Licensed For Developer Use Only (as pictured here).
  • A message will be written to the console or log that states that the app is Licensed For Developer Use Only.

Licensing your app for deployment will remove the watermark and console output and provide the appropriate capabilities to your app users.

Licensing options

Before you can use your app in production, you are required to license the ArcGIS Runtime app. Esri provides four ArcGIS Runtime license levels: Lite, Basic, Standard, and Advanced. Each additional level opens up more capabilities for your app users.

Two options are available to set the license level in your app:

Named user

A Named User refers to an ArcGIS organizational account that is a member of an organization in ArcGIS Online or ArcGIS Enterprise. The ability to license a Runtime app is just one feature of a Named User. You need to include code in your Runtime app to enable a user to sign in (log in) to a portal and return license details associated with their Named User account.

Use Named Users if your target audience has access to ArcGIS Online or ArcGIS Enterprise and use devices that will be online at least once every 30 days (timeout for a Named User license for ArcGIS Runtime). One notable benefit of this model is the license for ArcGIS Runtime travels with the Named User, not the app, so one Named User can license many ArcGIS Runtime apps.

License key

A license key is a text string that contains license details. License keys can be acquired through your ArcGIS for Developer account or purchased in ArcGIS Runtime deployment packs. License keys are usually compiled into your Runtime app. Each installation of your app available to a single user counts as a deployment.

Use a license key if your target audience does not have access to named user accounts with an ArcGIS Online organization or on-premises ArcGIS Enterprise portal, needs to use an application that will remain offline indefinitely, or needs to guarantee an application will function if offline more than 30 days. Customers are required to track the number of ArcGIS Runtime deployments at the Basic, Standard, and Advanced level. Each installation of your app available to a single user counts as a deployment.

Licensing capabilities

The following table shows the functionality associated with each license level, the available licensing options, and how to acquire a license. For details on API classes and members that require a paid license or extension, see Licensing details by API type.

License level CapabilitiesLicense KeyNamed User

Lite

  • Viewing maps, scenes, layers, and packages from the ArcGIS platform
  • Edit features in public feature services. These services are available on the Internet and are not secured.
  • Generate a mobile geodatabase with features from a sync-enabled feature service
  • Download updates from a sync-enabled feature service to a mobile geodatabase
  • Place finding (Please see the Note below regarding the World Geocoding Service from ArcGIS Online)
  • Simple and optimized routing
  • Calculate service areas and find closest facilities using a network service

Available for free. Login to your ArcGIS for Developers account, go to Licensing Your ArcGIS Runtime app and copy the license key into your app.

Login as a level 1 or 2 Named User in an ArcGIS Online organization or on-premises Portal.

Basic

  • All capabilities of Lite
  • Edit features in mobile geodatabases, and features in feature services, that are only accessible on a local network or are secured
  • Synchronize edits to feature geometry, attributes, and attachments from a mobile geodatabase to a feature service
  • Add, update, or delete content on portals

Deployment packs available for purchase.

Contact the Esri office that serves you or if you are in the United States call Esri at 1-800-447-9778.

Login as a level 2 Named User in an ArcGIS Online organization or on-premises Portal.

Standard

  • All capabilities of Basic
  • Access to additional data
    • Shapefiles
    • GeoPackages
    • ENC layers (S-57)
    • Local raster layers
    • Use of raster functions
    • Local raster elevation sources
  • Visual Analysis
    • Line of sight
    • Viewshed

    Deployment packs available for purchase.

    Contact the Esri office that serves you or if you are in the United States call Esri at 1-800-447-9778.

    Not available yet.

    Advanced

    • All capabilities of Standard

      Deployment packs available for purchase.

      Contact the Esri office that serves you or if you are in the United States call Esri at 1-800-447-9778.

      Not available yet.

      Note:

      The World Geocoding Service from ArcGIS Online includes a for_storage parameter. Storing the results of a geocode or reverse geocode operation using this service (by setting the for_storage parameter to true) requires an ArcGIS Online paid subscription and uses credits from the subscriber's account. Additionally, the user performing a paid operation must be assigned a user role that includes the Geocoding privilege. For more information, see Free vs paid in the REST documentation for this geocode service and Levels, roles, and privileges in ArcGIS Online documentation.

      Note:

      Beginning with the release of ArcGIS Enterprise 10.5, members in an organization in ArcGIS Online or on-premises ArcGIS Enterprise portal can be assigned one of two membership levels . Level 1 can be used to license Runtime at the Lite level and Level 2 can be used to license Runtime at the Lite and Basic level. For Portals prior to version 10.5, all Named Users are equivalent to Level 2 and can be used to license Runtime at the Basic level.

      License your app by following the instructions in the section below, License your app. After this is done, the watermark and debug messages will no longer display and your app will be ready for distribution and use in production.

      Extension licenses

      License your app

      Follow these steps to license your app with a License key or a Named User:

      License your app with a license key

      Using a license key involves adding code to set the license level at compile time so that the license key is built into the application.

      1. Read the end user license agreement.
      2. Find a location in your code that runs before any ArcGIS Runtime functionality is used.
      3. Call the SetLicense method on the ArcGISRuntimeEnvironment singleton object to license the app with a License key.

        The following must run before any other ArcGIS Runtime code.

        string licenseKey = "runtimelite,1000,rud#########,day-month-year,####################";
        Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.SetLicense(licenseKey);

      Your app is now licensed for deployment.

      Note:

      If you don't license the app, then the map and scene views will be watermarked with the words Licensed For Developer Use Only.

      License your app with a Named User account

      Use of a Named User involves adding code to enable sign-in to using an ArcGIS organizational account. At runtime, a user must sign in successfully to return their license information which will be used by the app to set the license level. Follow these steps to license your app using the Named User's account:

      1. Read the end user license agreement.
      2. Find a location in your code that runs before any ArcGIS Runtime functionality is used.
      3. Allow the app user to authenticate with an ArcGIS organizational account. Upon loading the Portal obtain the LicenseInfo and use this to license the app. As part of the process, save the license information in preparation for your app being used in an offline environment for up to 30 days.

        The following example shows how to get a license from an ArcGIS Online named user. The AuthenticationManager has been set up earlier in the code by registering the ArcGIS Online portal, and setting a challenge handler and OAuth authorization handler (as described in the Use the Authentication Manager topic).

        // Challenge the user for portal credentials (OAuth credential request for arcgis.com)
        CredentialRequestInfo loginInfo = new CredentialRequestInfo();
        
        // Use the OAuth implicit grant flow
        loginInfo.GenerateTokenOptions = new GenerateTokenOptions
        {
            TokenAuthenticationType = TokenAuthenticationType.OAuthImplicit
        };
        
        // Indicate the url (portal) to authenticate with (ArcGIS Online)
        loginInfo.ServiceUri = new Uri("http://www.arcgis.com/sharing/rest");
        
        try
        {
            // Call GetCredentialAsync on the AuthenticationManager to invoke the challenge handler
            Credential cred = await AuthenticationManager.Current.GetCredentialAsync(loginInfo, false);
        
            // Connect to the portal (ArcGIS Online) using the credential
            ArcGISPortal arcgisPortal = await ArcGISPortal.CreateAsync(loginInfo.ServiceUri, cred);
        
            // Get LicenseInfo from the portal
            Esri.ArcGISRuntime.LicenseInfo licenseInfo = arcgisPortal.PortalInfo.LicenseInfo;
        
            // ... code here to license the app immediately and/or save the license (JSON string) to take the app offline ...
            // License the app using the license info
            Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.SetLicense(licenseInfo);

      4. If you saved the license information on local storage, your app can be started and licensed in an offline environment using the saved license information. Retrieve the license from storage and license your app.

        After getting the LicenseInfo from the portal, you can convert it to a JSON-formatted string. The license string can be stored locally and used to re-create the license as needed, as shown in the following example.

        // Get the LicenseInfo as JSON formatted text
        var licenseJson = licenseInfo.ToJson();
        // ... save text string locally ...
                        
        // (on startup) ... get the license JSON stored on the device ...
        // Set the license info from the saved JSON string
        var license = Esri.ArcGISRuntime.LicenseInfo.FromJson(licenseJson);

      Note:

      If you fail to license the app then the map and scene views will be watermarked with the words Licensed For Developer Use Only.

      Extension level licenses

      1. Read the end user license agreement.
      2. Find a location in your code that runs before any ArcGIS Runtime functionality is used.
      3. Call the SetLicense method on the ArcGISRuntimeEnvironment singleton object to license the app with a main license key and any extension licenses.

        string licenseKey = "runtimelite,1000,rud#########,day-month-year,####################";
        string[] extensions = { "runtimeanalysis,1000,rud#########,day-month-year,####################" };
        
        Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.SetLicense(licenseKey, extensions);

      Your app is now licensed to use the extensions.

      Attribute Esri in your app

      Esri requires that when you use an ArcGIS Online basemap, Esri data services, or Esri API technology in your app you must also include Esri attribution. There are specific requirements for attribution you may be required to address in your app depending on how your app is built and the data it uses. This is outlined in detail here in the Attribution in your app topic.