Local data

Map showing coverage of local data.

What is local data?

You can retrieve local data, also known as advanced demographics, which provides additional detailed information for specific countries, counties, cities, and locations. Each individual data field is represented by an analysis variable, and analysis variables are organized into data categories that you can explore interactively with the Analysis Variable Finder and Data Collection Finder.

How to access the data

To get advanced demographics data, you use the enrich operation and specify the analysisVariables or dataCollections you want returned.

Below is a list of the high-level data categories that are available. You can use analysis variables or data collections within these categories to get data.

Data category
Description
Data collection examples
Analysis variable examples
PopulationIn depth information on household and family composition variables such as language spoken and religious affiliation. Population counts, density, gender, and distribution available globally.Population2020 Population in Family Households, 2020 Civilian Employed Population Age 16+
IncomeIn depth information on income, savings, and poverty statistics. General information, including purchasing power, is available globally.Net Worth2022 Median Disposable Income, 2020 Households Receiving Food Stamps/SNAP
AgeIn depth information on age distribution for population, households, and income. General age information can be found globally.Age By Sex By Race2022 Senior Population (Age 65+), 2027 Child Population (Age <18)
HouseholdsIn depth information on households including age and immigration status. General information, such as total number of households, is available globally.Presence of Children2020 Households with 1+ Persons with a Disability, 2010 Family Households: 4-Person
HousingInformation on housing structures, including vacant units, rent, and mortgage status.Home Value2022 Average Home Value, 2022 Renter Occupied Housing Units, 2020 HHs by Heating Fuel: Utility Gas,
HealthInformation on the health-care industry and people's relationship to it.Health2027 Health Insurance, 2027 Medical Care
EducationInformation about current or previous levels of education.Education, Educational Attainment2022 Education, 2022 Educational Attainment Base
BusinessCorporate information, including sale figures and the number of businesses by type.BusinessesTotal (NAICS11-99) Businesses, Total (SIC01-99) Sales ($000), Construction (SIC15-17) Employees
Race or EthnicityInformation on racial demographics.Population by RaceDiversity Index, Hispanic Population Age 18+, Pop by Language Spoken at Home
Retail and Centrality**Information on retail sectors, purchasing power, and turnover rates.RetailandCentralityNexiga2021 Retail Purchasing Power, 2021 Turnover Key Figures per Inhabitant
SpendingInformation on expenditures in specific retail categories.Spending FactsRetail Goods (Monthly), Restaurant(Monthly)
BehaviorsInformation on expected consumer demand and activities.Electronics & Internet2022 Households by Tapestry Segment Base
Psychographics*Information on consumer motivations and preferences.Psychographics & Advertising2022 Seen Video Ad at Gas Station Last 30 Days, 2022 Helping to Preserve Nature
JobsInformation on employment status.Occupation2022 Occupation: Construction/Extraction REL
PovertyInformation on educational attainment, income, food stamps, employment, and race.Food Stams/SNAP2020 Households Receiving Food Stamps/SNAP
Marital StatusInformation on maritial status.Marital Status Totals2022 Population Age 15+: Never Married
Language-ImmigrationInformation about language spoken at home, country of birth, aboriginal identity, and minority status.Language2020 Pop Age 5+ by Language Spoken at Home Base
Market SegmentationIdentifies regional demographic similarities using market surveys.LifeMode Groups2022 Upscale Avenues Tapestry LifeMode Group L2 Households
At RiskInformation about populations considered to be socioeconomically, or due to public policiy, at risk.At Risk2022 HH Owns or Leases Any Vehicle
Key FactsContains the most popular demographic data categories for each country.Key US Facts2022 Daytime Population
Policy*Information related to public policy decisions.Policy Facts2022 Per Capita Income
Crime*Infromation on the regional rate of risk for specific crimes.Crime Indexes2022 Total Crime Aggregate

*USA Only **Germany Only

URL request

Learn more about standard and enhanced endpoints in Service endpoints.

Use dark colors for code blocksCopy
 
1
https://geoenrich.arcgis.com/arcgis/rest/services/World/geoenrichmentserver/Geoenrichment/enrich?<parameters>

Required parameters

NameDescriptionExamples
fThe format of the data returned.f=json f=pjson f=geojson f=csv
tokenAn API key or OAuth 2.0 access token. Learn how to get an access token in Security and authentication.token=<YOUR_API_KEY>
token=<ACCESS_TOKEN>
studyAreasThe input point, address, line, polygon or administrative boundarystudyAreas=[{"geometry":{"x": -122.435, "y": 37.785}}]
studyAreas=[{"address":{"text":"380 New York St. Redlands, CA 92373"}}]
studyAreas=[{"sourceCountry":"US","layer":"US.ZIP5","ids":["92373"]}]

Key parameters

NameDescriptionExamples
analysisVariablesReturns a subset of attributes from one or more data collections.["food.X1131_X"]
dataCollectionsReturns a preassembled list of analysis variables curated for specific countries and regions.[educationalattainment]
returnGeometryRetrieves the study area's geometry for display on a map.true, false

Additional parameters: The addDerivativeVariables returns percent, average and index attributes. The intersectingGeographies parameter returns information about administrative boundaries intersected by an input point. The useData parameter provides a performance hint to the service when all input study areas lie within the same country or region.

Code examples

Find local facts (1 mile buffer)

In this example, the dataCollections parameter is used to return a different set of facts. With the search box, select a pre-defined location or click on the map to create a 1 mile ring buffer around a point. Facts are returned from the requested data collection, Household Totals.

Use dark colors for code blocksCopy
 
1
https://geoenrich.arcgis.com/arcgis/rest/services/World/geoenrichmentserver/Geoenrichment/datacollections/US?f=pjson

Steps

  1. Reference the service.

  2. Define studyAreas to submit a point.

  3. Define dataCollections to return a curated list of facts.

  4. Set the API key.

APIs

ArcGIS Maps SDK for JavaScriptArcGIS Maps SDK for JavaScriptArcGIS API for PythonArcGIS REST JSEsri LeafletMapLibre GL JSOpenLayers
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
        function getDemographicData(point, dataCollection) {
          if (!dataCollection) {
            return;
          }
          // Request demographic data
          arcgisRest.queryDemographicData({
              studyAreas: [{ "geometry": { "x": point.longitude, "y": point.latitude } }],
              authentication: authentication,
              dataCollections: [dataCollection]
            })
            .then((response) => {
              if (response.results[0].value.FeatureSet.length > 0 &&
                response.results[0].value.FeatureSet[0].features.length > 0) {
                const attributes = response.results[0].value.FeatureSet[0].features[0].attributes;
                showData(attributes, point, dataCollection);
              } else {
                console.log("No data found or point not in the United States.");
              }
            });
        }
Expand

REST API

cURLcURLHTTP
Use dark colors for code blocksCopy
     
1
2
3
4
5
curl https://geoenrich.arcgis.com/arcgis/rest/services/World/geoenrichmentserver/Geoenrichment/enrich? \
-d "studyAreas=[{'geometry':{'x': -74.0060, 'y': 40.7128}}]" \
-d "dataCollections=[educationalattainment]" \
-d "f=json" \
-d "token=<ACCESS_TOKEN>"

Find facts for a 5 minute drive area

In this example, the studyAreasOptions parameter is used to define a 5 minute drive time service area instead of the default 1 mile ring buffer. Select a data collection then click on the map to show data within a 5 minute drive area.

Steps

  1. Reference the service.

  2. Define studyAreas to submit a point.

  3. Define studyAreasOptions to create a drive time service area around the point.

  4. Define dataCollections to return a specific lists of variables.

  5. Define returnGeometry as true so the service area can be displayed on the map.

  6. Set the API key.

APIs

ArcGIS Maps SDK for JavaScriptArcGIS Maps SDK for JavaScriptEsri LeafletMapLibre GL JSOpenLayers
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
        function getDemographicData(point, dataCollection) {
          if (!dataCollection) {
            return;
          }
          // Request demographic data
          arcgisRest.queryDemographicData({
              studyAreas: [{ "geometry": { "x": point.longitude, "y": point.latitude } }],
              authentication: authentication,
              dataCollections: [dataCollection],
              params: {"studyareasoptions": '{"areaType": "NetworkServiceArea", "bufferUnits": "Minutes", "bufferRadii": [5], "travel_mode": "Driving"}'},
              returnGeometry: true
            })
            .then((response) => {
              if (response.results[0].value.FeatureSet.length > 0 &&
                response.results[0].value.FeatureSet[0].features.length > 0) {
                const attributes = response.results[0].value.FeatureSet[0].features[0].attributes;
                const geometry = response.results[0].value.FeatureSet[0].features[0].geometry;
                drawGeometry(geometry);
                showData(attributes, point, dataCollection);
              } else {
                console.log("No data found.");
              }
            });
        }
Expand

REST API

cURLcURLHTTP
Use dark colors for code blocksCopy
       
1
2
3
4
5
6
7
curl https://geoenrich.arcgis.com/arcgis/rest/services/World/geoenrichmentserver/Geoenrichment/enrich? \
-d "studyAreas=[{'geometry':{'x': -74.0060, 'y': 40.7128}}]" \
-d "studyAreasOptions={'areaType': 'NetworkServiceArea', 'bufferUnits': 'Minutes', 'bufferRadii': [10],'travel_mode': 'Driving'}" \
-d "dataCollections=HouseholdTotals" \
-d "returnGeometry=true" \
-d "f=json" \
-d "token=<ACCESS_TOKEN>"

Find normalized facts for a 1 mile buffer

In this example the addDerivativeVariables parameter is used to calculate percentages from facts. Use the search box to select a pre-defined location or click on the map to create the default 1 mile ring around a point. The addDerivativeVariables parameter is set to percent. The list of accepted values are percent, index, average, all.

Steps

  1. Reference the service.

  2. Define the studyAreas

  3. Define the dataCollections

  4. Define addDerivativeVariables to return averages

  5. Set the API key.

APIs

ArcGIS Maps SDK for JavaScriptArcGIS Maps SDK for JavaScriptArcGIS API for PythonArcGIS REST JSEsri LeafletMapLibre GL JSOpenLayers
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
        function getDemographicData(point) {
          // Request demographic data
          arcgisRest.queryDemographicData({
              studyAreas: [{ "geometry": { "x": point.longitude, "y": point.latitude } }],
              dataCollections: ["Health"],
              addderivativevariables: ["average"],
              authentication: authentication
            })
            .then((response) => {
              if (response.results[0].value.FeatureSet.length > 0 &&
                response.results[0].value.FeatureSet[0].features.length > 0) {
                const attributes = response.results[0].value.FeatureSet[0].features[0].attributes;
                showData(attributes, point);
              } else {
                console.log("No data found.");
              }
            });
        }
Expand

REST API

cURLcURLHTTP
Use dark colors for code blocksCopy
      
1
2
3
4
5
6
curl https://geoenrich.arcgis.com/arcgis/rest/services/World/geoenrichmentserver/Geoenrichment/enrich? \
-d "studyAreas=[{'geometry':{'x': -74.0060, 'y': 40.7128}}]" \
-d "dataCollections=Health" \
-d "addDerivativeVariables=average" \
-d "f=json" \
-d "token=<ACCESS_TOKEN>"