Basemap attribution

Basemap attribution is required when building and deploying mapping applications that use the Basemap layer service. There are two types of attribution that you need to display:

  1. Powered by Esri.
  2. Attribution for the data source providers.

Powered by Esri

If your application uses a basemap layer or a data layer owned by Esri, you must display Powered by Esri attribution correctly on the map or scene. Most ArcGIS client APIs add the Powered by Esri text automatically when the layer is displayed.

Example

The following example accesses a basemap layer and displays Powered by Esri attribution at the bottom-right with the appropriate colors, sizing, and hyperlink.

Data source attribution

You must also provide data source attribution in your applications that use the Basemap layer service or any other ArcGIS Platform data service that requires attribution. In most cases, the ArcGIS client APIs will display this text at the bottom-left of the map automatically whenever a basemap layer or data layer is added to a map or scene.

The default behavior of the ArcGIS client APIs is to display data attribution at the bottom of the map. This is the recommended placement, but can be moved if it is incompatible with your app design or creates format concerns. Refer to Customizing attribution.

The key thing to remember when designing an application is do not obstruct attribution. If your user interface implementation removes or obscures attribution, you are required to provide it by another means that follows the attribution layout and design guidelines.

Example

The following example accesses basemap layers and displays data provider attribution at the bottom-left with the appropriate colors and sizing.

Select different basemap layers, and zoom and pan around this map to see how the attribution changes.

Customizing attribution

Most ArcGIS client APIs display attribution text using an Attribution UI control, component, class, or an attribution option, and a default control is included inside the map area. This control can be overridden to include additional text and otherwise customize behavior.

If the API you are using does not provide the appropriate attribution, you need to add it manually.

See your API for details about how to add manual attribution. Customized attribution should always adhere to the attribution Layout and design guidelines.

To get attribution text from a service directly, you can query the basemap layer service. The correct text is found in the service metadata in the copyrightText and attribution properties.

For example, the attribution could look something like this:

Source: Esri, DigitalGlobe, GeoEye, i-cubed, Earthstar Geographics, CNES/Airbus DS, USDA, USGS, AEX, Getmapping, Aerogrid, IGN, IGP, swisstopo, and the GIS User Community

Example: Streets basemap layer

RequestResponse
cURLHTTP
    
1
2
3
4
curl https://basemaps-api.arcgis.com/arcgis/rest/services/styles/ArcGIS:Streets? \
-d "f=json" \
-d "type=style" \
-d "token=<ACCESS_TOKEN>" \
                   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
  "version": 8,
  "sprite": "https://cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/../sprites/sprite?token=AAPKfe7119f3c6db476193b959f9f1949168XtMobOgG9zL5jqph1Kc4YAARikbstHEzImt4PbPImGgp8u9Vsd4BlrYgY-K5uR57",
  "glyphs": "https://basemaps-api.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/resources/fonts/{fontstack}/{range}.pbf?token=AAPKfe7119f3c6db476193b959f9f1949168XtMobOgG9zL5jqph1Kc4YAARikbstHEzImt4PbPImGgp8u9Vsd4BlrYgY-K5uR57",
  "sources": {
    "esri": {
      "type": "vector",
      "url": "https://basemaps-api.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer?token=AAPKfe7119f3c6db476193b959f9f1949168XtMobOgG9zL5jqph1Kc4YAARikbstHEzImt4PbPImGgp8u9Vsd4BlrYgY-K5uR57",
      "minzoom": 0,
      "maxzoom": 16,
      "tiles": [
        "https://basemaps-api.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/{z}/{y}/{x}.pbf?token=AAPKfe7119f3c6db476193b959f9f1949168XtMobOgG9zL5jqph1Kc4YAARikbstHEzImt4PbPImGgp8u9Vsd4BlrYgY-K5uR57"
      ],
      "copyrightText": "Sources: Esri, HERE, Garmin, FAO, NOAA, USGS, © OpenStreetMap contributors, and the GIS User Community",
      "attribution": "Sources: Esri, HERE, Garmin, FAO, NOAA, USGS, © OpenStreetMap contributors, and the GIS User Community"
    }
  },
  ...
}

Example: Imagery basemap layer

RequestResponse
cURLHTTP
    
1
2
3
4
curl https://basemaps-api.arcgis.com/arcgis/rest/services/styles/ArcGIS:Imagery? \
-d "f=json" \
-d "type=style" \
-d "token=<ACCESS_TOKEN>" \
         
1
2
3
4
5
6
7
8
9
{
  "currentVersion": 10.6,
  "serviceDescription": "World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 in select communities). For more information on this map, including the terms of use, visit us <a href=\\"http://goto.arcgisonline.com/maps/World_Imagery \" target=\"_new\" >online</a>.",
  "mapName": "Layers",
  "description": "World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 in select communities). For more information on this map, including the terms of use, visit us online at http://goto.arcgisonline.com/maps/World_Imagery",
  "copyrightText": "Source: Esri, Maxar, GeoEye, Earthstar Geographics, CNES/Airbus DS, USDA, USGS, AeroGRID, IGN, and the GIS User Community",
  "supportsDynamicLayers": false,
  ...
}

Layout and design guidelines

If you implement custom attribution, follow the design guidelines below:

  • Place attribution directly on the map where it is always visible when the map is visible.
  • Implement dynamic resolution that is responsive to zoom and pan map actions, changing the resolution of attribution depending upon on the map's current extent, scale, and zoom level.
  • Do not overlap with another logo or visual component (excluding elements of the map.)
  • You can choose a font and color scheme that matches your app design as long as you follow Esri's requirements. Your implementation should be legible and meet all other accessibility guidelines.
  • To mimic Esri's default design, use the following attributes:
    • Font family: "Avenir Next W00","Helvetica Neue", Helvetica,Arial,sans-serif;
    • Words inside the attribution use color #323232 at 100% opacity.
    • Background fill color #ffffff at 65% opacity.

Example

This is an example of using an ArcGIS API for JavaScript widget to display the attribution text in a custom location at the top of the map.

                                                                       
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
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<title>ArcGIS Developer Guide: Basemap layers</title>
<style>
  html, body, #viewDiv {
    padding: 0;
    margin: 0;
    height: 100%;
    width: 100%;
  .esri-view .esri-ui .esri-attribution{
    position: fixed;
    bottom: unset;
    top: 0;
</style>
<link rel="stylesheet" href="https://js.arcgis.com/4.21/esri/themes/light/main.css">
<script src="https://js.arcgis.com/4.21/"></script>
  <script>
  require([
    "esri/config",
    "esri/Map",
    "esri/views/MapView",
    "esri/widgets/Zoom",
    "esri/widgets/Attribution"
  ],(
    Map,
  )=> {
    esriConfig.apiKey = "YOUR_API_KEY";
    const map = new Map({
      basemap: "arcgis-imagery"
    const view = new MapView({
      container: "viewDiv",
      map: map,
      center: [-10, 30],
      zoom: 2,
      constraints: {
        snapToZoom: false,
      padding: { top: 15 },
      ui: {
        components: []
    const attribution = new Attribution({view});
    view.ui.add(attribution, "manual");
    const zoom = new Zoom ({
    view.ui.add(zoom, "bottom-right");
</script>
</head>
<body>
  <div id="viewDiv"></div>
</body>
</html>

For more information about accounts, licensing, pricing, and service usage, visit the FAQs.

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