This topic covers the Esri attribution and data attribution requirements for applications that display an interactive map.

Example attribution for an interactive map using ArcGIS Basemap Styles service.

Esri attribution

Esri attribution is the requirement to display the text Powered by Esri when using ArcGIS APIs, SDKs, open source libraries, services, or data. This is automatically displayed by most ArcGIS SDKs and Esri-supported plugins; otherwise must be displayed manually.

Display requirements

Requirements

  • The text must be clearly displayed on the map, application, or in a window that is accessible from a menu or button.
  • The text must not be covered or obstructed by other UI elements.
  • The text must be easily discoverable.

Recommendations

  • Position text at the bottom-right of the main application.
  • The word Esri should be linked to https://www.esri.com.
  • Use Esri's data attribution design:
    • Font family: "Avenir Next W00","Helvetica Neue", Helvetica,Arial,sans-serif;
    • Font color: #323232 (100% opacity)
    • Background color: #ffffff (65% opacity)
    • Font size: 12px or larger.

Examples

The following are acceptable examples of displaying Esri attribution in applications that contain an interactive map:

DefaultJoined
Map with data attribution text in bottom left corner and 'Powered by Esri' text in bottom right corner. Map with both data attribution text and 'Powered by Esri' text in bottom right corner.
In a controlIn a pop-up
Map with data attribution text in bottom left corner and 'Powered by Esri' text in bottom right corner Map with the 'Powered by Esri' text in a popup

Data attribution

Data attribution is the requirement to display the names of all data source providers for the data used in an ArcGIS basemap and/or data services. This is automatically displayed by most ArcGIS SDKs and Esri-supported plugins; otherwise must be retrieved and displayed manually.

Data attribution is required regardless of the type of API you are using to access data. For example, it applies to the use of any ArcGIS Maps SDKs, open source library, or third-party API. If you can not meet the data attribution requirements for any reason, please contact Esri.

You need to include data attribution if your application displays a map with one or more of the following:

  • The ArcGIS Basemap Styles service, ArcGIS Static Basemap Tiles service.
  • An ArcGIS data service such as a vector tile service, map tile service, or image service.
  • An ArcGIS hosted layer or content item.
  • An ArcGIS service in ArcGIS Online or ArcGIS Living Atlas.
  • An ArcGIS service in ArcGIS Enterprise.

Display requirements

Requirements

  • Display names directly on or at the bottom of the map where it is always visible.
  • Display names for all ArcGIS basemap layers and data layers in the map.
  • Display names for all ArcGIS services, items, and other sources accessed by the map.
  • Provide an expandable UI to display all names when they can not be displayed on small screens.
  • Do not obstruct names with other logo or visual elements.
  • Frequently verify names as data source providers can change.

Recommendations

  • Position names at the bottom of the map.
  • Prefix names with Sources: Name A, Name B....
  • Display names dynamically as zoom levels change.
  • Use fonts and colors that meet accessibility guidelines.
  • Use Esri's data attribution design:
    • Font family: "Avenir Next W00","Helvetica Neue", Helvetica,Arial,sans-serif;
    • Font color: #323232 (100% opacity)
    • Background color: #ffffff (65% opacity)
    • Font size: 12px or larger.

Below is an example of a string with multiple data source names:

Sources: Esri, TomTom, Garmin, FAO, NOAA, USGS, © OpenStreetMap contributors, and the GIS User Community

Get attribution from a service

ArcGIS services return a data attribution text string with a list of the data source providers. Depending on the service, the string can be retrieved from the copyrightText or the attribution property (if it is available).

The steps to get data attribution text are:

  1. Make a request to the ArcGIS service endpoint or metadata.
  2. Retrieve the text from the copyrightText or attribution property. Most services only support copyrightText however.
  3. Display the retrieved attribution text on your map.

Below are examples of how to get the data attribution from different ArcGIS services:

Vector tile service includes the basemap styles service, custom basemap styles created with the ArcGIS Vector Tile Style Editor, and any other vector tile layers owned by Esri.

Basemap styles service:

cURLcURLHTTP
Use dark colors for code blocksCopy
1
curl -X GET "https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/styles/arcgis/streets?token=<ACCESS_TOKEN>"

Get attribution from an item

If attribution is not available from a service, you can get the attribution text from the item page in ArcGIS.

The steps to get the text are:

  1. Go to the ArcGIS portal that contains the service, e.g. ArcGIS Online.
  2. Use Search to find the item in the portal. Hint: Filter by layer type to refine your search.
  3. In the item page, get the text from the Acknowledgments section.
  4. Display the appropriate data attribution text in your application. See Code examples.

Below is an example of where to get the data attribution text from the USA Census States item:

https://www.arcgis.com/home/item.html?id=e6f74a58bee742a2a040f80d99c36bb9

The USA States Census item page in ArcGIS Online.

Examples

The following are acceptable examples of displaying data attribution on a map:

DefaultJoined
A light gray map with data attribution text in bottom left corner and 'Powered by Esri' text in bottom right corner. A light gray map with both data attribution text and 'Powered by Esri' text in bottom left corner.
CollapsedExpanded
A light gray map with data attribution text collapsed, showing ellipsis for text that bleeds through the footer. A light gray map with data attribution text expanded, showing all the data providers.
From a menuIn a popup
A light gray map with data attribution text shown in a popup. A light gray map with data attribution text shown in a popup.

Code examples

The following examples show how to correctly display both Esri attribution and data attribution. The steps required depend on the API you are using.

Display attribution in a map that uses a basemap service

ArcGIS Maps SDK for JavaScript

ArcGIS Maps SDK for JavaScript displays Esri and data attribution text automatically. No additional attribution work is required.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
      const map = new Map({
        basemap: "arcgis/navigation",
      });

ArcGIS Maps SDKs for Native Apps

ArcGIS Maps SDK for Native Apps displays Esri and data attribution text automatically. No additional attribution work is required.

Mobile devices displaying a navigation map with basemap attribution text in the bottom left corner.
ArcGIS Maps SDK for .NETArcGIS Maps SDK for .NETArcGIS Maps SDK for KotlinArcGIS Maps SDK for SwiftArcGIS Maps SDK for JavaArcGIS Maps SDK for QtArcGIS Maps SDK for Flutter
Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        MainMapView.Map = new Map(BasemapStyle.ArcGISNavigation);

Leaflet

Esri Leaflet plugin displays Esri and data attribution text automatically. No additional attribution work is required.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
      L.esri.Vector.vectorBasemapLayer(basemapEnum, {
        token: accessToken,
      }).addTo(map)

MapLibre GL JS

The MapLibre ArcGIS plugin displays Esri and data attribution text automatically. No additional attribution work is required.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
    const map = new maplibregl.Map({
      container: "map", // the id of the div element
      zoom: 1, // starting zoom
      center: [-10, 30], // starting location [longitude, latitude]
    })

    const basemapStyle = maplibreArcGIS.BasemapStyle.applyStyle(map, {
      style: 'arcgis/navigation',
      token: accessToken
    });

OpenLayers

OpenLayers displays data attribution text automatically but you need to add the Esri attribution manually.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
        const source = map.getLayers().item(0).getSource()
        source.setAttributions(
          "Powered by <a href='https://www.esri.com/en-us/home' target='_blank'>Esri</a> | "
        )

CesiumJS

CesiumJS displays data attribution text automatically but you need to add the Esri attribution manually.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
      const poweredByEsri = new Cesium.Credit(
        "Powered by <a href='https://www.esri.com/en-us/home' target='_blank'>Esri</a>",
        true
      )
      viewer.creditDisplay.addStaticCredit(poweredByEsri)

Display attribution in a map that uses basemap and data services

Applications that contain basemap and data services are required to display data attribution for all layers and data sources in the map.

ArcGIS Maps SDK for JavaScript

ArcGIS Maps SDK for JavaScript displays Esri and data attribution for both the basemap and feature layer automatically. No additional work is required.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
      const layer = new FeatureLayer({
        portalItem: {
          id: "e6f74a58bee742a2a040f80d99c36bb9",
        },
      })
      map.add(layer)

ArcGIS Maps SDKs for Native Apps

ArcGIS Maps SDK for Native Apps displays Esri and data attribution for both the basemap and feature layer automatically. No additional work is required.

Mobile devices displaying a light gray map with a USA states feature layer and attribution text in the bottom left corner.
ArcGIS Maps SDK for .NETArcGIS Maps SDK for .NETArcGIS Maps SDK for KotlinArcGIS Maps SDK for SwiftArcGIS Maps SDK for QtArcGIS Maps SDK for Flutter
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
    PortalItem portalItem = await PortalItem.CreateAsync(portal, "e6f74a58bee742a2a040f80d99c36bb9");
    FeatureLayer layer = new FeatureLayer(portalItem, 0);
    Map.OperationalLayers.Add(layer);

Leaflet

Esri Leaflet plugin displays Esri and data attribution for both the basemap and feature layer automatically. No additional work is required.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
      L.esri
        .featureLayer({
          url: "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/USA%20States/FeatureServer/0",
          style: function (feature) {
            return {
              fillColor: "rgba(255, 211, 127, 0.6)",
              color: "rgba(110, 110, 110, 0.6)",
              weight: 1,
              fillOpacity: 0.6,
            }
          },
Expand

MapLibre GL JS

The MapLibre ArcGIS plugin displays Esri and data attribution for both the basemap and feature layer automatically. No additional work is required.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
      const parcels = await maplibreArcGIS.FeatureLayer.fromPortalItem('e6f74a58bee742a2a040f80d99c36bb9', {
        token: accessToken
      });
      parcels.addSourcesTo(map);
Expand

OpenLayers

OpenLayers displays data attribution for the basemap. You need to add the Esri and data attribution text from the layer's item page manually.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
          source: new ol.source.Vector({
            format: new ol.format.GeoJSON(),
            url: `https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/USA%20States/FeatureServer/0/query?f=pgeojson&where=1=1&outFields=*&&returnGeometry=true`,
            attributions: [
              "Esri; U.S. Department of Commerce, Census Bureau; U.S. Department of Commerce (DOC), National Oceanic and Atmospheric Administration (NOAA), National Ocean Service (NOS), National Geodetic Survey (NGS)",
            ],
            // retrieved from https://www.arcgis.com/home/item.html?id=e6f74a58bee742a2a040f80d99c36bb9
          }),
Expand

CesiumJS

CesiumJS displays data attribution for the basemap. You need to add the Esri and data attribution text from the layer's item page manually.

Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
          const data = Cesium.GeoJsonDataSource.load(response, {
            clampToGround: true,
            credit: new Cesium.Credit(
              "Esri; U.S. Department of Commerce, Census Bureau; U.S. Department of Commerce (DOC), National Oceanic and Atmospheric Administration (NOAA), National Ocean Service (NOS), National Geodetic Survey (NGS)",
              false
            ), // retrieved from https://www.arcgis.com/home/item.html?id=e6f74a58bee742a2a040f80d99c36bb9
          })
Expand

Resources

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.