swagger: '2.0' info: title: Microsoft Azure Azure Maps Search Service version: '1.0' description: Azure Maps Search REST APIs host: atlas.microsoft.com schemes: - https consumes: [] produces: - application/json - application/xml securityDefinitions: AADToken: type: oauth2 authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize flow: implicit description: >- These are the [Microsoft Entra OAuth 2.0](https://docs.microsoft.com/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](https://docs.microsoft.com/azure/role-based-access-control/overview) 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](https://aka.ms/amauth). In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes. #### Notes * 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](https://aka.ms/amauthdetails). * 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](https://aka.ms/amrbac) via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs. * Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases. * For more information on Microsoft identity platform, see [Microsoft identity platform overview](https://learn.microsoft.com/entra/identity-platform/v2-overview). scopes: https://atlas.microsoft.com/.default: https://atlas.microsoft.com/.default SharedKey: type: apiKey description: >- This is a shared key that is provisioned when you [Create an Azure Maps account](https://docs.microsoft.com/azure/azure-maps/quick-demo-map-app#create-an-azure-maps-account) in the Azure portal or using PowerShell, CLI, Azure SDKs, or REST API. With this key, any application can access all REST API. In other words, this key can be used as a master key in the account that they are issued in. For publicly exposed applications, our recommendation is to use the [confidential client applications](https://docs.microsoft.com/azure/azure-maps/authentication-best-practices#confidential-client-applications) approach to access Azure Maps REST APIs so your key can be securely stored. name: subscription-key in: query SasToken: type: apiKey description: >- This is a shared access signature token is created from the List SAS operation on the [Azure Maps resource](https://aka.ms/amauth) 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](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token. name: SAS Token in: header security: - AADToken: - https://atlas.microsoft.com/.default - SharedKey: [] - SasToken: [] responses: '202': description: >- Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results. headers: Location: type: string description: New URL to check for the results of the long-running operation. '400': description: >- Bad request: one or more parameters were incorrectly specified or are mutually exclusive. schema: $ref: '#/definitions/ODataErrorResponse' '401': description: >- Access denied due to invalid subscription key or invalid Microsoft Entra ID bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided Microsoft Entra ID bearer token. schema: $ref: '#/definitions/ODataErrorResponse' headers: WWW-Authenticate: type: string description: >- Bearer realm="https://atlas.microsoft.com/", error="invalid_token", error_description="The access token expired" '403': description: Permission, capacity, or authentication issues. schema: $ref: '#/definitions/ODataErrorResponse' '404': description: >- Not Found: the requested resource could not be found, but it may be available again in the future. schema: $ref: '#/definitions/ODataErrorResponse' '500': description: An error occurred while processing the request. Please try again later. schema: $ref: '#/definitions/ODataErrorResponse' 202Async: description: >- **Supported only for async request.** Request Accepted: The request has been accepted for processing. Please use the URL in the Location Header to retry or access the results. headers: Location: type: string description: New URL to check for the results of the long-running operation. parameters: ClientId: name: x-ms-client-id description: >- Specifies which account is intended for usage in conjunction with the Microsoft Entra ID 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 Microsoft Entra ID security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance. type: string in: header required: false x-ms-parameter-location: client SubscriptionKey: name: subscription-key description: >- One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication. type: string in: query required: false x-ms-parameter-location: client ApiVersion: name: api-version description: Version number of Azure Maps API. Current version is 1.0 type: string in: query required: true default: '1.0' x-ms-parameter-location: client JsonFormat: name: format description: Desired format of the response. Only `json` format is supported. type: string in: path required: true enum: - json x-ms-enum: name: JsonFormat modelAsString: true values: - value: json description: >- [The JavaScript Object Notation Data Interchange Format](https://tools.ietf.org/html/rfc8259) x-ms-parameter-location: method TextFormat: name: format description: Desired format of the response. Value can be either _json_ or _xml_. type: string in: path required: true enum: - json - xml x-ms-enum: name: TextFormat modelAsString: true values: - value: json description: >- [The JavaScript Object Notation Data Interchange Format](https://tools.ietf.org/html/rfc8259) - value: xml description: '[The Extensible Markup Language](https://www.w3.org/TR/xml/)' x-ms-parameter-location: method LimitSearch: name: limit in: query description: >- Maximum number of responses that will be returned. Default: 10, minimum: 1 and maximum: 100 required: false type: integer default: 10 minimum: 1 maximum: 100 x-ms-parameter-location: method Offset: name: ofs in: query description: >- Starting offset of the returned results within the full result set. Default: 0, minimum: 0 and maximum: 1900 required: false type: integer default: 0 minimum: 0 maximum: 1900 x-ms-parameter-location: method OptionalBiasLat: name: lat in: query description: Latitude where results should be biased. E.g. 37.337 required: false type: number x-ms-parameter-location: method OptionalBiasLon: name: lon in: query description: Longitude where results should be biased. E.g. -121.89 required: false type: number x-ms-parameter-location: method BoundingBoxTopLeft: x-client-name: BoundingBoxTopLeft name: topLeft in: query description: Top left position of the bounding box. E.g. 37.553,-122.453 required: false type: string x-ms-parameter-location: method BoundingBoxBottomRight: x-client-name: BoundingBoxBottomRight name: btmRight in: query description: Bottom right position of the bounding box. E.g. 37.553,-122.453 required: false type: string x-ms-parameter-location: method RequiredBiasLat: name: lat in: query description: Latitude where results should be biased. E.g. 37.337. required: true type: number x-ms-parameter-location: method RequiredBiasLon: name: lon in: query description: Longitude where results should be biased. E.g. -121.89. required: true type: number x-ms-parameter-location: method Language: name: language in: query description: >- Language in which search results should be returned. Should be one of supported IETF language tags, case insensitive. When data in specified language is not available for a specific field, default language is used. Please refer to [Supported Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) for details. required: false type: string x-ms-parameter-location: method Query: name: query in: query description: The applicable query string. Must be properly URL encoded. required: true type: string x-ms-parameter-location: method Position: name: query in: query description: >- The applicable query specified as a comma separated string composed by latitude followed by longitude e.g. "47.641268,-122.125679". required: true type: string x-ms-parameter-location: method View: name: view in: query description: >- The View parameter specifies which set of geopolitically disputed content is returned via Azure Maps services, including borders and labels displayed on the map. The View parameter (also referred to as “user region parameter”) will show the correct maps for that country/region. By default, the View parameter is set to “Unified” even if you haven’t defined it in the request. It is your responsibility to determine the location of your users, and then set the View parameter correctly for that location. Alternatively, you have the option to set ‘View=Auto’, which will return the map data based on the IP address of the request. The View parameter in Azure Maps must be used in compliance with applicable laws, including those regarding mapping, of the country where maps, images and other data and third party content that you are authorized to access via Azure Maps is made available. Example: view=IN. Please refer to [Supported Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see the available Views. required: false type: string x-ms-parameter-location: method SearchIndexSet: name: idxSet in: query description: >- A comma separated list of indexes which should be utilized for the search. Item order does not matter. Available indexes are: Addr = Address range interpolation, Geo = Geographies, PAD = Point Addresses, POI = Points of interest, Str = Streets, Xstr = Cross Streets (intersections) required: false type: array items: type: string enum: - Addr - Geo - PAD - POI - Str - Xstr x-ms-enum: name: SearchIndexSet modelAsString: true values: - value: Addr description: Address range interpolation - value: Geo description: Geographies - value: PAD description: Point Addresses - value: POI description: Points of interest - value: Str description: Streets - value: Xstr description: Cross Streets (Intersections) collectionFormat: csv x-ms-parameter-location: method ExtendedPostalCodesFor: name: extendedPostalCodesFor in: query description: >- Indexes for which extended postal codes should be included in the results. Available indexes are: **Addr** = Address ranges **Geo** = Geographies **PAD** = Point Addresses **POI** = Points of Interest **Str** = Streets **XStr** = Cross Streets (intersections) Value should be a comma separated list of index types (in any order) or **None** for no indexes. By default extended postal codes are included for all indexes except Geo. Extended postal code lists for geographies can be quite long so they have to be explicitly requested when needed. Usage examples: extendedPostalCodesFor=POI extendedPostalCodesFor=PAD,Addr,POI extendedPostalCodesFor=None Extended postal code is returned as an **extendedPostalCode** property of an address. Availability is region-dependent. required: false type: string x-ms-parameter-location: method ExtendedPostalCodesForPoi: name: extendedPostalCodesFor in: query description: >- Indexes for which extended postal codes should be included in the results. Available indexes are: **POI** = Points of Interest Value should be **POI** or **None** to disable extended postal codes. By default extended postal codes are included. Usage examples: extendedPostalCodesFor=POI extendedPostalCodesFor=None Extended postal code is returned as an **extendedPostalCode** property of an address. Availability is region-dependent. required: false type: string x-ms-parameter-location: method Typeahead: name: typeahead in: query description: >- Boolean. If the typeahead flag is set, the query will be interpreted as a partial input and the search will enter predictive mode required: false type: boolean default: false x-ms-parameter-location: method CategorySet: name: categorySet in: query description: >- A comma-separated list of category set IDs which could be used to restrict the result to specific Points of Interest categories. ID order does not matter. When multiple category identifiers are provided, only POIs that belong to (at least) one of the categories from the provided list will be returned. The list of supported categories can be discovered using  [POI Categories API](https://aka.ms/AzureMapsPOICategoryTree). Usage examples: * **categorySet=7315** (Search Points of Interest from category Restaurant) * **categorySet=7315025,7315017** (Search Points of Interest of category either Italian or French Restaurant) required: false type: array items: type: integer collectionFormat: csv x-ms-parameter-location: method CountrySet: name: countrySet in: query description: >- Comma separated string of country codes, e.g. FR,ES. This will limit the search to the specified countries required: false type: array items: type: string collectionFormat: csv x-ms-parameter-location: method Radius: name: radius in: query description: >- The radius in meters to for the results to be constrained to the defined area required: false type: number x-ms-parameter-location: method PoiQuery: name: query in: query description: >- The POI name to search for (e.g., "statue of liberty", "starbucks", "pizza"). Must be properly URL encoded. required: true type: string x-ms-parameter-location: method BrandSet: name: brandSet in: query description: >- A comma-separated list of brand names which could be used to restrict the result to specific brands. Item order does not matter. When multiple brands are provided, only results that belong to (at least) one of the provided list will be returned. Brands that contain a "," in their name should be put into quotes. Usage examples: brandSet=Foo brandSet=Foo,Bar brandSet="A,B,C Comma",Bar required: false type: array items: type: string collectionFormat: csv x-ms-parameter-location: method ConnectorSet: name: connectorSet in: query description: >- A comma-separated list of connector types which could be used to restrict the result to Electric Vehicle Station supporting specific connector types. Item order does not matter. When multiple connector types are provided, only results that belong to (at least) one of the provided list will be returned. Available connector types are: * `StandardHouseholdCountrySpecific` - These are the standard household connectors for a certain region. They are all AC single phase and the standard Voltage and standard Amperage. See also: [Plug & socket types - World Standards](https://www.worldstandards.eu/electricity/plugs-and-sockets). * `IEC62196Type1` - Type 1 connector as defined in the IEC 62196-2 standard. Also called Yazaki after the original manufacturer or SAE J1772 after the standard that first published it. Mostly used in combination with 120V single phase or up to 240V single phase infrastructure. * `IEC62196Type1CCS` - Type 1 based combo connector as defined in the IEC 62196-3 standard. The connector is based on the Type 1 connector – as defined in the IEC 62196-2 standard – with two additional direct current (DC) contacts to allow DC fast charging. * `IEC62196Type2CableAttached` - Type 2 connector as defined in the IEC 62196-2 standard. Provided as a cable and plug attached to the charging point. * `IEC62196Type2Outlet` - Type 2 connector as defined in the IEC 62196-2 standard. Provided as a socket set into the charging point. * `IEC62196Type2CCS` - Type 2 based combo connector as defined in the IEC 62196-3 standard. The connector is based on the Type 2 connector – as defined in the IEC 62196-2 standard – with two additional direct current (DC) contacts to allow DC fast charging. * `IEC62196Type3` - Type 3 connector as defined in the IEC 62196-2 standard. Also called Scame after the original manufacturer. Mostly used in combination with up to 240V single phase or up to 420V three phase infrastructure. * `Chademo` - CHAdeMO connector named after an association formed by the Tokyo Electric Power Company and industrial partners. Because of this is is also known as the TEPCO's connector. It supports fast DC charging. * `IEC60309AC1PhaseBlue` - Industrial Blue connector is a connector defined in the IEC 60309 standard. It is sometime referred to as by some combination of the standard, the color and the fact that is a single phase connector. The connector usually has the "P+N+E, 6h" configuration. * `IEC60309DCWhite` - Industrial White connector is a DC connector defined in the IEC 60309 standard. * `Tesla` - The Tesla connector is the regionally specific Tesla Supercharger connector. I.e. it refers to either Tesla's proprietary connector, sometimes referred to as Tesla Port mostly limited to North America or the modified Type 2 (DC over Type 2) in Europe. Usage examples: connectorSet=IEC62196Type2CableAttached connectorSet=IEC62196Type2Outlet,IEC62196Type2CableAttached required: false type: array items: type: string enum: - StandardHouseholdCountrySpecific - IEC62196Type1 - IEC62196Type1CCS - IEC62196Type2CableAttached - IEC62196Type2Outlet - IEC62196Type2CCS - IEC62196Type3 - Chademo - IEC60309AC1PhaseBlue - IEC60309DCWhite - Tesla x-ms-enum: name: ConnectorSet modelAsString: true values: - value: StandardHouseholdCountrySpecific description: >- These are the standard household connectors for a certain region. They are all AC single phase and the standard Voltage and standard Amperage. See also: [Plug & socket types - World Standards](https://www.worldstandards.eu/electricity/plugs-and-sockets) - value: IEC62196Type1 description: >- Type 1 connector as defined in the IEC 62196-2 standard. Also called Yazaki after the original manufacturer or SAE J1772 after the standard that first published it. Mostly used in combination with 120V single phase or up to 240V single phase infrastructure. - value: IEC62196Type1CCS description: >- Type 1 based combo connector as defined in the IEC 62196-3 standard. The connector is based on the Type 1 connector – as defined in the IEC 62196-2 standard – with two additional direct current (DC) contacts to allow DC fast charging. - value: IEC62196Type2CableAttached description: >- Type 2 connector as defined in the IEC 62196-2 standard. Provided as a cable and plug attached to the charging point - value: IEC62196Type2Outlet description: >- Type 2 connector as defined in the IEC 62196-2 standard. Provided as a socket set into the charging point. - value: IEC62196Type2CCS description: >- Type 2 based combo connector as defined in the IEC 62196-3 standard. The connector is based on the Type 2 connector – as defined in the IEC 62196-2 standard – with two additional direct current (DC) contacts to allow DC fast charging. - value: IEC62196Type3 description: >- Type 3 connector as defined in the IEC 62196-2 standard. Also called Scame after the original manufacturer. Mostly used in combination with up to 240V single phase or up to 420V three phase infrastructure. - value: Chademo description: >- CHAdeMO connector named after an association formed by the Tokyo Electric Power Company and industrial partners. Because of this is is also known as the TEPCO's connector. It supports fast DC charging. - value: IEC60309AC1PhaseBlue description: >- Industrial Blue connector is a connector defined in the IEC 60309 standard. It is sometime referred to as by some combination of the standard, the color and the fact that is a single phase connector. The connector usually has the "P+N+E, 6h" configuration. - value: IEC60309DCWhite description: >- Industrial White connector is a DC connector defined in the IEC 60309 standard. - value: Tesla description: >- The Tesla connector is the regionally specific Tesla Supercharger connector. I.e. it refers to either Tesla's proprietary connector, sometimes referred to as Tesla Port mostly limited to North America or the modified Type 2 (DC over Type 2) in Europe. collectionFormat: csv x-ms-parameter-location: method OpeningHours: name: openingHours description: >- Hours of operation for a POI (Points of Interest). The availability of hours of operation will vary based on the data available. Supported value: nextSevenDays type: string in: query required: false enum: - nextSevenDays x-ms-enum: name: OpeningHours modelAsString: true values: - value: nextSevenDays description: >- Shows the hours of operation for the next week, starting with the current day in the local time of the POI. x-ms-parameter-location: method paths: /search/polygon/{format}: get: x-publish: true description: >- **Get Polygon**


**Applies to**: S1 pricing tier.


The Get Polygon service allows you to request the geometry data such as a city or country outline for a set of entities, previously retrieved from an Online Search request in GeoJSON format. The geometry ID is returned in the dataSources object under "geometry" and "id" in either a Search Address or Search Fuzzy call.

Please note that any geometry ID retrieved from an Online Search endpoint has a limited lifetime. The client should not store geometry IDs in persistent storage for later referral, as the stability of these identifiers is not guaranteed for a long period of time. It is expected that a request to the Polygon method is made within a few minutes of the request to the Online Search method that provided the ID. The service allows for batch requests up to 20 identifiers. operationId: microsoftAzureSearchGetsearchpolygon x-ms-examples: Get the Geometry using the geometry id returned by the previous Search: $ref: ./examples/GetSearchPolygon.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/JsonFormat' - name: geometries in: query description: >- Comma separated list of geometry UUIDs, previously retrieved from an Online Search request. required: true type: string x-ms-parameter-location: method responses: '200': description: OK schema: $ref: '#/definitions/SearchPolygonResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' produces: - application/json summary: Microsoft Azure Get Search Polygon Format tags: - Search /search/fuzzy/{format}: get: x-publish: true description: >-
**Free Form Search**

**Applies to**: S0 and S1 pricing tiers.


The basic default API is Free Form Search which handles the most fuzzy of inputs handling any combination of address or POI tokens. This search API is the canonical 'single line search'. The Free Form Search API is a seamless combination of POI search and geocoding. The API can also be weighted with a contextual position (lat./lon. pair), or fully constrained by a coordinate and radius, or it can be executed more generally without any geo biasing anchor point.We strongly advise you to use the 'countrySet' parameter to specify only the countries for which your application needs coverage, as the default behavior will be to search the entire world, potentially returning unnecessary results. E.g.: `countrySet`=US,FR Please see [Search Coverage](https://docs.microsoft.com/azure/location-based-services/geocoding-coverage) for a complete list of all the supported countries.Most Search queries default to `maxFuzzyLevel`=2 to gain performance and also reduce unusual results. This new default can be overridden as needed per request by passing in the query param `maxFuzzyLevel`=3 or 4. operationId: microsoftAzureSearchGetsearchfuzzy x-ms-examples: Search City Seattle: $ref: ./examples/GetSearchFuzzy.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - name: query in: query description: >- The applicable query string (e.g., "seattle", "pizza"). Can _also_ be specified as a comma separated string composed by latitude followed by longitude (e.g., "47.641268, -122.125679"). Must be properly URL encoded. required: true type: string x-ms-parameter-location: method - $ref: '#/parameters/Typeahead' - $ref: '#/parameters/LimitSearch' - $ref: '#/parameters/Offset' - $ref: '#/parameters/CategorySet' - $ref: '#/parameters/CountrySet' - $ref: '#/parameters/OptionalBiasLat' - $ref: '#/parameters/OptionalBiasLon' - $ref: '#/parameters/Radius' - $ref: '#/parameters/BoundingBoxTopLeft' - $ref: '#/parameters/BoundingBoxBottomRight' - $ref: '#/parameters/Language' - $ref: '#/parameters/ExtendedPostalCodesFor' - name: minFuzzyLevel in: query description: >- Minimum fuzziness level to be used. Default: 1, minimum: 1 and maximum: 4 * Level 1 has no spell checking. * Level 2 uses normal n-gram spell checking. For example, query "restrant" can be matched to "restaurant." * Level 3 uses sound-like spell checking, and shingle spell checking. Sound-like spell checking is for "rstrnt" to "restaurant" matching. Shingle spell checking is for "mountainview" to "mountain view" matching. * Level 4 doesn’t add any more spell checking functions. The search engine will start looking for a match on the level defined by minFuzzyLevel, and will stop searching at the level specified by maxFuzzyLevel. required: false type: integer default: 1 minimum: 1 maximum: 4 - name: maxFuzzyLevel in: query description: >- Maximum fuzziness level to be used. Default: 2, minimum: 1 and maximum: 4 * Level 1 has no spell checking. * Level 2 uses normal n-gram spell checking. For example, query "restrant" can be matched to "restaurant." * Level 3 uses sound-like spell checking, and shingle spell checking. Sound-like spell checking is for "rstrnt" to "restaurant" matching. Shingle spell checking is for "mountainview" to "mountain view" matching. * Level 4 doesn’t add any more spell checking functions. The search engine will start looking for a match on the level defined by minFuzzyLevel, and will stop searching at the level specified by maxFuzzyLevel. required: false type: integer default: 2 minimum: 1 maximum: 4 - $ref: '#/parameters/SearchIndexSet' - $ref: '#/parameters/BrandSet' - $ref: '#/parameters/ConnectorSet' - $ref: '#/parameters/View' - $ref: '#/parameters/OpeningHours' responses: '200': description: OK schema: $ref: '#/definitions/SearchFuzzyResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Fuzzy Format tags: - Search /search/poi/{format}: get: x-publish: true description: >- **Get POI by Name**

**Applies to**: S0 and S1 pricing tiers.


Points of Interest (POI) Search allows you to request POI results by name. Search supports additional query parameters such as language and filtering results by area of interest driven by country or bounding box. Endpoint will return only POI results matching the query string. Response includes POI details such as address, coordinate location and category. operationId: microsoftAzureSearchGetsearchpoi x-ms-examples: Search for juice bars within 5 miles of Seattle Downtown and limit the response to 5 results: $ref: ./examples/GetSearchPOI.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - name: query in: query description: >- The POI name to search for (e.g., "statue of liberty", "starbucks"), must be properly URL encoded. required: true type: string x-ms-parameter-location: method - $ref: '#/parameters/Typeahead' - $ref: '#/parameters/LimitSearch' - $ref: '#/parameters/Offset' - $ref: '#/parameters/CategorySet' - $ref: '#/parameters/CountrySet' - $ref: '#/parameters/OptionalBiasLat' - $ref: '#/parameters/OptionalBiasLon' - $ref: '#/parameters/Radius' - $ref: '#/parameters/BoundingBoxTopLeft' - $ref: '#/parameters/BoundingBoxBottomRight' - $ref: '#/parameters/Language' - $ref: '#/parameters/ExtendedPostalCodesForPoi' - $ref: '#/parameters/BrandSet' - $ref: '#/parameters/ConnectorSet' - $ref: '#/parameters/View' - $ref: '#/parameters/OpeningHours' responses: '200': description: OK schema: $ref: '#/definitions/SearchPoiResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Poi Format tags: - Search /search/nearby/{format}: get: x-publish: true description: >- **Nearby Search**

**Applies to**: S0 and S1 pricing tiers.


If you have a use case for only retrieving POI results around a specific location, the nearby search method may be the right choice. This endpoint will only return POI results, and does not take in a search query parameter. operationId: microsoftAzureSearchGetsearchnearby x-ms-examples: Search for any points of interest (POI) within 5 miles of Manhattan NY and return the top 10 results: $ref: ./examples/GetSearchNearby.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - $ref: '#/parameters/RequiredBiasLat' - $ref: '#/parameters/RequiredBiasLon' - $ref: '#/parameters/LimitSearch' - $ref: '#/parameters/Offset' - $ref: '#/parameters/CategorySet' - $ref: '#/parameters/CountrySet' - name: radius in: query description: >- The radius in meters to for the results to be constrained to the defined area, Min value is 1, Max Value is 50000. required: false type: number - $ref: '#/parameters/Language' - $ref: '#/parameters/ExtendedPostalCodesFor' - $ref: '#/parameters/BrandSet' - $ref: '#/parameters/ConnectorSet' - $ref: '#/parameters/View' responses: '200': description: OK schema: $ref: '#/definitions/SearchNearbyResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Nearby Format tags: - Search /search/poi/category/{format}: get: x-publish: true description: >- **Get POI by Category**

**Applies to**: S0 and S1 pricing tiers.


Points of Interest (POI) Category Search allows you to request POI results from given category. Search allows to query POIs from one category at a time. Endpoint will only return POI results which are categorized as specified. Response includes POI details such as address, coordinate location and classification. operationId: microsoftAzureSearchGetsearchpoicategory x-ms-examples: Search for atm's within 2 miles of Times Square NY and return the top 3 results: $ref: ./examples/GetSearchPOICategory.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - name: query in: query description: >- The POI category to search for (e.g., "AIRPORT", "RESTAURANT"), must be properly URL encoded. Supported main categories can be requested by calling [Get Search POI Category Tree API](https://aka.ms/AzureMapsPOICategoryTree). List of available categories can also be found [here](https://docs.microsoft.com/azure/azure-maps/supported-search-categories). We recommend to use POI Search Category Tree API to request the supported categories. required: true type: string x-ms-parameter-location: method - $ref: '#/parameters/Typeahead' - $ref: '#/parameters/LimitSearch' - $ref: '#/parameters/Offset' - $ref: '#/parameters/CategorySet' - $ref: '#/parameters/CountrySet' - $ref: '#/parameters/OptionalBiasLat' - $ref: '#/parameters/OptionalBiasLon' - $ref: '#/parameters/Radius' - $ref: '#/parameters/BoundingBoxTopLeft' - $ref: '#/parameters/BoundingBoxBottomRight' - $ref: '#/parameters/Language' - $ref: '#/parameters/ExtendedPostalCodesFor' - $ref: '#/parameters/BrandSet' - $ref: '#/parameters/ConnectorSet' - $ref: '#/parameters/View' - $ref: '#/parameters/OpeningHours' responses: '200': description: OK schema: $ref: '#/definitions/SearchPoiCategoryResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Poi Category Format tags: - Search /search/poi/category/tree/{format}: get: x-publish: true description: >- **Get POI Category Tree**

**Applies to**: S0 and S1 pricing tiers.


POI Category API provides a full list of supported Points of Interest (POI) categories and subcategories together with their translations and synonyms. The returned content can be used to provide more meaningful results through other Search Service APIs, like [Get Search POI](https://docs.microsoft.com/rest/api/maps/search/getsearchpoi). operationId: microsoftAzureSearchGetsearchpoicategorytreepreview x-ms-examples: Get the POI Category Tree (only partial response shown below): $ref: ./examples/GetPOICategoryTree.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/JsonFormat' - name: language in: query description: >- Language in which search results should be returned. Should be one of supported IETF language tags, except NGT and NGT-Latn. Language tag is case insensitive. When data in specified language is not available for a specific field, default language is used (English). Please refer to [Supported Languages](https://docs.microsoft.com/azure/azure-maps/supported-languages) for details. required: false type: string x-ms-parameter-location: method responses: '200': description: OK schema: $ref: '#/definitions/PoiCategoryResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Poi Category Tree Format tags: - Search /search/address/{format}: get: x-publish: true description: >- **Address Geocoding**

**Applies to**: S0 and S1 pricing tiers.


In many cases, the complete search service might be too much, for instance if you are only interested in traditional geocoding. Search can also be accessed for address look up exclusively. The geocoding is performed by hitting the geocode endpoint with just the address or partial address in question. The geocoding search index will be queried for everything above the street level data. No POIs will be returned. Note that the geocoder is very tolerant of typos and incomplete addresses. It will also handle everything from exact street addresses or street or intersections as well as higher level geographies such as city centers, counties, states etc. operationId: microsoftAzureSearchGetsearchaddress x-ms-examples: Search detail address 15127 NE 24th Street, Redmond, WA 98052: $ref: ./examples/GetSearchAddress.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - name: query in: query description: >- The address to search for (e.g., "1 Microsoft way, Redmond, WA"), must be properly URL encoded. required: true type: string x-ms-parameter-location: method - $ref: '#/parameters/Typeahead' - $ref: '#/parameters/LimitSearch' - $ref: '#/parameters/Offset' - $ref: '#/parameters/CountrySet' - $ref: '#/parameters/OptionalBiasLat' - $ref: '#/parameters/OptionalBiasLon' - $ref: '#/parameters/Radius' - $ref: '#/parameters/BoundingBoxTopLeft' - $ref: '#/parameters/BoundingBoxBottomRight' - $ref: '#/parameters/Language' - $ref: '#/parameters/ExtendedPostalCodesFor' - $ref: '#/parameters/View' responses: '200': description: OK schema: $ref: '#/definitions/SearchAddressResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Address Format tags: - Search /search/address/reverse/{format}: get: x-publish: true description: >- **Reverse Geocode to an Address**

**Applies to**: S0 and S1 pricing tiers.


There may be times when you need to translate a coordinate (example: 37.786505, -122.3862) into a human understandable street address. Most often this is needed in tracking applications where you receive a GPS feed from the device or asset and wish to know what address where the coordinate is located. This endpoint will return address information for a given coordinate. operationId: microsoftAzureSearchGetsearchaddressreverse x-ms-examples: GetSearchAddressReverse: $ref: ./examples/GetSearchAddressReverse.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - $ref: '#/parameters/Position' - $ref: '#/parameters/Language' - name: returnSpeedLimit in: query description: Boolean. To enable return of the posted speed limit required: false type: boolean default: false - name: heading in: query description: >- The directional heading of the vehicle in degrees, for travel along a segment of roadway. 0 is North, 90 is East and so on, values range from -360 to 360. The precision can include upto one decimal place required: false type: number minimum: -360 maximum: 360 - $ref: '#/parameters/Radius' - name: number in: query description: >- If a number is sent in along with the request, the response may include the side of the street (Left/Right) and also an offset position for that number required: false type: string - name: returnRoadUse in: query description: >- Boolean. To enable return of the road use array for reverse geocodes at street level required: false type: boolean default: false - name: roadUse in: query description: >- To restrict reverse geocodes to a certain type of road use. The road use array for reverse geocodes can be one or more of LimitedAccess, Arterial, Terminal, Ramp, Rotary, LocalStreet required: false type: string - name: allowFreeformNewline in: query description: |- Format of newlines in the formatted address. If true, the address will contain newlines. If false, newlines will be converted to commas. required: false type: boolean - name: returnMatchType in: query description: >- Include information on the type of match the geocoder achieved in the response. required: false type: boolean - name: entityType in: query description: >- Specifies the level of filtering performed on geographies. Narrows the search for specified geography entity types, e.g. return only municipality. The resulting response will contain the geography ID as well as the entity type matched. If you provide more than one entity as a comma separated list, endpoint will return the 'smallest entity available'. Returned Geometry ID can be used to get the geometry of that geography via [Get Search Polygon](https://docs.microsoft.com/rest/api/maps/search/getsearchpolygon) API. The following parameters are ignored when entityType is set: * heading * number * returnRoadUse * returnSpeedLimit * roadUse * returnMatchType required: false type: string enum: - Country - CountrySubdivision - CountrySecondarySubdivision - CountryTertiarySubdivision - Municipality - MunicipalitySubdivision - Neighbourhood - PostalCodeArea x-ms-enum: name: EntityType modelAsString: true values: - value: Country description: Country name - value: CountrySubdivision description: State or Province - value: CountrySecondarySubdivision description: County - value: CountryTertiarySubdivision description: Named Area - value: Municipality description: City / Town - value: MunicipalitySubdivision description: Sub / Super City - value: Neighbourhood description: Neighbourhood - value: PostalCodeArea description: Postal Code / Zip Code x-ms-parameter-location: method - $ref: '#/parameters/View' responses: '200': description: OK schema: $ref: '#/definitions/SearchAddressReverseResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Address Reverse Format tags: - Search /search/address/reverse/crossStreet/{format}: get: x-publish: true description: >- **Reverse Geocode to a Cross Street**

**Applies to**: S0 and S1 pricing tiers.


There may be times when you need to translate a coordinate (example: 37.786505, -122.3862) into a human understandable cross street. Most often this is needed in tracking applications where you receive a GPS feed from the device or asset and wish to know what address where the coordinate is located.
This endpoint will return cross street information for a given coordinate. operationId: microsoftAzureSearchGetsearchaddressreversecrossstreet x-ms-examples: GetSearchAddressReverseCrossStreet: $ref: ./examples/GetSearchAddressReverseCrossStreet.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - $ref: '#/parameters/Position' - $ref: '#/parameters/LimitSearch' - name: heading in: query description: >- The directional heading of the vehicle in degrees, for travel along a segment of roadway. 0 is North, 90 is East and so on, values range from -360 to 360. The precision can include upto one decimal place required: false type: number minimum: -360 maximum: 360 - $ref: '#/parameters/Radius' - $ref: '#/parameters/Language' - $ref: '#/parameters/View' responses: '200': description: OK schema: $ref: '#/definitions/SearchAddressReverseCrossStreetResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Address Reverse Crossstreet Format tags: - Search /search/address/structured/{format}: get: x-publish: true description: >- **Structured Address Geocoding**

**Applies to**: S0 and S1 pricing tiers.


Azure Address Geocoding can also be accessed for structured address look up exclusively. The geocoding search index will be queried for everything above the street level data. No POIs will be returned. Note that the geocoder is very tolerant of typos and incomplete addresses. It will also handle everything from exact street addresses or street or intersections as well as higher level geographies such as city centers, counties, states etc. operationId: microsoftAzureSearchGetsearchaddressstructured x-ms-examples: GetSearchAddressStructured: $ref: ./examples/GetSearchAddressStructured.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/TextFormat' - $ref: '#/parameters/Language' - name: countryCode in: query description: >- The 2 or 3 letter [ISO3166-1](https://www.iso.org/iso-3166-country-codes.html) country code portion of an address. E.g. US. required: true default: US type: string - $ref: '#/parameters/LimitSearch' - $ref: '#/parameters/Offset' - name: streetNumber in: query description: The street number portion of an address required: false type: string - name: streetName in: query description: The street name portion of an address required: false type: string - name: crossStreet in: query description: The cross street name for the structured address required: false type: string - name: municipality in: query description: The municipality portion of an address required: false type: string - name: municipalitySubdivision in: query description: >- The municipality subdivision (sub/super city) for the structured address required: false type: string - name: countryTertiarySubdivision in: query description: The named area for the structured address required: false type: string - name: countrySecondarySubdivision in: query description: The county for the structured address required: false type: string - name: countrySubdivision in: query description: The country subdivision portion of an address required: false type: string - name: postalCode in: query description: The postal code portion of an address required: false type: string - $ref: '#/parameters/ExtendedPostalCodesFor' - $ref: '#/parameters/View' responses: '200': description: OK schema: $ref: '#/definitions/SearchAddressStructuredResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Get Search Address Structured Format tags: - Search /search/geometry/{format}: post: x-publish: true description: >- **Applies to**: S0 and S1 pricing tiers.

The Search Geometry endpoint allows you to perform a free form search inside a single geometry or many of them. The search results that fall inside the geometry/geometries will be returned.To send the geometry you will use a `POST` request where the request body will contain the `geometry` object represented as a `GeoJSON` type and the `Content-Type` header will be set to `application/json`. The geographical features to be searched can be modeled as Polygon and/or Circle geometries represented using any one of the following `GeoJSON` types:**GeoJSON FeatureCollection** The `geometry` can be represented as a `GeoJSON FeatureCollection` object. This is the recommended option if the geometry contains both Polygons and Circles. The `FeatureCollection` can contain a max of 50 `GeoJSON Feature` objects. Each `Feature` object should represent either a Polygon or a Circle with the following conditions:A `Feature` object for the Polygon geometry can have a max of 50 coordinates and it's properties must be empty.A `Feature` object for the Circle geometry is composed of a _center_ represented using a `GeoJSON Point` type and a _radius_ value (in meters) which must be specified in the object's properties along with the _subType_ property whose value should be 'Circle'. Please see the Examples section below for a sample `FeatureCollection` representation.**GeoJSON GeometryCollection**The `geometry` can be represented as a `GeoJSON GeometryCollection` object. This is the recommended option if the geometry contains a list of Polygons only. The `GeometryCollection` can contain a max of 50 `GeoJSON Polygon` objects. Each `Polygon` object can have a max of 50 coordinates. Please see the Examples section below for a sample `GeometryCollection` representation.**GeoJSON Polygon**The `geometry` can be represented as a `GeoJSON Polygon` object. This is the recommended option if the geometry contains a single Polygon. The `Polygon` object can have a max of 50 coordinates. Please see the Examples section below for a sample `Polygon` representation.. operationId: microsoftAzureSearchPostsearchinsidegeometry x-ms-examples: Search for pizza places inside a geometry represented as a GeoJSON FeatureCollection type: $ref: ./examples/PostSearchInsideFeatureCollection.json Search for burger joints inside a geometry represented as a GeoJSON GeometryCollection type: $ref: ./examples/PostSearchInsideGeometryCollection.json Search for subs joints inside a geometry represented as a GeoJSON Polygon type: $ref: ./examples/PostSearchInsideGeometry.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/PoiQuery' - $ref: '#/parameters/TextFormat' - $ref: '#/parameters/LimitSearch' - $ref: '#/parameters/Language' - $ref: '#/parameters/CategorySet' - $ref: '#/parameters/ExtendedPostalCodesFor' - $ref: '#/parameters/SearchIndexSet' - name: searchInsideGeometryRequestBody in: body description: >- This represents the geometry for one or more geographical features (parks, state boundary etc.) to search in and should be a GeoJSON compliant type. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946) for details. required: true schema: $ref: '#/definitions/SearchInsideGeometryRequestBody' - $ref: '#/parameters/View' - $ref: '#/parameters/OpeningHours' responses: '200': description: OK schema: $ref: '#/definitions/SearchGeometryResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Post Search Geometry Format tags: - Search /search/alongRoute/{format}: post: x-publish: true description: >- **Applies to**: S0 and S1 pricing tiers.


The Search Along Route endpoint allows you to perform a fuzzy search for POIs along a specified route. This search is constrained by specifying the `maxDetourTime` limiting measure.To send the route-points you will use a `POST` request where the request body will contain the `route` object represented as a `GeoJSON LineString` type and the `Content-Type` header will be set to `application/json`. Each route-point in `route` is represented as a `GeoJSON Position` type i.e. an array where the _longitude_ value is followed by the _latitude_ value and the _altitude_ value is ignored. The `route` should contain at least 2 route-points.It is possible that original route will be altered, some of it's points may be skipped. If the route that passes through the found point is faster than the original one, the `detourTime` value in the response is negative. operationId: microsoftAzureSearchPostsearchalongroute x-ms-examples: Search for burger joints along a route: $ref: ./examples/PostSearchAlongRoute.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/CategorySet' - $ref: '#/parameters/PoiQuery' - $ref: '#/parameters/TextFormat' - name: maxDetourTime description: >- Maximum detour time of the point of interest in seconds. Max value is 3600 seconds required: true type: integer in: query maximum: 3600 - name: limit description: >- Maximum number of responses that will be returned. Default value is 10. Max value is 20 required: false type: integer in: query default: 10 maximum: 20 - $ref: '#/parameters/BrandSet' - $ref: '#/parameters/ConnectorSet' - $ref: '#/parameters/View' - $ref: '#/parameters/OpeningHours' - name: searchAlongRouteRequestBody in: body description: >- This represents the route to search along and should be a valid `GeoJSON LineString` type. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946#section-3.1.4) for details. required: true schema: $ref: '#/definitions/SearchAlongRouteRequestBody' responses: '200': description: OK schema: $ref: '#/definitions/SearchAlongRouteResponse' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' summary: Microsoft Azure Post Search Alongroute Format tags: - Search /search/fuzzy/batch/{format}: post: x-publish: true description: >- **Search Fuzzy Batch API**


**Applies to**: S1 pricing tier.



The Search Address Batch API sends batches of queries to [Search Fuzzy API](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchfuzzy) using just a single API call. You can call Search Address Fuzzy Batch API to run either asynchronously (async) or synchronously (sync). The async API allows caller to batch up to **10,000** queries and sync API up to **100** queries.
### Submit Synchronous Batch Request
The Synchronous API is recommended for lightweight batch requests. When the service receives a request, it will respond as soon as the batch items are calculated and there will be no possibility to retrieve the results later. The Synchronous API will return a timeout error (a 408 response) if the request takes longer than 60 seconds. The number of batch items is limited to **100** for this API.
```
POST https://atlas.microsoft.com/search/fuzzy/batch/sync/json?api-version=1.0&subscription-key={subscription-key}
```
### Submit Asynchronous Batch Request
The Asynchronous API is appropriate for processing big volumes of relatively complex search requests
- It allows the retrieval of results in a separate call (multiple downloads are possible).
- The asynchronous API is optimized for reliability and is not expected to run into a timeout.
- The number of batch items is limited to **10,000** for this API.

When you make a request by using async request, by default the service returns a 202 response code along a redirect URL in the Location field of the response header. This URL should be checked periodically until the response data or error information is available.
The asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.

Please note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:
1. Client sends a Search Address Batch `POST` request to Azure Maps
2. The server will respond with one of the following:

> HTTP `202 Accepted` - Batch request has been accepted.

> HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.

3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.
This status URI looks like following:

```
GET https://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
```
4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.

### POST Body for Batch Request
To send the _search fuzzy_ queries you will use a `POST` request where the request body will contain the `batchItems` array in `json` format and the `Content-Type` header will be set to `application/json`. Here's a sample request body containing 5 _search fuzzy_ queries:


```json
{
"batchItems": [
{"query": "?query=atm&lat=47.639769&lon=-122.128362&radius=5000&limit=5"},
{"query": "?query=Statue Of Liberty&limit=2"},
{"query": "?query=Starbucks&lat=47.639769&lon=-122.128362&radius=5000"},
{"query": "?query=Space Needle"},
{"query": "?query=pizza&limit=10"}
]
}
```

A _search fuzzy_ query in a batch is just a partial URL _without_ the protocol, base URL, path, api-version and subscription-key. It can accept any of the supported _search fuzzy_ [URI parameters](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchfuzzy#uri-parameters). The string values in the _search fuzzy_ query must be properly escaped (e.g. " character should be escaped with \\ ) and it should also be properly URL-encoded.


The async API allows caller to batch up to **10,000** queries and sync API up to **100** queries, and the batch should contain at least **1** query.


### Download Asynchronous Batch Results
To download the async batch results you will issue a `GET` request to the batch download endpoint. This _download URL_ can be obtained from the `Location` header of a successful `POST` batch request and looks like the following:

```
https://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
```
Here's the typical sequence of operations for downloading the batch results:
1. Client sends a `GET` request using the _download URL_.
2. The server will respond with one of the following:

> HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.

> HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.



### Batch Response Model
The returned data content is similar for async and sync requests. When downloading the results of an async batch request, if the batch has finished processing, the response body contains the batch response. This batch response contains a `summary` component that indicates the `totalRequests` that were part of the original batch request and `successfulRequests`i.e. queries which were executed successfully. The batch response also includes a `batchItems` array which contains a response for each and every query in the batch request. The `batchItems` will contain the results in the exact same order the original queries were sent in the batch request. Each item in `batchItems` contains `statusCode` and `response` fields. Each `response` in `batchItems` is of one of the following types:

- [`SearchFuzzyResponse`](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchfuzzy#searchfuzzyresponse) - If the query completed successfully.

- `Error` - If the query failed. The response will contain a `code` and a `message` in this case.


Here's a sample Batch Response with 2 _successful_ and 1 _failed_ result:


```json
{
"summary": {
"successfulRequests": 2,
"totalRequests": 3
},
"batchItems": [
{
"statusCode": 200,
"response":
{
"summary": {
"query": "atm"
},
"results": [
{
"type": "POI",
"poi": {
"name": "ATM at Wells Fargo"
},
"address": {
"country": "United States Of America",
"freeformAddress": "3240 157th Ave NE, Redmond, WA 98052"
}
}
]
}
},
{
"statusCode": 200,
"response":
{
"summary": {
"query": "statue of liberty"
},
"results": [
{
"type": "POI",
"poi": {
"name": "Statue of Liberty"
},
"address": {
"country": "United States Of America",
"freeformAddress": "New York, NY 10004"
}
}
]
}
},
{
"statusCode": 400,
"response":
{
"error":
{
"code": "400 BadRequest",
"message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
}
}
}
]
}
``` operationId: microsoftAzureSearchPostsearchfuzzybatch x-ms-long-running-operation: true x-ms-long-running-operation-options: final-state-via: location x-ms-examples: A Search Fuzzy Batch API call containing 5 Search Fuzzy API queries: $ref: ./examples/PostSearchFuzzyBatch.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/JsonFormat' - name: searchFuzzyBatchRequestBody in: body description: >- The list of search fuzzy queries/requests to process. The list can contain a max of 10,000 queries and must contain at least 1 query. required: true schema: $ref: '#/definitions/BatchRequestBody' responses: '200': description: OK schema: $ref: '#/definitions/BatchResponse' '202': $ref: '#/responses/202Async' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' produces: - application/json summary: Microsoft Azure Post Search Fuzzy Batch Format tags: - Search /search/address/batch/{format}: post: x-publish: true description: >- **Search Address Batch API**


**Applies to**: S1 pricing tier.



The Search Address Batch API sends batches of queries to [Search Address API](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddress) using just a single API call. You can call Search Address Batch API to run either asynchronously (async) or synchronously (sync). The async API allows caller to batch up to **10,000** queries and sync API up to **100** queries.
### Submit Synchronous Batch Request
The Synchronous API is recommended for lightweight batch requests. When the service receives a request, it will respond as soon as the batch items are calculated and there will be no possibility to retrieve the results later. The Synchronous API will return a timeout error (a 408 response) if the request takes longer than 60 seconds. The number of batch items is limited to **100** for this API.
```
POST https://atlas.microsoft.com/search/address/batch/sync/json?api-version=1.0&subscription-key={subscription-key}
```
### Submit Asynchronous Batch Request
The Asynchronous API is appropriate for processing big volumes of relatively complex search requests
- It allows the retrieval of results in a separate call (multiple downloads are possible).
- The asynchronous API is optimized for reliability and is not expected to run into a timeout.
- The number of batch items is limited to **10,000** for this API.

When you make a request by using async request, by default the service returns a 202 response code along a redirect URL in the Location field of the response header. This URL should be checked periodically until the response data or error information is available.
The asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.

Please note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:
1. Client sends a Search Address Batch `POST` request to Azure Maps
2. The server will respond with one of the following:

> HTTP `202 Accepted` - Batch request has been accepted.

> HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.

3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.
This status URI looks like following:

```
GET https://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
```
4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.

### POST Body for Batch Request
To send the _search address_ queries you will use a `POST` request where the request body will contain the `batchItems` array in `json` format and the `Content-Type` header will be set to `application/json`. Here's a sample request body containing 5 _search address_ queries:


```json
{
"batchItems": [
{"query": "?query=400 Broad St, Seattle, WA 98109&limit=3"},
{"query": "?query=One, Microsoft Way, Redmond, WA 98052&limit=3"},
{"query": "?query=350 5th Ave, New York, NY 10118&limit=1"},
{"query": "?query=Pike Pl, Seattle, WA 98101&lat=47.610970&lon=-122.342469&radius=1000"},
{"query": "?query=Champ de Mars, 5 Avenue Anatole France, 75007 Paris, France&limit=1"}
]
}
```

A _search address_ query in a batch is just a partial URL _without_ the protocol, base URL, path, api-version and subscription-key. It can accept any of the supported _search address_ [URI parameters](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddress#uri-parameters). The string values in the _search address_ query must be properly escaped (e.g. " character should be escaped with \\ ) and it should also be properly URL-encoded.


The async API allows caller to batch up to **10,000** queries and sync API up to **100** queries, and the batch should contain at least **1** query.


### Download Asynchronous Batch Results
To download the async batch results you will issue a `GET` request to the batch download endpoint. This _download URL_ can be obtained from the `Location` header of a successful `POST` batch request and looks like the following:

```
https://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
```
Here's the typical sequence of operations for downloading the batch results:
1. Client sends a `GET` request using the _download URL_.
2. The server will respond with one of the following:

> HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.

> HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.



### Batch Response Model
The returned data content is similar for async and sync requests. When downloading the results of an async batch request, if the batch has finished processing, the response body contains the batch response. This batch response contains a `summary` component that indicates the `totalRequests` that were part of the original batch request and `successfulRequests`i.e. queries which were executed successfully. The batch response also includes a `batchItems` array which contains a response for each and every query in the batch request. The `batchItems` will contain the results in the exact same order the original queries were sent in the batch request. Each item in `batchItems` contains `statusCode` and `response` fields. Each `response` in `batchItems` is of one of the following types:

- [`SearchAddressResponse`](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddress#searchaddressresponse) - If the query completed successfully.

- `Error` - If the query failed. The response will contain a `code` and a `message` in this case.


Here's a sample Batch Response with 2 _successful_ and 1 _failed_ result:


```json
{
"summary": {
"successfulRequests": 2,
"totalRequests": 3
},
"batchItems": [
{
"statusCode": 200,
"response":
{
"summary": {
"query": "one microsoft way redmond wa 98052"
},
"results": [
{
"position": {
"lat": 47.63989,
"lon": -122.12509
}
}
]
}
},
{
"statusCode": 200,
"response":
{
"summary": {
"query": "pike pl seattle wa 98101"
},
"results": [
{
"position": {
"lat": 47.60963,
"lon": -122.34215
}
}
]
}
},
{
"statusCode": 400,
"response":
{
"error":
{
"code": "400 BadRequest",
"message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
}
}
}
]
}
``` operationId: microsoftAzureSearchPostsearchaddressbatch x-ms-long-running-operation: true x-ms-long-running-operation-options: final-state-via: location x-ms-examples: An Address Geocoding Batch API call containing 5 Address Geocoding API queries: $ref: ./examples/PostSearchAddressBatch.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/JsonFormat' - name: searchAddressBatchRequestBody in: body description: >- The list of address geocoding queries/requests to process. The list can contain a max of 10,000 queries and must contain at least 1 query. required: true schema: $ref: '#/definitions/BatchRequestBody' responses: '200': description: OK schema: $ref: '#/definitions/BatchResponse' '202': $ref: '#/responses/202Async' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' produces: - application/json summary: Microsoft Azure Post Search Address Batch Format tags: - Search /search/address/reverse/batch/{format}: post: x-publish: true description: >- **Search Address Reverse Batch API**


**Applies to**: S1 pricing tier.



The Search Address Batch API sends batches of queries to [Search Address Reverse API](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddressreverse) using just a single API call. You can call Search Address Reverse Batch API to run either asynchronously (async) or synchronously (sync). The async API allows caller to batch up to **10,000** queries and sync API up to **100** queries.
### Submit Synchronous Batch Request
The Synchronous API is recommended for lightweight batch requests. When the service receives a request, it will respond as soon as the batch items are calculated and there will be no possibility to retrieve the results later. The Synchronous API will return a timeout error (a 408 response) if the request takes longer than 60 seconds. The number of batch items is limited to **100** for this API.
```
POST https://atlas.microsoft.com/search/address/reverse/batch/sync/json?api-version=1.0&subscription-key={subscription-key}
```
### Submit Asynchronous Batch Request
The Asynchronous API is appropriate for processing big volumes of relatively complex search requests
- It allows the retrieval of results in a separate call (multiple downloads are possible).
- The asynchronous API is optimized for reliability and is not expected to run into a timeout.
- The number of batch items is limited to **10,000** for this API.

When you make a request by using async request, by default the service returns a 202 response code along a redirect URL in the Location field of the response header. This URL should be checked periodically until the response data or error information is available.
The asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.

Please note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:
1. Client sends a Search Address Batch `POST` request to Azure Maps
2. The server will respond with one of the following:

> HTTP `202 Accepted` - Batch request has been accepted.

> HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.

3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.
This status URI looks like following:

```
GET https://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
```
4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.

### POST Body for Batch Request
To send the _search address reverse_ queries you will use a `POST` request where the request body will contain the `batchItems` array in `json` format and the `Content-Type` header will be set to `application/json`. Here's a sample request body containing 5 _search address reverse_ queries:


```json
{
"batchItems": [
{"query": "?query=48.858561,2.294911"},
{"query": "?query=47.639765,-122.127896&radius=5000&limit=2"},
{"query": "?query=47.621028,-122.348170"},
{"query": "?query=43.722990,10.396695"},
{"query": "?query=40.750958,-73.982336"}
]
}
```

A _search address reverse_ query in a batch is just a partial URL _without_ the protocol, base URL, path, api-version and subscription-key. It can accept any of the supported _search address reverse_ [URI parameters](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddressreverse#uri-parameters). The string values in the _search address reverse_ query must be properly escaped (e.g. " character should be escaped with \\ ) and it should also be properly URL-encoded.


The async API allows caller to batch up to **10,000** queries and sync API up to **100** queries, and the batch should contain at least **1** query.


### Download Asynchronous Batch Results
To download the async batch results you will issue a `GET` request to the batch download endpoint. This _download URL_ can be obtained from the `Location` header of a successful `POST` batch request and looks like the following:

```
https://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
```
Here's the typical sequence of operations for downloading the batch results:
1. Client sends a `GET` request using the _download URL_.
2. The server will respond with one of the following:

> HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.

> HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.



### Batch Response Model
The returned data content is similar for async and sync requests. When downloading the results of an async batch request, if the batch has finished processing, the response body contains the batch response. This batch response contains a `summary` component that indicates the `totalRequests` that were part of the original batch request and `successfulRequests`i.e. queries which were executed successfully. The batch response also includes a `batchItems` array which contains a response for each and every query in the batch request. The `batchItems` will contain the results in the exact same order the original queries were sent in the batch request. Each item in `batchItems` contains `statusCode` and `response` fields. Each `response` in `batchItems` is of one of the following types:

- [`SearchAddressReverseResponse`](https://docs.microsoft.com/en-us/rest/api/maps/search/getsearchaddressreverse#searchaddressreverseresponse) - If the query completed successfully.

- `Error` - If the query failed. The response will contain a `code` and a `message` in this case.


Here's a sample Batch Response with 2 _successful_ and 1 _failed_ result:


```json
{
"summary": {
"successfulRequests": 2,
"totalRequests": 3
},
"batchItems": [
{
"statusCode": 200,
"response":
{
"summary": {
"queryTime": 11
},
"addresses": [
{
"address": {
"country": "France",
"freeformAddress": "Avenue Anatole France, 75007 Paris"
},
"position": "48.858490,2.294820"
}
]
}
},
{
"statusCode": 200,
"response":
{
"summary": {
"queryTime": 1
},
"addresses": [
{
"address": {
"country": "United States of America",
"freeformAddress": "157th Pl NE, Redmond WA 98052"
},
"position": "47.640470,-122.129430"
}
]
}
},
{
"statusCode": 400,
"response":
{
"error":
{
"code": "400 BadRequest",
"message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
}
}
}
]
}
``` operationId: microsoftAzureSearchPostsearchaddressreversebatch x-ms-long-running-operation: true x-ms-long-running-operation-options: final-state-via: location x-ms-examples: A Reverse Geocoding Batch API call containing 5 Reverse Geocoding API queries: $ref: ./examples/PostSearchAddressReverseBatch.json parameters: - $ref: '#/parameters/ClientId' - $ref: '#/parameters/SubscriptionKey' - $ref: '#/parameters/ApiVersion' - $ref: '#/parameters/JsonFormat' - name: searchAddressReverseBatchRequestBody in: body description: >- The list of reverse geocoding queries/requests to process. The list can contain a max of 10,000 queries and must contain at least 1 query. required: true schema: $ref: '#/definitions/BatchRequestBody' responses: '200': description: OK schema: $ref: '#/definitions/BatchResponse' '202': $ref: '#/responses/202Async' '400': $ref: '#/responses/400' '401': $ref: '#/responses/401' '403': $ref: '#/responses/403' '404': $ref: '#/responses/404' '500': $ref: '#/responses/500' produces: - application/json summary: Microsoft Azure Post Search Address Reverse Batch Format tags: - Search definitions: ODataErrorResponse: type: object description: >- This response object is returned when an error occurs in the Azure Maps API. properties: error: $ref: '#/definitions/ODataError' ODataError: type: object description: This object is returned when an error occurs in the Azure Maps API. properties: code: type: string readOnly: true description: The ODataError code. message: type: string readOnly: true description: If available, a human-readable description of the error. details: type: array items: $ref: '#/definitions/ODataError' target: type: string readOnly: true description: If available, the target causing the error. BatchResponse: description: This object is returned from a successful Batch service call type: object properties: summary: description: Summary for the batch request type: object readOnly: true properties: successfulRequests: description: Number of successful requests in the batch type: integer readOnly: true totalRequests: description: Total number of requests in the batch type: integer readOnly: true batchItems: description: Array containing the batch results type: array readOnly: true items: type: object Geometry: description: >- This represents the geometry for one or more geographical features (parks, state boundary etc.) and should be a `GeoJSON` compliant type. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946) for details. type: object BatchRequestBody: description: This type represents the request body for the Batch service. type: object properties: batchItems: description: The list of queries/requests to process type: array items: description: Batch Query object type: object properties: query: description: Partial query string type: string CoordinateAbbreviated: description: A location represented as a latitude and longitude. type: object properties: lat: description: Latitude property type: number format: double readOnly: true lon: description: Longitude property type: number format: double readOnly: true GeoJSONGeometry: description: >- A valid `GeoJSON` geometry object. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946#section-3.1) for details. type: object discriminator: type required: - type properties: type: description: >- Specifies the `GeoJSON` geometry type. Must be one of the seven valid GeoJSON geometry types - Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon and GeometryCollection. type: string enum: - Point - MultiPoint - LineString - MultiLineString - Polygon - MultiPolygon - GeometryCollection x-ms-enum: name: GeoJSONGeometryType modelAsString: true values: - value: Point description: '`GeoJSON Point` geometry.' - value: MultiPoint description: '`GeoJSON MultiPoint` geometry.' - value: LineString description: '`GeoJSON LineString` geometry.' - value: MultiLineString description: '`GeoJSON MultiLineString` geometry.' - value: Polygon description: '`GeoJSON Polygon` geometry.' - value: MultiPolygon description: '`GeoJSON MultiPolygon` geometry.' - value: GeometryCollection description: '`GeoJSON GeometryCollection` geometry.' LineString: description: >- A valid `GeoJSON LineString` geometry type. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946#section-3.1.4) for details. type: object allOf: - $ref: '#/definitions/GeoJSONGeometry' - properties: type: description: >- Specifies the `type` for the geometry. Value should always be equal to "LineString". type: string coordinates: description: Coordinates for the `LineString` geometry. type: array items: $ref: '#/definitions/GeoJSONPosition' required: - coordinates GeoJSONPosition: description: >- A valid `GeoJSON Position` geometry type. A `Position` is an array of numbers with two or more elements. The first two elements are _longitude_ and _latitude_, precisely in that order. _Altitude/Elevation_ is an optional third element. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946#section-3.1.1) for details. type: array items: type: number format: double PoiCategoryResponse: description: This object is returned from a successful POI Category Tree call type: object properties: poiCategories: description: Categories array type: array readOnly: true items: $ref: '#/definitions/PoiCategoryResult' PoiCategoryResult: description: POI category result type: object properties: id: description: >- Unique ID for the category. ID can be used to restrict search results to specific categories through other Search Service APIs, like [Get Search POI](https://docs.microsoft.com/rest/api/maps/search/getsearchpoi). type: integer readOnly: true name: description: Name of the category type: string readOnly: true childCategoryIds: description: Array of child category ids type: array items: type: integer readOnly: true readOnly: true synonyms: description: Array of alternative names of the category type: array items: type: string readOnly: true readOnly: true SearchPolygonResponse: description: This object is returned from a successful Search Polygon call type: object properties: additionalData: description: Results array type: array readOnly: true items: $ref: '#/definitions/SearchPolygonResult' SearchPolygonResult: type: object properties: providerID: description: ID of the returned entity type: string readOnly: true error: description: Reason for the failure to obtain data for this provider. type: string readOnly: true geometryData: description: >- Geometry data in GeoJSON format. Please refer to [RFC 7946](https://tools.ietf.org/html/rfc7946) for details. Present only if "error" is not present. $ref: '#/definitions/Geometry' SearchFuzzyResponse: description: This object is returned from a successful Search Fuzzy call type: object properties: summary: $ref: '#/definitions/SearchFuzzySummary' results: description: Results array type: array readOnly: true items: $ref: '#/definitions/SearchFuzzyResult' SearchFuzzySummary: description: Summary object for a Search Fuzzy response type: object readOnly: true properties: query: description: Query property type: string readOnly: true queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true SearchFuzzyResult: type: object properties: type: description: |- One of: * POI * Street * Geography * Point Address * Address Range * Cross Street type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' info: description: Info property type: string readOnly: true entityType: $ref: '#/definitions/EntityType' poi: $ref: '#/definitions/SearchResultPoi' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' addressRanges: $ref: '#/definitions/SearchResultAddressRanges' dataSources: $ref: '#/definitions/DataSources' SearchPoiResponse: description: This object is returned from a successful Search POI call type: object properties: summary: $ref: '#/definitions/SearchPoiSummary' results: description: Results array type: array readOnly: true items: $ref: '#/definitions/SearchPoiResult' SearchPoiSummary: description: Summary object for a Search POI response type: object readOnly: true properties: query: description: Query property type: string readOnly: true queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true geoBias: $ref: '#/definitions/SearchSummaryGeoBias' SearchPoiResult: type: object properties: type: description: Type property type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' dist: $ref: '#/definitions/SearchResultDistance' info: description: Info property type: string readOnly: true entityType: $ref: '#/definitions/EntityType' poi: $ref: '#/definitions/SearchResultPoi' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' SearchNearbyResponse: description: This object is returned from a successful Search Nearby call type: object properties: summary: $ref: '#/definitions/SearchNearbySummary' results: description: Results array type: array readOnly: true items: $ref: '#/definitions/SearchNearbyResult' SearchNearbySummary: description: Summary object for a Search Nearby response type: object readOnly: true properties: queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true geoBias: $ref: '#/definitions/SearchSummaryGeoBias' SearchNearbyResult: type: object properties: type: description: Type property type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' dist: $ref: '#/definitions/SearchResultDistance' info: description: Info property type: string readOnly: true poi: $ref: '#/definitions/SearchResultPoi' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' SearchPoiCategoryResponse: description: This object is returned from a successful Search POI Category call type: object properties: summary: $ref: '#/definitions/SearchPoiCategorySummary' results: description: Results array type: array readOnly: true items: $ref: '#/definitions/SearchPoiCategoryResult' SearchPoiCategorySummary: description: Summary object for a Search POI Category response type: object readOnly: true properties: query: description: Query property type: string readOnly: true queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true geoBias: $ref: '#/definitions/SearchSummaryGeoBias' SearchPoiCategoryResult: type: object properties: type: description: Type property type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' dist: $ref: '#/definitions/SearchResultDistance' info: description: Info property type: string readOnly: true entityType: $ref: '#/definitions/EntityType' poi: $ref: '#/definitions/SearchResultPoi' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' SearchAddressResponse: description: This object is returned from a successful Search Address call type: object properties: summary: $ref: '#/definitions/SearchAddressSummary' results: description: Results array type: array readOnly: true items: $ref: '#/definitions/SearchAddressResult' SearchAddressSummary: description: Summary object for a Search Address response type: object readOnly: true properties: query: description: Query property type: string readOnly: true queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true SearchAddressResult: type: object properties: type: description: |- One of: * POI * Street * Geography * Point Address * Address Range * Cross Street type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' dataSources: $ref: '#/definitions/DataSources' SearchAddressReverseResponse: description: This object is returned from a successful Search Address Reverse call type: object properties: summary: $ref: '#/definitions/SearchAddressReverseSummary' addresses: description: Addresses array type: array readOnly: true items: $ref: '#/definitions/SearchAddressReverseResult' SearchAddressReverseSummary: description: Summary object for a Search Address Reverse response type: object readOnly: true properties: queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true SearchAddressReverseResult: type: object properties: address: $ref: '#/definitions/SearchResultAddress' position: type: string readOnly: true description: Position property in the form of "{latitude},{longitude}" matchType: type: string readOnly: true description: |- Information on the type of match. One of: * AddressPoint * HouseNumberRange * Street SearchAddressReverseCrossStreetResponse: description: >- This object is returned from a successful Search Address Reverse CrossStreet call type: object properties: summary: $ref: '#/definitions/SearchAddressReverseCrossStreetSummary' addresses: description: Addresses array type: array readOnly: true items: $ref: '#/definitions/SearchAddressReverseCrossStreetResult' SearchAddressReverseCrossStreetSummary: description: Summary object for a Search Address Reverse Cross Street response type: object readOnly: true properties: queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true SearchAddressReverseCrossStreetResult: type: object properties: address: $ref: '#/definitions/SearchResultAddress' position: type: string readOnly: true description: Position property in the form of "{latitude},{longitude}" SearchAddressStructuredResponse: description: This object is returned from a successful Search Address Structured call type: object properties: summary: $ref: '#/definitions/SearchAddressStructuredSummary' results: description: Results array type: array readOnly: true items: $ref: '#/definitions/SearchAddressStructuredResult' SearchAddressStructuredSummary: description: Summary object for a Search Address Structured response type: object readOnly: true properties: query: description: Query property type: string readOnly: true queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true limit: description: Maximum number of responses that will be returned readOnly: true type: integer offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true geoBias: $ref: '#/definitions/SearchSummaryGeoBias' SearchAddressStructuredResult: type: object properties: type: description: Type property type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' dist: $ref: '#/definitions/SearchResultDistance' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' addressRanges: $ref: '#/definitions/SearchResultAddressRanges' SearchGeometryResponse: description: This object is returned from a successful Search By Geometry call type: object properties: summary: $ref: '#/definitions/SearchGeometrySummary' results: description: A list of Search Inside Geometry results. type: array readOnly: true items: $ref: '#/definitions/SearchGeometryResult' SearchGeometrySummary: description: Summary object for a Search Geometry response type: object readOnly: true properties: query: description: Query property type: string readOnly: true queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true SearchGeometryResult: description: This type represents the Search Inside Geometry result object. type: object properties: type: description: Type property type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' info: description: Info property type: string readOnly: true entityType: $ref: '#/definitions/EntityType' poi: $ref: '#/definitions/SearchResultPoi' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' SearchAlongRouteResponse: description: This object is returned from a successful Search Along Route call. type: object properties: summary: $ref: '#/definitions/SearchAlongRouteSummary' results: description: A list of Search Along Route results. type: array readOnly: true items: $ref: '#/definitions/SearchAlongRouteResult' SearchAlongRouteSummary: description: Summary object for a Search Along Route response type: object readOnly: true properties: query: description: Query property type: string readOnly: true queryType: description: QueryType property type: string readOnly: true queryTime: description: QueryTime property type: integer readOnly: true numResults: description: NumResults property type: integer readOnly: true offset: description: Offset property type: integer readOnly: true totalResults: description: TotalResults property type: integer readOnly: true fuzzyLevel: description: FuzzyLevel property type: integer readOnly: true SearchAlongRouteResult: description: This type represents the Search Along Route result object. type: object properties: type: description: Type property type: string readOnly: true id: description: Id property type: string readOnly: true score: $ref: '#/definitions/SearchResultScore' info: description: Info property type: string readOnly: true entityType: $ref: '#/definitions/EntityType' poi: $ref: '#/definitions/SearchResultPoi' address: $ref: '#/definitions/SearchResultAddress' position: $ref: '#/definitions/CoordinateAbbreviated' viewport: $ref: '#/definitions/SearchResultViewport' entryPoints: description: Entry Points array type: array items: $ref: '#/definitions/SearchResultEntryPoint' dist: $ref: '#/definitions/SearchResultDistance' detourTime: description: Detour time in seconds type: number readOnly: true SearchInsideGeometryRequestBody: description: >- This type represents the request body for the Search Inside Geometry service. type: object properties: geometry: $ref: '#/definitions/Geometry' SearchAlongRouteRequestBody: description: This type represents the request body for the Search Along Route service. type: object properties: route: $ref: '#/definitions/LineString' SearchResultPoi: description: >- Details of the returned POI including information such as the name, phone, url address, and classifications. type: object properties: name: description: Name of the POI property type: string readOnly: true phone: description: Telephone number property type: string readOnly: true url: description: Website URL property type: string readOnly: true categorySet: description: The list of the most specific POI categories type: array readOnly: true items: $ref: '#/definitions/SearchResultPoiCategorySet' categories: description: __[Deprecated]__ Use classifications instead. Categories array type: array readOnly: true items: type: string readOnly: true classifications: description: Classification array type: array readOnly: true items: $ref: '#/definitions/SearchResultPoiClassification' brands: description: Brands array. The name of the brand for the POI being returned. type: array readOnly: true items: $ref: '#/definitions/SearchResultPoiBrand' openingHours: $ref: '#/definitions/SearchResultPoiOpeningHours' SearchResultPoiCategorySet: description: POI category type: object properties: id: description: Category ID type: integer readOnly: true SearchResultPoiClassification: description: The classification for the POI being returned type: object properties: code: description: Code property type: string readOnly: true names: description: Names array type: array readOnly: true items: $ref: '#/definitions/SearchResultPoiClassificationName' SearchResultPoiClassificationName: description: Name for the classification type: object properties: nameLocale: description: Name Locale property type: string readOnly: true name: description: Name property type: string readOnly: true SearchResultPoiOpeningHours: description: Opening hours for a POI (Points of Interest). type: object properties: mode: description: Value used in the Request type: string readOnly: true timeRanges: description: List of time ranges for the next 7 days type: array readOnly: true items: $ref: '#/definitions/SearchResultPoiOpeningHoursTimeRange' SearchResultPoiOpeningHoursTimeRange: description: Open time range for a day type: object properties: startTime: description: >- The point in the next 7 days range when a given POI is being opened, or the beginning of the range if it was opened before the range. $ref: '#/definitions/SearchResultPoiOpeningHoursTimeRangeTime' endTime: description: >- The point in the next 7 days range when a given POI is being closed, or the beginning of the range if it was closed before the range. $ref: '#/definitions/SearchResultPoiOpeningHoursTimeRangeTime' SearchResultPoiOpeningHoursTimeRangeTime: description: Represents a date and time type: object properties: date: description: Represents current day in calendar year in POI time zone. type: string readOnly: true hour: description: >- Hours are in the 24 hour format in the local time of a POI; possible values are 0 - 23. type: integer readOnly: true minute: description: Minutes are in the local time of a POI; possible values are 0 - 59. type: integer readOnly: true SearchResultPoiBrand: description: The name of the brand for the POI being returned type: object properties: name: description: Name of the brand type: string readOnly: true SearchResultAddress: description: The address of the result type: object properties: buildingNumber: description: Building Number property type: string readOnly: true street: description: Street property type: string readOnly: true crossStreet: description: Cross Street property type: string readOnly: true streetNumber: description: Street Number property type: string readOnly: true routeNumbers: description: number of routes type: array items: type: integer readOnly: true readOnly: true streetName: description: Street Name property type: string readOnly: true streetNameAndNumber: description: Street Name and Number property type: string readOnly: true municipality: description: Municipality property type: string readOnly: true municipalitySubdivision: description: Municipality Subdivision property type: string readOnly: true countryTertiarySubdivision: description: Country Tertiary Subdivision property type: string readOnly: true countrySecondarySubdivision: description: Country Secondary Subdivision property type: string readOnly: true countrySubdivision: description: Country Subdivision property type: string readOnly: true postalCode: description: Postal Code property type: string readOnly: true extendedPostalCode: description: Extended Postal Code property type: string readOnly: true countryCode: description: Country Code property type: string readOnly: true country: description: Country property type: string readOnly: true countryCodeISO3: description: Country Code ISO3 property type: string readOnly: true freeformAddress: description: Free form Address property type: string readOnly: true countrySubdivisionName: description: Country Subdivision Name property type: string readOnly: true localName: description: >- An address component which represents the name of a geographic area or locality that groups a number of addressable objects for addressing purposes, without being an administrative unit. This field is used to build the `freeformAddress` property. type: string readOnly: true SearchResultViewport: description: >- The viewport that covers the result represented by the top-left and bottom-right coordinates of the viewport. type: object properties: topLeftPoint: $ref: '#/definitions/CoordinateAbbreviated' btmRightPoint: $ref: '#/definitions/CoordinateAbbreviated' SearchResultEntryPoint: description: The entry point for the POI being returned. type: object properties: type: description: The type of entry point. Value can be either _main_ or _minor_. type: string readOnly: true enum: - main - minor position: $ref: '#/definitions/CoordinateAbbreviated' SearchResultAddressRanges: description: >- Describes the address range on both sides of the street for a search result. Coordinates for the start and end locations of the address range are included. type: object properties: rangeLeft: type: string rangeRight: type: string from: $ref: '#/definitions/CoordinateAbbreviated' to: $ref: '#/definitions/CoordinateAbbreviated' SearchResultScore: description: >- The value within a result set to indicate the relative matching score between results. You can use this to determine that result x is twice as likely to be as relevant as result y if the value of x is 2x the value of y. The values vary between queries and is only meant as a relative value for one result set. type: number readOnly: true SearchResultDistance: description: Straight line distance between the result and geobias location in meters. type: number readOnly: true SearchSummaryGeoBias: description: >- Indication when the internal search engine has applied a geospatial bias to improve the ranking of results. In some methods, this can be affected by setting the lat and lon parameters where available. In other cases it is purely internal. type: object readOnly: true properties: lat: description: Latitude property type: number readOnly: true lon: description: Longitude property type: number readOnly: true DataSources: description: >- Optional section. Reference ids for use with the [Get Search Polygon](https://docs.microsoft.com/rest/api/maps/search/getsearchpolygon) API. type: object properties: geometry: $ref: '#/definitions/DataSourcesGeometry' DataSourcesGeometry: description: >- Information about the geometric shape of the result. Only present if type == Geography. type: object properties: id: description: >- Pass this as geometryId to the [Get Search Polygon](https://docs.microsoft.com/rest/api/maps/search/getsearchpolygon) API to fetch geometry information for this result. type: string readOnly: true EntityType: description: >- Geography entity type. Present only when entityType was requested and is available. type: string enum: - Country - CountrySubdivision - CountrySecondarySubdivision - CountryTertiarySubdivision - Municipality - MunicipalitySubdivision - Neighbourhood - PostalCodeArea x-ms-enum: name: EntityType modelAsString: true values: - value: Country description: Country name - value: CountrySubdivision description: State or Province - value: CountrySecondarySubdivision description: County - value: CountryTertiarySubdivision description: Named Area - value: Municipality description: City / Town - value: MunicipalitySubdivision description: Sub / Super City - value: Neighbourhood description: Neighbourhood - value: PostalCodeArea description: Postal Code / Zip Code tags: - name: Search