Search - Get Reverse Geocoding
Use to get a street address and location info from longitude and latitude coordinates.
The Get Reverse Geocoding
API is an HTTP GET
request used to translate a coordinate (example: 37.786505, -122.3862) into a human understandable street address. Useful in tracking applications where you receive a GPS feed from the device or asset and wish to know the address associated with the coordinates. This endpoint will return address information for a given coordinate.
GET https://atlas.microsoft.com/reverseGeocode?api-version=2023-06-01&coordinates={coordinates}
GET https://atlas.microsoft.com/reverseGeocode?api-version=2023-06-01&coordinates={coordinates}&resultTypes={resultTypes}&view={view}
URI Parameters
Name | In | Required | Type | Description |
---|---|---|---|---|
api-version
|
query | True |
string |
Version number of Azure Maps API. |
coordinates
|
query | True |
number[] |
The coordinates of the location that you want to reverse geocode. Example: &coordinates=lon,lat |
result
|
query |
Specify entity types that you want in the response. Only the types you specify will be returned. If the point cannot be mapped to the entity types you specify, no location information is returned in the response. Default value is all possible entities. A comma separated list of entity types selected from the following options.
These entity types are ordered from the most specific entity to the least specific entity. When entities of more than one entity type are found, only the most specific entity is returned. For example, if you specify Address and AdminDistrict1 as entity types and entities were found for both types, only the Address entity information is returned in the response. |
||
view
|
query |
string |
A string that represents an ISO 3166-1 Alpha-2 region/country code. This will alter Geopolitical disputed borders and labels to align with the specified user region. By default, the View parameter is set to “Auto” even if you haven’t defined it in the request. Please refer to Supported Views for details and to see the available Views. |
Request Header
Name | Required | Type | Description |
---|---|---|---|
x-ms-client-id |
string |
Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from the Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following articles for guidance. |
|
Accept-Language |
string |
Language in which search results should be returned. Please refer to Supported Languages for details. |
Responses
Name | Type | Description |
---|---|---|
200 OK |
OK Media Types: "application/geo+json" |
|
Other Status Codes |
An unexpected error occurred. Media Types: "application/geo+json" |
Security
AADToken
These are the Microsoft Entra OAuth 2.0 Flows. When paired with Azure role-based access control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.
To implement scenarios, we recommend viewing authentication concepts. In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes.
Note
- This security definition requires the use of the
x-ms-client-id
header to indicate which Azure Maps resource the application is requesting access to. This can be acquired from the Maps management API. - The
Authorization URL
is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Microsoft Entra ID configurations. - The Azure role-based access control is configured from the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.
- Usage of the Azure Maps Web SDK allows for configuration based setup of an application for multiple use cases.
- For more information on Microsoft identity platform, see Microsoft identity platform overview.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Name | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
This is a shared key that is provisioned when creating an Azure Maps resource through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.
With this key, any application is authorized to access all REST APIs. In other words, these can currently be treated as master keys to the account which they are issued for.
For publicly exposed applications, our recommendation is to use server-to-server access of Azure Maps REST APIs where this key can be securely stored.
Type:
apiKey
In:
header
SAS Token
This is a shared access signature token is created from the List SAS operation on the Azure Maps resource through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.
With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.
For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the Map account resource to limit rendering abuse and regularly renew the SAS Token.
Type:
apiKey
In:
header
Examples
Search point -122.138681, 47.630358
Sample request
GET https://atlas.microsoft.com/reverseGeocode?api-version=2023-06-01&coordinates=-122.138681,47.630358
Sample response
Content-Type: application/geo+json
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"address": {
"countryRegion": {
"name": "United States"
},
"adminDistricts": [
{
"shortName": "WA"
},
{
"shortName": "King County"
}
],
"formattedAddress": "15127 NE 24th St, Redmond, WA 98052",
"locality": "Redmond",
"postalCode": "98052",
"addressLine": "15127 NE 24th St"
},
"type": "Address",
"confidence": "Medium",
"matchCodes": [
"Good"
],
"geocodePoints": [
{
"geometry": {
"type": "Point",
"coordinates": [
-122.138681,
47.630358
]
},
"calculationMethod": "Rooftop",
"usageTypes": [
"Display"
]
},
{
"geometry": {
"type": "Point",
"coordinates": [
-122.1386787,
47.6302179
]
},
"calculationMethod": "Rooftop",
"usageTypes": [
"Route"
]
}
]
},
"geometry": {
"type": "Point",
"coordinates": [
-122.138681,
47.630358
]
},
"bbox": [
-122.14632282407,
47.626495282429325,
-122.13103917593001,
47.63422071757068
]
}
]
}
Definitions
Name | Description |
---|---|
Address |
The address of the result |
Admin |
The subdivision name in the country or region for an address. This element is typically treated as the first order administrative subdivision, but in some cases it also contains the second, third, or fourth order subdivision in a country, dependency, or region. |
Calculation |
The method that was used to compute the geocode point. |
Confidence |
The level of confidence that the geocoded location result is a match. Use this value with the match code to determine for more complete information about the match. The confidence of a geocoded location is based on many factors including the relative importance of the geocoded location and the user’s location, if specified. |
Country |
|
Error |
The resource management error additional info. |
Error |
The error detail. |
Error |
Error response |
Feature |
The type of a FeatureCollection object must be FeatureCollection. |
Features |
|
Feature |
The type of a feature must be Feature. |
Geocode |
A collection of geocode points that differ in how they were calculated and their suggested use. |
Geocoding |
This object is returned from a successful Geocoding call |
Geo |
A valid |
Intersection |
The address of the result. |
Match |
One or more match code values that represent the geocoding level for each location in the response. For example, a geocoded location with match codes of Similarly, a geocoded location with match codes of The possible values are:
|
Properties | |
Reverse |
Specify entity types that you want in the response. Only the types you specify will be returned. If the point cannot be mapped to the entity types you specify, no location information is returned in the response. Default value is all possible entities. A comma separated list of entity types selected from the following options.
These entity types are ordered from the most specific entity to the least specific entity. When entities of more than one entity type are found, only the most specific entity is returned. For example, if you specify Address and AdminDistrict1 as entity types and entities were found for both types, only the Address entity information is returned in the response. |
Usage |
The best use for the geocode point.
Each geocode point is defined as a |
Address
The address of the result
Name | Type | Description |
---|---|---|
addressLine |
string |
AddressLine that includes Street Name and Number |
adminDistricts |
The subdivision name in the country or region for an address. This element is typically treated as the first order administrative subdivision, but in some cases it also contains the second, third, or fourth order subdivision in a country, dependency, or region. |
|
countryRegion | ||
formattedAddress |
string |
Formatted Address property |
intersection |
The address of the result. |
|
locality |
string |
locality property |
neighborhood |
string |
neighborhood property |
postalCode |
string |
Postal Code property |
AdminDistricts
The subdivision name in the country or region for an address. This element is typically treated as the first order administrative subdivision, but in some cases it also contains the second, third, or fourth order subdivision in a country, dependency, or region.
Name | Type | Description |
---|---|---|
name |
string |
The name for the corresponding adminDistrict field, For adminDistrict[0], this could be full name of state such as Washington, For adminDistrict[1], this could be the full name of the county |
shortName |
string |
The short name for the corresponding adminDistrict field, For adminDistrict[0], this could be short name of state such as WA, For adminDistrict[1], this could be the short name of the county |
CalculationMethodEnum
The method that was used to compute the geocode point.
Name | Type | Description |
---|---|---|
Interpolation |
string |
The geocode point was matched to a point on a road using interpolation. |
InterpolationOffset |
string |
The geocode point was matched to a point on a road using interpolation with an additional offset to shift the point to the side of the street. |
Parcel |
string |
The geocode point was matched to the center of a parcel. |
Rooftop |
string |
The geocode point was matched to the rooftop of a building. |
ConfidenceEnum
The level of confidence that the geocoded location result is a match. Use this value with the match code to determine for more complete information about the match.
The confidence of a geocoded location is based on many factors including the relative importance of the geocoded location and the user’s location, if specified.
Name | Type | Description |
---|---|---|
High |
string |
If the confidence is set to If a request includes a location or a view, then the ranking may change appropriately. For example, a location query for "Paris" returns "Paris, France" and "Paris, TX" both with |
Low |
string |
|
Medium |
string |
In some situations, the returned match may not be at the same level as the information provided in the request. For example, a request may specify address information and the geocode service may only be able to match a postal code. In this case, if the geocode service has a confidence that the postal code matches the data, the confidence is set to If the location information in the query is ambiguous, and there is no additional information to rank the locations (such as user location or the relative importance of the location), the confidence is set to If the location information in the query does not provide enough information to geocode a specific location, a less precise location value may be returned and the confidence is set to |
CountryRegion
Name | Type | Description |
---|---|---|
ISO |
string |
ISO of country/region |
name |
string |
name of country/region |
ErrorAdditionalInfo
The resource management error additional info.
Name | Type | Description |
---|---|---|
info |
object |
The additional info. |
type |
string |
The additional info type. |
ErrorDetail
The error detail.
Name | Type | Description |
---|---|---|
additionalInfo |
The error additional info. |
|
code |
string |
The error code. |
details |
The error details. |
|
message |
string |
The error message. |
target |
string |
The error target. |
ErrorResponse
Error response
Name | Type | Description |
---|---|---|
error |
The error object. |
FeatureCollectionEnum
The type of a FeatureCollection object must be FeatureCollection.
Name | Type | Description |
---|---|---|
FeatureCollection |
string |
FeaturesItem
Name | Type | Description |
---|---|---|
bbox |
number[] |
Bounding box. Projection used - EPSG:3857. Please refer to RFC 7946 for details. |
geometry |
A valid |
|
id |
string |
ID for feature returned |
properties | ||
type |
The type of a feature must be Feature. |
FeatureTypeEnum
The type of a feature must be Feature.
Name | Type | Description |
---|---|---|
Feature |
string |
GeocodePoints
A collection of geocode points that differ in how they were calculated and their suggested use.
Name | Type | Description |
---|---|---|
calculationMethod |
The method that was used to compute the geocode point. |
|
geometry |
A valid |
|
usageTypes |
The best use for the geocode point.
Each geocode point is defined as a |
GeocodingResponse
This object is returned from a successful Geocoding call
Name | Type | Description |
---|---|---|
features | ||
nextLink |
string |
The is the link to the next page of the features returned. If it's the last page, no this field. |
type |
The type of a FeatureCollection object must be FeatureCollection. |
GeoJsonPoint
A valid GeoJSON Point
geometry type. Please refer to RFC 7946 for details.
Name | Type | Description |
---|---|---|
bbox |
number[] |
Bounding box. Projection used - EPSG:3857. Please refer to RFC 7946 for details. |
coordinates |
number[] |
A |
type |
string:
Point |
Specifies the |
Intersection
The address of the result.
Name | Type | Description |
---|---|---|
baseStreet |
string |
Primary street for the location. |
displayName |
string |
Complete name of the intersection. |
intersectionType |
string |
Type of intersection. |
secondaryStreet1 |
string |
The first intersecting street. |
secondaryStreet2 |
string |
If any, the second intersecting street. |
MatchCodesEnum
One or more match code values that represent the geocoding level for each location in the response.
For example, a geocoded location with match codes of Good
and Ambiguous
means that more than one geocode location was found for the location information and that the geocode service did not have search up-hierarchy to find a match.
Similarly, a geocoded location with match codes of Ambiguous
and UpHierarchy
implies that a geocode location could not be found that matched all the provided location information, so the geocode service had to search up-hierarchy and found multiple matches at that level. An example of up an Ambiguous
and UpHierarchy
result is when you provide complete address information, but the geocode service cannot locate a match for the street address and instead returns information for more than one RoadBlock value.
The possible values are:
Good
: The location has only one match or all returned matches are considered strong matches. For example, a query for New York returns several Good matches.
Ambiguous
: The location is one of a set of possible matches. For example, when you query for the street address 128 Main St., the response may return two locations for 128 North Main St. and 128 South Main St. because there is not enough information to determine which option to choose.
UpHierarchy
: The location represents a move up the geographic hierarchy. This occurs when a match for the location request was not found, so a less precise result is returned. For example, if a match for the requested address cannot be found, then a match code of UpHierarchy
with a RoadBlock entity type may be returned.
Name | Type | Description |
---|---|---|
Ambiguous |
string |
|
Good |
string |
|
UpHierarchy |
string |
Properties
Name | Type | Description |
---|---|---|
address |
The address of the result |
|
confidence |
The level of confidence that the geocoded location result is a match. Use this value with the match code to determine for more complete information about the match. The confidence of a geocoded location is based on many factors including the relative importance of the geocoded location and the user’s location, if specified. |
|
geocodePoints |
A collection of geocode points that differ in how they were calculated and their suggested use. |
|
matchCodes |
One or more match code values that represent the geocoding level for each location in the response. For example, a geocoded location with match codes of Similarly, a geocoded location with match codes of The possible values are:
|
|
type |
string |
One of:
|
ReverseGeocodingResultTypeEnum
Specify entity types that you want in the response. Only the types you specify will be returned. If the point cannot be mapped to the entity types you specify, no location information is returned in the response. Default value is all possible entities. A comma separated list of entity types selected from the following options.
- Address
- Neighborhood
- PopulatedPlace
- Postcode1
- AdminDivision1
- AdminDivision2
- CountryRegion
These entity types are ordered from the most specific entity to the least specific entity. When entities of more than one entity type are found, only the most specific entity is returned. For example, if you specify Address and AdminDistrict1 as entity types and entities were found for both types, only the Address entity information is returned in the response.
Name | Type | Description |
---|---|---|
Address |
string |
|
AdminDivision1 |
string |
|
AdminDivision2 |
string |
|
CountryRegion |
string |
|
Neighborhood |
string |
|
PopulatedPlace |
string |
|
Postcode1 |
string |
UsageTypeEnum
The best use for the geocode point.
Each geocode point is defined as a Route
point, a Display
point or both.
Use Route
points if you are creating a route to the location. Use Display
points if you are showing the location on a map. For example, if the location is a park, a Route
point may specify an entrance to the park where you can enter with a car, and a Display
point may be a point that specifies the center of the park.
Name | Type | Description |
---|---|---|
Display |
string |
|
Route |
string |