geocodeAddresses

Geocode an entire list of addresses in one request using the geocodeAddresses operation. Geocoding many addresses at once is also known as batch or bulk geocoding.

geocodeAddresses

This operation can be used to find the following types of locations:

  • Street addresses
    • 27488 Stanford Ave, Bowden, North Dakota
    • 380 New York St, Redlands, CA 92373
  • Administrative place-names, such as city, county, state, province, or country names:
    • Seattle, Washington
    • State of Mahārāshtra
    • Liechtenstein
  • Postal codes
    • 92591
    • TW9 1DN
  • Points of interest (POI) by name
    • Disneyland, California
    • starbucks, 5th Ave, San Diego
    • mount everest
  • Coordinates
    • -117.155579,32.703761

The addresses in your table can be stored in a single field or in multiple fields—one for each address component. Batch geocoding performance is better when the address parts are stored in separate fields.

Tip:

You can also batch geocode address tables using the ArcGIS Online Generate and Publish operations. These are higher-level APIs that simplify the batch geocoding process.

Request URL

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?<PARAMETERS>

Maximum addresses

There is a limit to the maximum number of addresses that can be geocoded in a single batch request with the service. The MaxBatchSize property defines this limit. For instance, if MaxBatchSize=2000, and a record set sent to the service contains 3,000 addresses, only the first 2,000 will be geocoded. The SuggestedBatchSize property is also useful as it specifies the optimal number of addresses to include in a single batch request.

Both of these properties can be determined by querying the service description at http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer?f=pjson.

The client application must account for the limit by dividing the input address table into record sets of MaxBatchSize or fewer addresses and send each record set to the service as a separate request. Note that Generate and Publish take care of this for you.

For batch geocode operations, the service returns a response when each address in the input record set has been geocoded. If an unhandled error such as a time-out occurs during the process, the server will not return the results for that request, even if most of the addresses in the input record set have already been geocoded. For this reason, the client application should implement logic to detect and handle such errors.

Batch geocode access

An ArcGIS Online organizational account is required to use the batch geocoding functionality provided by the World Geocoding Service. Successfully geocoded addresses that return a status of Matched or Tied cause ArcGIS Online service credits to be consumed for batch geocoding operations.

Each batch geocode request requires a token to be included with the request. Refer to Authenticate a request to the World Geocoding Service for information about how to access secured batch geocoding functionality.

Request parameters

The parameters for geocodeAddresses are listed in the subsections that follow, categorized by required and optional parameters.

Required parameters

addresses

A record set representing the addresses to be geocoded. Each record must include an OBJECTID attribute with a unique value as well as values for the address fields supported by the service.

For passing in the location name as a single line of text—single field batch geocoding—use the SingleLine input field.

For passing in the location name as multiple lines of text—multifield batch geocoding—use the address fields described in findAddressCandidates.

The service info page http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer?f=pjson provides localized versions of the input field names in all locales supported by the service. See Localized input field names for more information.

Note:

When sending long JSON objects in a request, it is necessary to use the POST method instead of GET. This is due to URL length limitations. When GET is used, the entire request is encoded in the URL; long JSON objects can cause the limit to be exceeded and the URL to be truncated. A typical geocodeAddresses request will include hundreds of street addresses, which are formatted as part of the addresses parameter. Such large numbers of addresses can quickly cause the URL length limit to be reached. For this reason, it is recommended that applications use the POST method to send geocodeAddresses requests.

Example:
addresses=
{
    "records": [
        {
            "attributes": {
                "OBJECTID": 1,
                "Address": "380 New York St",
                "Neighborhood": "",
                "City": "Redlands",
                "Subregion": "",
                "Region": "CA"
            }
        },
        {
            "attributes": {
                "OBJECTID": 2,
                "Address": "1 World Way",
                "Neighborhood": "",
                "City": "Los Angeles",
                "Subregion": "",
                "Region": "CA"
            }
        }
    ]
}

token

Use this parameter to specify a token that provides the identity of a user who has the needed permissions to access the service.

See authentication for more information on how to generate an access token.

Example (replace <YOUR TOKEN> with a valid token):
token=<YOUR TOKEN>

f

The service supports responses in JSON or PJSON format. You can specify the response format using the f parameter. This is a required parameter.

Example:
f=json

Optional parameters

category

A place or address type that can be used to filter geocodeAddresses results. The parameter supports input of single category values or multiple comma-separated values. See Category filtering for complete details about the category parameter.

Note:

If more than one value is specified for the parameter, the values must be separated by a comma, with no spaces after the comma.

Example of category filtering with a single category:
category=Address
Example of category filtering with multiple categories:
category=Address,Postal

sourceCountry

A value representing the country. When a value is passed for this parameter, all of the addresses in the input table are sent to the specified country to be geocoded. For example, if sourceCountry=USA is passed with a batch request, it is assumed that all of the addresses in the table are in the United States, so only matching addresses in USA are returned. Using this parameter can increase batch geocoding performance when all addresses are within a single country.

Acceptable values include the ISO 3166-1 3-character country code. You can specify multiple country codes to limit results to more than one country.

A list of supported countries and codes is available in Geocode coverage.

Note:

The sourceCountry and countryCode parameters are similar but serve different purposes. The countryCode parameter defines the country value for an individual record in a multifield batch geocode request. The sourceCountry parameter defines the country value for the entire table of addresses. If both countryCode and sourceCountry are included in a geocodeAddresses request, and the country values are different, the countryCode value takes priority over sourceCountry.

Note:

If more than one value is specified for the parameter, the values must be separated by a comma, with no spaces after the comma.

Example: Single country
sourceCountry=USA
Example: Multiple countries
sourceCountry=FRA,DEU,ESP

outSR

The spatial reference of the x/y coordinates returned by a geocode request. This is useful for applications using a map with a spatial reference different than that of the geocode service.

The spatial reference can be specified as either a well-known ID (WKID) or as a JSON spatial reference object. If outSR is not specified, the spatial reference of the output locations is the same as that of the service. The World Geocoding Service spatial reference is WGS84 (WKID = 4326).

For a list of valid WKID values, see Projected Coordinate Systems and Geographic Coordinate Systems.

Example (102100 is the WKID for the Web Mercator projection):
outSR=102100

matchOutOfRange

A Boolean which specifies if StreetAddress matches should be returned even when the input house number is outside of the house number range defined for the input street. Out-of-range matches have Addr_type=StreetAddressExt. The geometry of such matches is a point corresponding to the end of the street segment where the range value is closest to the input house number. If matchOutOfRange is not specified in a request, its value is set to true by default.

With matchOutOfRange, better spatial accuracy is provided for inexact street address searches. Most street segments are assigned house number ranges. For example, "Main Street" may include house numbers from 2–100 on one side of the street and 1–99 on the other. A user may search for a house number which is not within this range, such as "109 Main Street". If matchOutOfRange=false is passed in this request, the geocode service will return a StreetName-level match to "Main Street", with geometry corresponding to the centroid of a street segment which most closely matches the input values. StreetName matches can be ambiguous because there may be multiple street segments with the same name that equally match the input. However, if matchOutOfRange=true in this case, a more precise geometry is returned to the specific side of the segment of Main Street with house number range 1–99.

Note:

Input house numbers that exceed the range on a street segment by more than 100 will not result in StreetAddressExt matches. For streets with smaller house number ranges, the maxOutOfRange tolerance is less than 100.

Example:
matchOutOfRange=false

locationType

Specifies if the output geometry of PointAddress matches should be the rooftop point or street entrance location. Valid values are rooftop and street. The default value is street.

Geocode results include one geometry object (the location object) which defines the location of the address, as well as two sets of X/Y coordinate values within the attributes object: X/Y, and DisplayX/DisplayY. For geocode results with Addr_type=PointAddress, the X/Y attribute values describe the coordinates of the address along the street, while the DisplayX/DisplayY values describe the rooftop, or building centroid, coordinates. By default the geometry returned for geocode results represents the street entrance location of the address. This is useful for routing scenarios because the rooftop location of some addresses may be offset from a street by a large distance. However for map display purposes it may be desirable to show the rooftop location instead, especially when large buildings or landmarks are geocoded. For these cases the locationType parameter can be used to specify that the rooftop geometry should be returned.

Note:

The locationType parameter only affects the location object in the geocode JSON response. It does not change the X/Y or DisplayX/DisplayY attribute values.

Example:
locationType=rooftop

Batch geocoding output fields

When geocoding a table of addresses, the output fields are returned as part of the attributes in the response. See the example JSON response below, which shows all of the output fields that are returned for each record from a batch geocode process. The output fields are described Service output.

With batch geocoding, it is useful to define a unique ID for each record in your input table of addresses. You can pass the ID as the OBJECTID in the batch geocode request, and the ID will be returned as the ResultID in the response. The ResultID can then be used to link the output fields in the response records, including the X/Y location, to the attributes in the original table.

Batch geocoding examples

The following examples illustrate how to format JSON batch geocoding requests for multiline address input (first example) and single line input (second example) scenarios. In both cases, the response contains the exact same information.

Example: Batch geocode two addresses

Input multiline JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"Address":"380 New York St.","City":"Redlands","Region":"CA","Postal":"92373"}},{"attributes":{"OBJECTID":2,"Address":"1 World Way","City":"Los Angeles","Region":"CA","Postal":"90045"}}]}&sourceCountry=USA&token=<YOUR TOKEN>&f=pjson

For clarity, here is the addresses parameter in PJSON:

addresses=
{           "records": [
        {
            "attributes": {
                "OBJECTID": 1,
                "Address": "380 New York St.",
                "City": "Redlands",
                "Region": "CA",
                "Postal": "92373"
            }
        },
   {
            "attributes": {
                "OBJECTID": 2,
                "Address": "1 World Way",
                "City": "Los Angeles",
                "Region": "CA",
                "Postal": "90045"
            }
        }
    ]
}

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"380 New York St., Redlands, CA, 92373"}},{"attributes":{"OBJECTID":2,"SingleLine":"1 World Way, Los Angeles, CA, 90045"}}]}&sourceCountry=USA&token=<YOUR TOKEN>&f=pjson

For clarity, here is the addresses parameter in PJSON:

addresses=
{           "records": [
        {
            "attributes": {
                "OBJECTID": 1,
                "SingleLine": "380 New York St., Redlands, CA, 92373"
            }
        },
   {
            "attributes": {
                "OBJECTID": 2,
                "SingleLine": "1 World Way, Los Angeles, CA, 90045"
            }
        }
    ]
}

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "380 New York St, Redlands, California, 92373",
   "location": {
    "x": -117.19567031799994,
    "y": 34.056488119000051
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "380 New York St, Redlands, California, 92373",
    "LongLabel": "380 New York St, Redlands, CA, 92373, USA",
    "ShortLabel": "380 New York St",
    "Addr_type": "PointAddress",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "380 New York St, Redlands, California, 92373",
    "Phone": "",
    "URL": "",
    "Rank": 20,
    "AddBldg": "",
    "AddNum": "380",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "R",
    "StPreDir": "",
    "StPreType": "",
    "StName": "New York",
    "StType": "St",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "380 New York St",
    "Block": "",
    "Sector": "",
    "Nbrhd": "West Redlands",
    "District": "",
    "City": "Redlands",
    "MetroArea": "Inland Empire",
    "Subregion": "San Bernardino",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "92373",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.1956703176181,
    "Y": 34.056488119308924,
    "DisplayX": -117.1953135,
    "DisplayY": 34.056108000000009,
    "Xmin": -117.1963135,
    "Xmax": -117.19431349999999,
    "Ymin": 34.055108000000011,
    "Ymax": 34.057108000000007,
    "ExInfo": ""
   }
  },
  {
   "address": "1 World Way, Los Angeles, California, 90045",
   "location": {
    "x": -118.39847141199999,
    "y": 33.94432663300006
   },
   "score": 100,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "1 World Way, Los Angeles, California, 90045",
    "LongLabel": "1 World Way, Los Angeles, CA, 90045, USA",
    "ShortLabel": "1 World Way",
    "Addr_type": "StreetAddress",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "1 World Way, Los Angeles, California, 90045",
    "Phone": "",
    "URL": "",
    "Rank": 20,
    "AddBldg": "",
    "AddNum": "1",
    "AddNumFrom": "1",
    "AddNumTo": "99",
    "AddRange": "1-99",
    "Side": "R",
    "StPreDir": "",
    "StPreType": "",
    "StName": "World",
    "StType": "Way",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "1 World Way",
    "Block": "",
    "Sector": "",
    "Nbrhd": "Westchester",
    "District": "",
    "City": "Los Angeles",
    "MetroArea": "Los Angeles Metro Area",
    "Subregion": "Los Angeles",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "90045",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -118.39847141222306,
    "Y": 33.944326632654878,
    "DisplayX": -118.39847141222306,
    "DisplayY": 33.944326632654878,
    "Xmin": -118.39947141222306,
    "Xmax": -118.39747141222306,
    "Ymin": 33.94332663265488,
    "Ymax": 33.945326632654876,
    "ExInfo": ""
   }
  }
 ]
}

Category filtering

The geocodeAddresses operation supports batch geocode filtering by category values, which represent address and place types. By including the category parameter in a geocodeAddresses request you can avoid false positive matches to unexpected place and address types due to ambiguous input.

For example, a user has a table of three-letter airport codes that they want to geocode. There may be city or business names that are the same as an airport code, causing false positive matches to other places. However the user can ensure that only airport matches are returned by specifying category=airport in the request.

Example: Batch geocode airport codes with category

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"LAX",}},{"attributes":{"OBJECTID":2,"SingleLine":"SFO",}}]}&category=airport&token=<YOUR TOKEN>&f=pjson

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "LAX",
   "location": {
    "x": -118.40896999999995,
    "y": 33.942510000000027
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "T",
    "Score": 100,
    "Match_addr": "LAX",
    "LongLabel": "LAX, Los Angeles, CA, USA",
    "ShortLabel": "LAX",
    "Addr_type": "POI",
    "Type": "Airport",
    "PlaceName": "LAX",
    "Place_addr": "Los Angeles, California",
    "Phone": "",
    "URL": "",
    "Rank": 7,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "Los Angeles",
    "MetroArea": "",
    "Subregion": "Los Angeles County",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -118.40896999999995,
    "Y": 33.942510000000027,
    "DisplayX": -118.40896999999995,
    "DisplayY": 33.942510000000027,
    "Xmin": -118.43396999999996,
    "Xmax": -118.38396999999995,
    "Ymin": 33.917510000000028,
    "Ymax": 33.967510000000026,
    "ExInfo": ""
   }
  },
  {
   "address": "SFO",
   "location": {
    "x": -122.37579999999997,
    "y": 37.618820000000028
   },
   "score": 100,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "World",
    "Status": "T",
    "Score": 100,
    "Match_addr": "SFO",
    "LongLabel": "SFO, CA, USA",
    "ShortLabel": "SFO",
    "Addr_type": "POI",
    "Type": "Airport",
    "PlaceName": "SFO",
    "Place_addr": "California",
    "Phone": "",
    "URL": "",
    "Rank": 7,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "",
    "MetroArea": "",
    "Subregion": "San Mateo County",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -122.37579999999997,
    "Y": 37.618820000000028,
    "DisplayX": -122.37579999999997,
    "DisplayY": 37.618820000000028,
    "Xmin": -122.40079999999998,
    "Xmax": -122.35079999999996,
    "Ymin": 37.593820000000029,
    "Ymax": 37.643820000000026,
    "ExInfo": ""
   }
  }
 ]
}

You can also use category filtering to avoid "low resolution" fallback matches. By default if the World Geocoding Service cannot find a match for an input address it will automatically search for a lower match level, such as a street name, city, or postal code. For batch geocoding a user may prefer that no match is returned in such cases so that they are not charged for the geocode. If a user passes category=Point Address,Street Address in a geocodeAddresses request, no fallback will occur if address matches cannot be found; the user will only be charged for the actual address matches.

Example: Batch geocode with fallback allowed (no category)

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"380 New York St Redlands CA 92373",}},{"attributes":{"OBJECTID":2,"SingleLine":"Escondido CA",}}]}&token=<YOUR TOKEN>&category=&f=pjson

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "380 New York St, Redlands, California, 92373",
   "location": {
    "x": -117.19567031799994,
    "y": 34.056488119000051
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "380 New York St, Redlands, California, 92373",
    "LongLabel": "380 New York St, Redlands, CA, 92373, USA",
    "ShortLabel": "380 New York St",
    "Addr_type": "PointAddress",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "380 New York St, Redlands, California, 92373",
    "Phone": "",
    "URL": "",
    "Rank": 20,
    "AddBldg": "",
    "AddNum": "380",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "R",
    "StPreDir": "",
    "StPreType": "",
    "StName": "New York",
    "StType": "St",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "380 New York St",
    "Block": "",
    "Sector": "",
    "Nbrhd": "West Redlands",
    "District": "",
    "City": "Redlands",
    "MetroArea": "Inland Empire",
    "Subregion": "San Bernardino",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "92373",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.1956703176181,
    "Y": 34.056488119308924,
    "DisplayX": -117.1953135,
    "DisplayY": 34.056108000000009,
    "Xmin": -117.1963135,
    "Xmax": -117.19431349999999,
    "Ymin": 34.055108000000011,
    "Ymax": 34.057108000000007,
    "ExInfo": ""
   }
  },
  {
   "address": "Escondido, California",
   "location": {
    "x": -117.08216999999996,
    "y": 33.123160000000041
   },
   "score": 100,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "Escondido, California",
    "LongLabel": "Escondido, CA, USA",
    "ShortLabel": "Escondido",
    "Addr_type": "Locality",
    "Type": "City",
    "PlaceName": "Escondido",
    "Place_addr": "Escondido, California",
    "Phone": "",
    "URL": "",
    "Rank": 5.5,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "Escondido",
    "MetroArea": "San Diego Metro Area",
    "Subregion": "San Diego",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.08216999999996,
    "Y": 33.123160000000041,
    "DisplayX": -117.08216999999996,
    "DisplayY": 33.123160000000041,
    "Xmin": -117.15716999999997,
    "Xmax": -117.00716999999996,
    "Ymin": 33.048160000000038,
    "Ymax": 33.198160000000044,
    "ExInfo": ""
   }
  }
 ]
}

Example: Batch geocode with no fallback allowed (category=Point Address)

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"380 New York St Redlands CA 92373",}},{"attributes":{"OBJECTID":2,"SingleLine":"Escondido CA",}}]}&token=<YOUR TOKEN>&category=Point Address&f=pjson

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "380 New York St, Redlands, California, 92373",
   "location": {
    "x": -117.19567031799994,
    "y": 34.056488119000051
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "380 New York St, Redlands, California, 92373",
    "LongLabel": "380 New York St, Redlands, CA, 92373, USA",
    "ShortLabel": "380 New York St",
    "Addr_type": "PointAddress",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "380 New York St, Redlands, California, 92373",
    "Phone": "",
    "URL": "",
    "Rank": 20,
    "AddBldg": "",
    "AddNum": "380",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "R",
    "StPreDir": "",
    "StPreType": "",
    "StName": "New York",
    "StType": "St",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "380 New York St",
    "Block": "",
    "Sector": "",
    "Nbrhd": "West Redlands",
    "District": "",
    "City": "Redlands",
    "MetroArea": "Inland Empire",
    "Subregion": "San Bernardino",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "92373",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.1956703176181,
    "Y": 34.056488119308924,
    "DisplayX": -117.1953135,
    "DisplayY": 34.056108000000009,
    "Xmin": -117.1963135,
    "Xmax": -117.19431349999999,
    "Ymin": 34.055108000000011,
    "Ymax": 34.057108000000007,
    "ExInfo": ""
   }
  },
  {
   "address": "",
   "score": 0,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "",
    "Status": "U",
    "Score": 0,
    "Match_addr": "",
    "LongLabel": "",
    "ShortLabel": "",
    "Addr_type": "",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "",
    "Phone": "",
    "URL": "",
    "Rank": 0,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "",
    "MetroArea": "",
    "Subregion": "",
    "Region": "",
    "RegionAbbr": "",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "",
    "LangCode": "",
    "Distance": 0,
    "X": 0,
    "Y": 0,
    "DisplayX": 0,
    "DisplayY": 0,
    "Xmin": 0,
    "Xmax": 0,
    "Ymin": 0,
    "Ymax": 0,
    "ExInfo": ""
   }
  }
 ]
}

See the topic Category filtering for complete details.

Batch geocoding coordinates

The World Geocoding Service supports batch geocoding of coordinates with the geocodeAddresses operation. The output is a geometry point with a match address that is the same as the input coordinates. This is different than reverse geocoding, in which input x/y coordinates are resolved to a matching street address; see reverseGeocode for more information. The following types of coordinates are supported for batch geocoding:

  • x/y coordinates; x refers to longitude (east-west coordinates), and y refers to latitude (north-south coordinates)
  • Military Grid Reference System (MGRS) coordinates
  • United States National Grid (USNG) coordinates

Detailed information about valid input formats for coordinate geocoding is provided in the findAddressCandidates topic. Examples for batch geocoding coordinates with the geocodeAddresses operation are provided below.

Note:

Coordinates must be passed as the value for the singleLine or Address field in the request. If the coordinates are included in the Address field then all other input fields, such as Address2, City, Region, and Postal, must be empty.

Example: Batch geocode latitude / longitude coordinates

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"18.9919543,47.5283605",}},{"attributes":{"OBJECTID":2,"SingleLine":"Y:47.5283605 X:18.9919543",}}]}&token=<YOUR TOKEN>&f=pjson

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "18.991954 47.528360",
   "location": {
    "x": 18.991954300000032,
    "y": 47.528360500000076
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "T",
    "Score": 100,
    "Match_addr": "18.991954 47.528360",
    "LongLabel": "47°31'42.097\"N 18°59'31.035\"E",
    "ShortLabel": "18.991954 47.528360",
    "Addr_type": "LatLong",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "",
    "Phone": "",
    "URL": "",
    "Rank": 0,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "",
    "MetroArea": "",
    "Subregion": "",
    "Region": "",
    "RegionAbbr": "",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "",
    "LangCode": "",
    "Distance": 0,
    "X": 18.9919543,
    "Y": 47.528360499999998,
    "DisplayX": 18.9919543,
    "DisplayY": 47.528360499999998,
    "Xmin": 18.990954299999999,
    "Xmax": 18.992954300000001,
    "Ymin": 47.5273605,
    "Ymax": 47.529360499999996,
    "ExInfo": ""
   }
  },
  {
   "address": "Y:47.528360 X:18.991954",
   "location": {
    "x": 18.991954300000032,
    "y": 47.528360500000076
   },
   "score": 100,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "Y:47.528360 X:18.991954",
    "LongLabel": "47°31'42.097\"N 18°59'31.035\"E",
    "ShortLabel": "Y:47.528360 X:18.991954",
    "Addr_type": "YX",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "",
    "Phone": "",
    "URL": "",
    "Rank": 0,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "",
    "MetroArea": "",
    "Subregion": "",
    "Region": "",
    "RegionAbbr": "",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "",
    "LangCode": "",
    "Distance": 0,
    "X": 18.9919543,
    "Y": 47.528360499999998,
    "DisplayX": 18.9919543,
    "DisplayY": 47.528360499999998,
    "Xmin": 18.990954299999999,
    "Xmax": 18.992954300000001,
    "Ymin": 47.5273605,
    "Ymax": 47.529360499999996,
    "ExInfo": ""
   }
  }
 ]
}

Example: Batch geocode MGRS coordinates

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"18SUH6789043210",}},{"attributes":{"OBJECTID":2,"SingleLine":"19TDJ5538855106",}}]}&token=<YOUR TOKEN>&f=pjson

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "18SUH6788943210",
   "location": {
    "x": -76.511416672999985,
    "y": 38.327287450000028
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "18SUH6788943210",
    "LongLabel": "18SUH6788943210",
    "ShortLabel": "18SUH6788943210",
    "Addr_type": "MGRS",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "",
    "Phone": "",
    "URL": "",
    "Rank": 0,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "",
    "MetroArea": "",
    "Subregion": "",
    "Region": "",
    "RegionAbbr": "",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "",
    "LangCode": "",
    "Distance": 0,
    "X": -76.511416672563371,
    "Y": 38.327287449633303,
    "DisplayX": -76.511416672563371,
    "DisplayY": 38.327287449633303,
    "Xmin": -76.512416672563376,
    "Xmax": -76.510416672563366,
    "Ymin": 38.326287449633305,
    "Ymax": 38.328287449633301,
    "ExInfo": ""
   }
  },
  {
   "address": "19TDJ5538855106",
   "location": {
    "x": -69.555020740999964,
    "y": 43.847689827000067
   },
   "score": 100,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "19TDJ5538855106",
    "LongLabel": "19TDJ5538855106",
    "ShortLabel": "19TDJ5538855106",
    "Addr_type": "MGRS",
    "Type": "",
    "PlaceName": "",
    "Place_addr": "",
    "Phone": "",
    "URL": "",
    "Rank": 0,
    "AddBldg": "",
    "AddNum": "",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "",
    "StPreDir": "",
    "StPreType": "",
    "StName": "",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "",
    "Block": "",
    "Sector": "",
    "Nbrhd": "",
    "District": "",
    "City": "",
    "MetroArea": "",
    "Subregion": "",
    "Region": "",
    "RegionAbbr": "",
    "Territory": "",
    "Zone": "",
    "Postal": "",
    "PostalExt": "",
    "Country": "",
    "LangCode": "",
    "Distance": 0,
    "X": -69.555020740501632,
    "Y": 43.847689826831058,
    "DisplayX": -69.555020740501632,
    "DisplayY": 43.847689826831058,
    "Xmin": -69.556020740501637,
    "Xmax": -69.554020740501628,
    "Ymin": 43.84668982683106,
    "Ymax": 43.848689826831055,
    "ExInfo": ""
   }
  }
 ]
}

Batch geocoding points of interest (POI)

The World Geocoding Service supports batch geocoding of POIs with the geocodeAddresses operation. A POI is a named point location that can represent a cultural or geographic landmark or a business. For example, you can find amusement parks, museums, schools, restaurants, hotels, gas stations, or other types of businesses or landmarks, as well as geographic features, such as mountains, lakes, rivers, or deserts.

As with street addresses, you can search for POIs with geocodeAddresses using the single-field or multifield approach.

Single-field POI search

To search for POIs with single-field search, use the singleLine parameter. In general, valid singleLine POI search strings can be formatted in variations of three basic structures:

  1. <name> <optional connector> <zone>
  2. <zone> <name>
  3. <name><address><zone>

Where

  • <name> = A place-name, such as Disneyland, Starbucks, or Niagra Falls.
  • <zone> = A postal code or administrative boundary—such as neighborhood, city, subregion, region, country, or any combination thereof— that provides a spatial boundary to the search. It can be included in the search to limit matching candidates but is not required.
  • <optional connector> = in or at; this is not required for the search.
  • <address> = A street name, such as Main St, or a complete street address, such as 590 N Main St.

Examples of valid singleLine search strings include the following:

Business name searches

  • Starbucks San Diego
  • Starbucks in San Diego
  • San Diego Starbucks
  • Starbucks 92101
  • Starbucks 5th Ave San Diego
  • Rueben H Fleet Science Center, 1875 El Prado, San Diego, CA, 92101, USA

Multifield POI search

When searching for POIs using multifield input, the name of the POI must be passed as the value for the address parameter. The zone information can be passed in the postal, neighborhood, city, subregion, region, and countryCode parameters. If searching for POI + address, the address should be passed as the value for the address2 parameter.

Examples

Example: Batch geocode amusement parks

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"universal studios los angeles",}},{"attributes":{"OBJECTID":2,"SingleLine":"disneyland anaheim",}}]}&token=<YOUR TOKEN>&f=pjson

Here is the input multifield JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"Address":"universal studios","City":"los angeles"}},{"attributes":{"OBJECTID":2,"Address":"disneyland","City":"anaheim"}}]}&token=<YOUR TOKEN>&f=pjson

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "Disneyland",
   "location": {
    "x": -117.92368999999997,
    "y": 33.815470000000062
   },
   "score": 100,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "World",
    "Status": "T",
    "Score": 100,
    "Match_addr": "Disneyland",
    "LongLabel": "Disneyland, 1313 S Disneyland Dr, Anaheim, CA, 92802, USA",
    "ShortLabel": "Disneyland",
    "Addr_type": "POI",
    "Type": "Amusement Park",
    "PlaceName": "Disneyland",
    "Place_addr": "1313 S Disneyland Dr, Anaheim, California, 92802",
    "Phone": "(714) 781-4565",
    "URL": "",
    "Rank": 2.5,
    "AddBldg": "",
    "AddNum": "1313",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "L",
    "StPreDir": "S",
    "StPreType": "",
    "StName": "Disneyland",
    "StType": "Dr",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "1313 S Disneyland Dr",
    "Block": "",
    "Sector": "",
    "Nbrhd": "Disneyland",
    "District": "",
    "City": "Anaheim",
    "MetroArea": "Los Angeles Metro Area",
    "Subregion": "Orange",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "92802",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.92368999999997,
    "Y": 33.815470000000062,
    "DisplayX": -117.92368999999997,
    "DisplayY": 33.815470000000062,
    "Xmin": -117.92868999999996,
    "Xmax": -117.91868999999997,
    "Ymin": 33.810470000000059,
    "Ymax": 33.820470000000064,
    "ExInfo": ""
   }
  },
  {
   "address": "Universal Studios",
   "location": {
    "x": -118.35245999999995,
    "y": 34.136470000000031
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "T",
    "Score": 100,
    "Match_addr": "Universal Studios",
    "LongLabel": "Universal Studios, 100 Universal Citywalk, Universal City, CA, 91608, USA",
    "ShortLabel": "Universal Studios",
    "Addr_type": "POI",
    "Type": "Amusement Park",
    "PlaceName": "Universal Studios",
    "Place_addr": "100 Universal Citywalk, Universal City, California, 91608",
    "Phone": "(818) 622-3801",
    "URL": "http://www.universalstudioshollywood.com",
    "Rank": 19,
    "AddBldg": "",
    "AddNum": "100",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "R",
    "StPreDir": "",
    "StPreType": "",
    "StName": "Universal Citywalk",
    "StType": "",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "100 Universal Citywalk",
    "Block": "",
    "Sector": "",
    "Nbrhd": "Universal City",
    "District": "",
    "City": "Universal City",
    "MetroArea": "Los Angeles Metro Area",
    "Subregion": "Los Angeles",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "91608",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -118.35245999999995,
    "Y": 34.136470000000031,
    "DisplayX": -118.35245999999995,
    "DisplayY": 34.136470000000031,
    "Xmin": -118.35745999999995,
    "Xmax": -118.34745999999996,
    "Ymin": 34.131470000000029,
    "Ymax": 34.141470000000034,
    "ExInfo": ""
   }
  }
 ]
}

Example: Batch geocode place names with addresses

Here is the input single field JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"SingleLine":"Starbucks, 5th Ave, San Diego",}},{"attributes":{"OBJECTID":2,"SingleLine":"Copley Symphony Hall, 750 B St, San Diego",}}]}&token=<YOUR TOKEN>&f=pjson

Here is the input multifield JSON record set:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/geocodeAddresses?addresses={"records":[{"attributes":{"OBJECTID":1,"Address":"Starbucks","Address2":"5th Ave","City":"San Diego"}},{"attributes":{"OBJECTID":2,"Address":"Copley Symphony Hall","Address2":"750 B St","City":"San Diego"}}]}&token=<YOUR TOKEN>&f=pjson

JSON response

{
 "spatialReference": {
  "wkid": 4326,
  "latestWkid": 4326
 },
 "locations": [
  {
   "address": "Starbucks",
   "location": {
    "x": -117.16007996599996,
    "y": 32.707810000000052
   },
   "score": 100,
   "attributes": {
    "ResultID": 1,
    "Loc_name": "World",
    "Status": "T",
    "Score": 100,
    "Match_addr": "Starbucks",
    "LongLabel": "Starbucks, 209 5th Ave, San Diego, CA, 92101, USA",
    "ShortLabel": "Starbucks",
    "Addr_type": "POI",
    "Type": "Coffee Shop",
    "PlaceName": "Starbucks",
    "Place_addr": "209 5th Ave, San Diego, California, 92101",
    "Phone": "(619) 234-0749",
    "URL": "",
    "Rank": 19,
    "AddBldg": "",
    "AddNum": "209",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "R",
    "StPreDir": "",
    "StPreType": "",
    "StName": "5th",
    "StType": "Ave",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "209 5th Ave",
    "Block": "",
    "Sector": "",
    "Nbrhd": "Gaslamp",
    "District": "",
    "City": "San Diego",
    "MetroArea": "San Diego Metro Area",
    "Subregion": "San Diego",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "92101",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.16007996609754,
    "Y": 32.707810000000052,
    "DisplayX": -117.15963999999997,
    "DisplayY": 32.707810000000052,
    "Xmin": -117.16463999999996,
    "Xmax": -117.15463999999997,
    "Ymin": 32.702810000000049,
    "Ymax": 32.712810000000054,
    "ExInfo": ""
   }
  },
  {
   "address": "Copley Symphony Hall",
   "location": {
    "x": -117.15788999999995,
    "y": 32.717830001000038
   },
   "score": 100,
   "attributes": {
    "ResultID": 2,
    "Loc_name": "World",
    "Status": "M",
    "Score": 100,
    "Match_addr": "Copley Symphony Hall",
    "LongLabel": "Copley Symphony Hall, 750 B St, San Diego, CA, 92101, USA",
    "ShortLabel": "Copley Symphony Hall",
    "Addr_type": "POI",
    "Type": "Performing Arts",
    "PlaceName": "Copley Symphony Hall",
    "Place_addr": "750 B St, San Diego, California, 92101",
    "Phone": "(619) 235-0804",
    "URL": "",
    "Rank": 17,
    "AddBldg": "",
    "AddNum": "750",
    "AddNumFrom": "",
    "AddNumTo": "",
    "AddRange": "",
    "Side": "L",
    "StPreDir": "",
    "StPreType": "",
    "StName": "B",
    "StType": "St",
    "StDir": "",
    "BldgType": "",
    "BldgName": "",
    "LevelType": "",
    "LevelName": "",
    "UnitType": "",
    "UnitName": "",
    "SubAddr": "",
    "StAddr": "750 B St",
    "Block": "",
    "Sector": "",
    "Nbrhd": "Core-Columbia",
    "District": "",
    "City": "San Diego",
    "MetroArea": "San Diego Metro Area",
    "Subregion": "San Diego",
    "Region": "California",
    "RegionAbbr": "CA",
    "Territory": "",
    "Zone": "",
    "Postal": "92101",
    "PostalExt": "",
    "Country": "USA",
    "LangCode": "ENG",
    "Distance": 0,
    "X": -117.15788999999995,
    "Y": 32.717830000576953,
    "DisplayX": -117.15788999999995,
    "DisplayY": 32.718060000000037,
    "Xmin": -117.16288999999995,
    "Xmax": -117.15288999999996,
    "Ymin": 32.713060000000034,
    "Ymax": 32.723060000000039,
    "ExInfo": ""
   }
  }
 ]
}