GeoEnrichment service

The GeoEnrichment service finds demographic information and other location facts for places around the world. A point or polygon can be used to retrieve data associated with the location and surrounding area. The service supports over 15,000 data fields to choose from with coverage for more than 130 countries and regions.

Demographic data obtained from the GeoEnrichment service

Key features

  • Demographic data enrichment for many countries and regions.
  • Supports study areas such as rings and drive times derived from point locations.
  • Contains curated data collections of demographic analysis variables for areas.
  • Supports a custom list of data fields from one or more data collections.
  • Return geometry and data for a study area that can be displayed on a map.

How the GeoEnrichment service works

The GeoEnrichment service uses a sophisticated data apportionment methodology to aggregate demographic information for rings and other polygons. For example, in the U.S. and Canada, data apportionment relies mostly on census block points. Block points are centroids derived from census block boundaries, the most detailed level of census tabulation available. They contain attributes for the actual count of people and households living in the associated block. For most other countries and regions settlement points are used for data apportionment. Settlement points are modeled by Esri and provide an estimate of the likelihood of human settlement.

The main tasks are:

  • Enrich an area: Find demographic data for an area.

To use the service, you typically:

  1. Determine the country of interest.
  2. Determine the place or area e.g. buffered point, drivetime polygon, custom polygon to search.
  3. Determine the demographic analysis variables of interest.
  4. Query a study area with the fields of interest.

Service URL

The GeoEnrichment service only supports an enhanced endpoint. The base URL for the service is:

Use dark colors for code blocksCopy

Learn more about standard and enhanced endpoints in Service endpoints.


To GeoEnrich a location, use the enrich operation.

This returns a JSON structure containing an array of features. Each feature includes a number of attributes which fall into three categories:

Area and geometry:
These attributes describe the geographic study area:

  • OBJECTID An integer used to uniquely identify features in the enrich response.
  • sourceCountry The country or region in which the feature is located.
  • areaType The type of buffer created around a point study area. Examples include: ring buffer and network service area.
  • bufferUnits The unit of measurement used when creating a buffer. Examples include Miles and Kilometers.
  • bufferRadii An integer which defines the distance of the buffer.

Demographic data:
These attributes include demographic data for each data field specified in the request.

If none were specified, the following default data fields are returned from the Key Global Facts data collection:

  • TOTPOP (Total Population)
  • TOTHH (Total Households)
  • AVGHHSZ (Average Household Size)
  • TOTMALES (Male Population)
  • TOTFEMALES (Female Population).

To request other data fields, see the analysisVariables and dataCollections parameters.

** Apportionment details:**
These properties provide further details about how demographic data was calculated for the geographic study area:

  • hasData A value of 1 means the area intersects human settlement. A value of 0 means the area does not intersect human settlement.
  • aggregationMethod The method used by GeoEnrichment to apportion demographic data to an area. The most detailed level of apportionment is Block Apportionment.
  • populationToPolygonSizeRating An area to population reliability score which is based on the size of a census geography unit and the number of people estimated to live in that polygon. The larger the area of a census tabulation area, the less likely the specific locations where people live can reliably be found.
  • apportionmentConfidence The overall reliability score which encompasses all aspects of reliability and includes the Area to population score.

URL Request

Use dark colors for code blocksCopy

Required parameters

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>
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"}}]

Key parameters


An array of input points, polygons, administrative boundaries, or addresses.

  • [{"geometry":{"x": -122.435, "y": 37.785}}]
  • [{"geometry":{"x": -122.435, "y": 37.785}},{"geometry":{"x": -122.433, "y": 37.734}},{"geometry":{"x": -122.746, "y": 49.986}}]
  • [{"address":{"text":"380 New York St. Redlands, CA 92373"}}]
  • [{"sourceCountry":"US","layer":"US.ZIP5","ids":["92373"]}]

An array of values to control how input points are buffered. Supported area types include ring buffers and network service areas such as drive times and walk times. Multiple buffer radii can be requested. The unit of measurement requested can be miles or kilometers and in the case of service areas, minutes and hours are also supported.

  • {"areaType":"RingBuffer","bufferUnits":"Miles","bufferRadii":[1,3,5]}
  • {'areaType': 'NetworkServiceArea', 'bufferUnits': 'Minutes', 'bufferRadii': [5,10,15],'travel_mode': 'Driving'}

An array of data collection names to query for. The names contain pre-defined set of attributes to return for the world or different countries. For example:

  • ["KeyGlobalFacts"]
  • ["KeyUSFacts"]
  • ["Education"]

An array of data attribute field names (analysis variables) to search for. The field names are typically defined with a data collection name (global or country) and the field name. For example:

  • KeyGlobalFacts.TOTPOP
  • KeyUSFacts.POPGRW10CY
  • HousingTotalsAIS.CANHOUS

Optional parameter to specify a comma separated array of values that describe what derivative variables to include in the output. Valid values are:

  • percent
  • index
  • average
  • all

An optional parameter to request an area's geometry for display on a map. When this parameter is set to true, the geometries of each feature will be included in the repsonse.

The default value is false.


An optional parameter to explicitly specify the country or dataset to query. This provides a performance benefit when all study areas are contained within the same country or region.

  • {"sourceCountry":"US","hierarchy":"census2020"}
  • {"sourceCountry":"US","hierarchy":"census"}
  • {"sourceCountry":"US"}

The default value is (null or empty).

Other parameters

There are many other parameters that can be used to improve and modify place search results.

Some commonly used parameters are:

  • intersectingGeographies Return the adminitstrative boudnaries that each input study area intersects.
  • insr Define a spatial reference system for the input study areas.
  • outsr Request the geometries of output features in a specific spatial reference system.


Use dark colors for code blocksCopy
curl \
-d "studyAreas=[{'geometry':{'x': -117.1956, 'y': 34.0572}}]"
-d "f=json"
-d "token=<ACCESS_TOKEN>"


To make authenticated requests you need to use one of the following:

  • API key: A permanent token that grants your application access to ready-to-use services and, with an ArcGIS Developer account, private hosted layer (items) and data services.
  • User authentication (formerly _ArcGIS identity): Grants a short-lived token, generated via OAuth 2.0, giving your application permission to access the content and services authorized to an existing ArcGIS user's account.

Learn more about getting access tokens in Security and authentication.

API support

ArcGIS Maps SDK for JavaScript1
ArcGIS Maps SDK for .NET2
ArcGIS Maps SDK for Kotlin2
ArcGIS Maps SDK for Swift2
ArcGIS Maps SDK for Java2
ArcGIS Maps SDK for Qt2
ArcGIS API for Python
Esri Leaflet4
MapLibre GL JS4
Full supportPartial supportNo support
  • 1. Access via ArcGIS REST JS or use a task.
  • 2. Access via HTTP request.
  • 3. Access via HTTP request and authentication.
  • 4. Access via ArcGIS REST JS.


To determine how much it costs to access the service:

  1. If you have an ArcGIS Developer account, go to Pricing. Transactions are billed in US dollars. A free tier of transactions may be available.
  2. If you have an ArcGIS Online account, go to Understand credits. Transactions are billed in credits.

Service data


The main sources of data may be different depending on the country or region and can be explored in the interactive map below. For the U.S. Esri's team of demographers model independent small-area demographic and socioeconomic estimates and forecasts. Additional sources include the U.S. Census Bureau, the Bureau of Labor Statistics and American Community Survey (ACS). For most other countries and regions the main source of standard demographics is Michael Bauer Research (MBR).


Esri is an industry leader in reviewing and processing census information as well as understanding and accurately updating demographic trends. Leveraging nearly forty years of experience, Esri has developed and refined its models and methods to improve data quality and precision. In addition to the wealth of public source data, particularly from the Census Bureau, source data from carefully chosen partnerships with private vendors are integrated into the modelling process.

Click on the map below to explore data sources for each country and region.

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