{ "swagger": "2.0", "info": { "title": "Azure Maps Search Service", "version": "1.0", "description": "Azure Maps Search REST APIs" }, "host": "atlas.microsoft.com", "schemes": [ "https" ], "consumes": [], "produces": [ "application/json" ], "securityDefinitions": { "AADToken": { "type": "oauth2", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "flow": "implicit", "description": "These are the [Microsoft Entra OAuth 2.0](/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](/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.\n\nTo 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.\n\n> [!NOTE]\n> * 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](https://aka.ms/amauthdetails) API.\n> * The `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Microsoft Entra ID configurations. \n> * 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.\n> * Usage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n>* For more information on Microsoft identity platform, see [Microsoft identity platform overview](/entra/identity-platform/v2-overview).\n\n", "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](/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.\n\n 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.\n\n For publicly exposed applications, our recommendation is to use the [confidential client applications](/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.\n\n 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.\n\n 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": {}, "parameters": { "ApiVersion": { "name": "api-version", "description": "Version number of Azure Maps API.", "type": "string", "in": "query", "required": true, "default": "1.0", "x-ms-parameter-location": "client" }, "BatchId": { "name": "format", "x-ms-client-name": "batchId", "description": "Batch id for querying the operation.", "type": "string", "in": "path", "required": true, "x-ms-parameter-location": "method" }, "LimitSearch": { "name": "limit", "in": "query", "x-ms-client-name": "top", "description": "Maximum number of responses that will be returned. Default: 10, minimum: 1 and maximum: 100", "type": "integer", "minimum": 1, "maximum": 100, "x-ms-parameter-location": "method" }, "Offset": { "name": "ofs", "in": "query", "x-ms-client-name": "skip", "description": "Starting offset of the returned results within the full result set. Default: 0", "type": "integer", "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", "type": "number", "format": "double", "x-ms-parameter-location": "method" }, "OptionalBiasLon": { "name": "lon", "in": "query", "description": "Longitude where results should be biased. E.g. -121.89", "type": "number", "format": "double", "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", "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", "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", "format": "double", "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", "format": "double", "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, "x-ms-parameter-location": "method", "type": "array", "collectionFormat": "csv", "minItems": 2, "maxItems": 2, "items": { "type": "number", "format": "double" } }, "SearchIndexSet": { "name": "idxSet", "x-ms-client-name": "indexFilter", "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)", "type": "array", "items": { "type": "string", "enum": [ "Addr", "Geo", "PAD", "POI", "Str", "Xstr" ], "x-ms-enum": { "name": "SearchIndexes", "modelAsString": true, "values": [ { "value": "Addr", "description": "Address range interpolation", "name": "Address" }, { "value": "Geo", "description": "Geographies", "name": "Geographies" }, { "value": "PAD", "description": "Point Addresses", "name": "PointAddresses" }, { "value": "POI", "description": "Points of interest", "name": "PointsOfInterest" }, { "value": "Str", "description": "Streets", "name": "Streets" }, { "value": "Xstr", "description": "Cross Streets (Intersections)", "name": "CrossStreets" } ] } }, "collectionFormat": "csv", "x-ms-parameter-location": "method" }, "EntityType": { "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](/rest/api/maps/search/get-search-polygon?view=rest-maps-1.0) API. The following parameters are ignored when entityType is set:\n\n* heading\n* number\n* returnRoadUse\n* returnSpeedLimit\n* roadUse\n* returnMatchType", "type": "string", "enum": [ "Country", "CountrySubdivision", "CountrySecondarySubdivision", "CountryTertiarySubdivision", "Municipality", "MunicipalitySubdivision", "Neighbourhood", "PostalCodeArea" ], "x-ms-enum": { "name": "GeographicEntityType", "modelAsString": true }, "x-ms-parameter-location": "method" }, "ExtendedPostalCodesFor": { "name": "extendedPostalCodesFor", "in": "query", "description": "Indexes for which extended postal codes should be included in the results.\n\nAvailable indexes are: \n\n **Addr** = Address ranges \n\n **Geo** = Geographies \n\n **PAD** = Point Addresses \n\n **POI** = Points of Interest \n\n **Str** = Streets \n\n **XStr** = Cross Streets (intersections)\n\nValue should be a comma separated list of index types (in any order) or **None** for no indexes.\n\nBy 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.\n\nUsage examples:\n\n extendedPostalCodesFor=POI \n\n extendedPostalCodesFor=PAD,Addr,POI \n\n extendedPostalCodesFor=None\n\nExtended postal code is returned as an **extendedPostalCode** property of an address. Availability is region-dependent.", "type": "array", "items": { "type": "string", "enum": [ "Addr", "Geo", "PAD", "POI", "Str", "Xstr" ], "x-ms-enum": { "name": "SearchIndexes", "modelAsString": true } }, "collectionFormat": "csv", "x-ms-parameter-location": "method" }, "ExtendedPostalCodesForPoi": { "name": "extendedPostalCodesFor", "in": "query", "description": "Indexes for which extended postal codes should be included in the results.\n\nAvailable indexes are: \n\n **POI** = Points of Interest \n\nValue should be **POI** or **None** to disable extended postal codes.\n\nBy default extended postal codes are included.\n\nUsage examples:\n\n extendedPostalCodesFor=POI \n\n extendedPostalCodesFor=None\n\nExtended postal code is returned as an **extendedPostalCode** property of an address. Availability is region-dependent.", "type": "array", "minItems": 0, "maxItems": 1, "required": false, "items": { "type": "string", "enum": [ "POI", "None" ], "x-ms-enum": { "name": "PointOfInterestExtendedPostalCodes", "modelAsString": true } }, "x-ms-parameter-location": "method" }, "Typeahead": { "name": "typeahead", "x-ms-client-name": "isTypeAhead", "in": "query", "description": "If the typeahead flag is set, the query will be interpreted as a partial input and the search will enter predictive mode.", "type": "boolean", "x-ms-parameter-location": "method" }, "CategorySet": { "name": "categorySet", "in": "query", "x-ms-client-name": "categoryFilter", "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. Maximum number of `categorySet` values supported per request is 10. 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](https://aka.ms/AzureMapsPOICategoryTree) API. Usage examples:\n\n* **categorySet=7315** (Search Points of Interest from category Restaurant)\n\n* **categorySet=7315025,7315017** (Search Points of Interest of category either Italian or French Restaurant) ", "type": "array", "items": { "type": "integer" }, "collectionFormat": "csv", "x-ms-parameter-location": "method" }, "CountrySet": { "name": "countrySet", "x-ms-client-name": "countryFilter", "in": "query", "description": "Comma separated string of country/region codes, e.g. FR,ES. This will limit the search to the specified countries/regions", "type": "array", "items": { "type": "string" }, "collectionFormat": "csv", "x-ms-parameter-location": "method" }, "Radius": { "name": "radius", "x-ms-client-name": "radiusInMeters", "in": "query", "description": "The radius in meters to for the results to be constrained to the defined area", "type": "integer", "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", "x-ms-client-name": "brandFilter", "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.\n\nUsage examples:\n\n brandSet=Foo\n\n brandSet=Foo,Bar\n\n brandSet=\"A,B,C Comma\",Bar", "type": "array", "items": { "type": "string" }, "collectionFormat": "csv", "x-ms-parameter-location": "method" }, "ConnectorSet": { "name": "connectorSet", "in": "query", "x-ms-client-name": "electricVehicleConnectorFilter", "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.\n\nAvailable connector types are:\n * `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).\n * `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.\n * `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.\n * `IEC62196Type2CableAttached` - Type 2 connector as defined in the IEC 62196-2 standard. Provided as a cable and plug attached to the charging point.\n * `IEC62196Type2Outlet` - Type 2 connector as defined in the IEC 62196-2 standard. Provided as a socket set into the charging point.\n * `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.\n * `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.\n * `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.\n * `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.\n * `IEC60309DCWhite` - Industrial White connector is a DC connector defined in the IEC 60309 standard.\n * `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.\n\nUsage examples:\n\n connectorSet=IEC62196Type2CableAttached\n connectorSet=IEC62196Type2Outlet,IEC62196Type2CableAttached", "type": "array", "items": { "type": "string", "enum": [ "StandardHouseholdCountrySpecific", "IEC62196Type1", "IEC62196Type1CCS", "IEC62196Type2CableAttached", "IEC62196Type2Outlet", "IEC62196Type2CCS", "IEC62196Type3", "Chademo", "IEC60309AC1PhaseBlue", "IEC60309DCWhite", "Tesla" ], "x-ms-enum": { "name": "ElectricVehicleConnector", "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.\n\nSee 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" }, "OperatingHours": { "name": "openingHours", "x-ms-client-name": "operatingHours", "description": "Hours of operation for a POI (Points of Interest). The availability of hours of operation will vary based on the data available. If not passed, then no opening hours information will be returned. \nSupported value: nextSevenDays", "type": "string", "in": "query", "enum": [ "nextSevenDays" ], "x-ms-enum": { "name": "OperatingHoursRange", "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": { "summary": "Use to get polygon data of a geographical area shape such as a city or a country region.", "description": "\n\nThe `Get Polygon` API is an HTTP `GET` request that returns geometry data such as a city or country/region outline for a set of entities, previously retrieved from an online search request in GeoJSON format. The geometry ID is returned in the `sourceGeometry` object under \"geometry\" and \"id\" in either a Search Address or Search Fuzzy call.\n\n A geometry ID retrieved from an online search endpoint has a limited lifetime, it is not recommended to store geometry IDs in persistent storage for later referral. 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": "Search_GetSearchPolygon", "x-ms-client-name": "ListPolygons", "x-ms-examples": { "Get the Geometry using the geometry id returned by the previous Search": { "$ref": "./examples/GetSearchPolygon.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/JsonFormat" }, { "name": "geometries", "in": "query", "x-ms-client-name": "geometryIds", "description": "Comma separated list of geometry UUIDs, previously retrieved from an online search request.", "required": true, "type": "array", "items": { "type": "string" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PolygonResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/fuzzy/{format}": { "get": { "summary": "Use when you need a search request that can handle combinations of addresses and POI tokens.", "description": "\n\nThe `Get Search Fuzzy` (**Free Form Search**) API, an HTTP `GET` request that seamlessly handles a combination of [POI search](/rest/api/maps/search/get-search-poi?view=rest-maps-1.0) and [geocoding](/rest/api/maps/search/get-search-address?view=rest-maps-1.0). It is a Free Form Search API which handles fuzzy of inputs containing any combination of address or POI tokens as a canonical 'single line search'. It 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/regions 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](/azure/location-based-services/geocoding-coverage) for a complete list of all the supported countries/regions.

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": "Search_GetSearchFuzzy", "x-ms-client-name": "FuzzySearch", "x-ms-examples": { "Search City Seattle": { "$ref": "./examples/GetSearchFuzzy.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "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" }, { "$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": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "$ref": "#/parameters/ExtendedPostalCodesFor" }, { "name": "minFuzzyLevel", "in": "query", "description": "Minimum fuzziness level to be used. Default: 1, minimum: 1 and maximum: 4\n\n* Level 1 has no spell checking.\n\n* Level 2 uses normal n-gram spell checking. For example, query \"restrant\" can be matched to \"restaurant.\"\n\n* 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.\n\n* Level 4 doesn’t add any more spell checking functions.\n\n\n\nThe search engine will start looking for a match on the level defined by minFuzzyLevel, and will stop searching at the level specified by maxFuzzyLevel.", "type": "integer", "minimum": 1, "maximum": 4 }, { "name": "maxFuzzyLevel", "in": "query", "description": "Maximum fuzziness level to be used. Default: 2, minimum: 1 and maximum: 4\n\n* Level 1 has no spell checking.\n\n* Level 2 uses normal n-gram spell checking. For example, query \"restrant\" can be matched to \"restaurant.\"\n\n* 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.\n\n* Level 4 doesn’t add any more spell checking functions.\n\n\n\nThe search engine will start looking for a match on the level defined by minFuzzyLevel, and will stop searching at the level specified by maxFuzzyLevel.", "type": "integer", "minimum": 1, "maximum": 4 }, { "$ref": "#/parameters/SearchIndexSet" }, { "$ref": "#/parameters/BrandSet" }, { "$ref": "#/parameters/ConnectorSet" }, { "$ref": "#/parameters/EntityType" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" }, { "$ref": "#/parameters/OperatingHours" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/poi/{format}": { "get": { "summary": "Use to search for points of interest by name.", "description": "\n\nThe `Points of Interest (POI) Search` API is an HTTP `GET` request that allows you to request POI results by name. It also supports additional query parameters such as language and filtering results by area of interest driven by country/region or bounding box. The Endpoint will return only POI results matching the query string. Response includes POI details such as address, coordinate location and category.", "operationId": "Search_GetSearchPOI", "x-ms-client-name": "SearchPointOfInterest", "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": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "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" }, { "$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": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "$ref": "#/parameters/ExtendedPostalCodesForPoi" }, { "$ref": "#/parameters/BrandSet" }, { "$ref": "#/parameters/ConnectorSet" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" }, { "$ref": "#/parameters/OperatingHours" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/nearby/{format}": { "get": { "summary": "Use to search for points of interest near a specific location.", "description": "The `Get Search Nearby` API is an HTTP `GET` request most useful for retrieving POI results around a specific location. This endpoint will only return POI results, and does not take in a search query parameter.", "operationId": "Search_GetSearchNearby", "x-ms-client-name": "SearchNearbyPointOfInterest", "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": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "$ref": "#/parameters/RequiredBiasLat" }, { "$ref": "#/parameters/RequiredBiasLon" }, { "$ref": "#/parameters/LimitSearch" }, { "$ref": "#/parameters/Offset" }, { "$ref": "#/parameters/CategorySet" }, { "$ref": "#/parameters/CountrySet" }, { "name": "radius", "in": "query", "x-ms-client-name": "radiusInMeters", "description": "The radius in meters to for the results to be constrained to the defined area, Min value is 1, Max Value is 50000.", "type": "integer" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "$ref": "#/parameters/ExtendedPostalCodesFor" }, { "$ref": "#/parameters/BrandSet" }, { "$ref": "#/parameters/ConnectorSet" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/poi/category/{format}": { "get": { "summary": "Use to search for points of interest by category.", "description": "\n\nThe `Get Search POI Category` API is an HTTP `GET` request that allows you to request POI results from given category. Useful 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": "Search_GetSearchPOICategory", "x-ms-client-name": "SearchPointOfInterestCategory", "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": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "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](https://aka.ms/AzureMapsPOICategoryTree) API. For a list of available categories, see [Azure Maps supported categories](/azure/azure-maps/supported-search-categories). We recommend to use POI Search Category Tree API to request the supported categories.", "required": true, "type": "string" }, { "$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": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "$ref": "#/parameters/ExtendedPostalCodesFor" }, { "$ref": "#/parameters/BrandSet" }, { "$ref": "#/parameters/ConnectorSet" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" }, { "$ref": "#/parameters/OperatingHours" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/poi/category/tree/{format}": { "get": { "summary": "Use to get a list of supported Points of Interest (POI) categories and subcategories.", "description": "\n\nThe `Get Search POI Category Tree` API is an HTTP `GET` request that 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](/rest/api/maps/search/get-search-poi?view=rest-maps-1.0).", "operationId": "Search_GetSearchPOICategoryTree", "x-ms-client-name": "GetPointOfInterestCategoryTree", "x-ms-examples": { "Get the POI Category Tree (only partial response shown below)": { "$ref": "./examples/GetSearchPOICategoryTree.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/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).\n\nPlease refer to [Supported Languages](/azure/azure-maps/supported-languages) for details.", "type": "string" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/PointOfInterestCategoryTreeResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/{format}": { "get": { "summary": "Use to get latitude and longitude coordinates of a street address in an unstructured or query input format.", "description": "\n\nThe `Get Search Address` API is an HTTP `GET` request returns the latitude and longitude coordinates when passed in a street address or name of a place as the search criteria. \n\nIn 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": "Search_GetSearchAddress", "x-ms-client-name": "SearchAddress", "x-ms-examples": { "Search detail address 15127 NE 24th Street, Redmond, WA 98052": { "$ref": "./examples/GetSearchAddress.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "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" }, { "name": "typeahead", "x-ms-client-name": "isTypeAhead", "in": "query", "description": "If the typeahead flag is set, the query will be interpreted as a partial input and the search will enter predictive mode.\n\n**Important**: This property is deprecated and may be omitted from the response.", "type": "boolean", "x-ms-parameter-location": "method" }, { "$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": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "$ref": "#/parameters/ExtendedPostalCodesFor" }, { "$ref": "#/parameters/EntityType" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/reverse/{format}": { "get": { "summary": "Use to get a street address and location info from latitude and longitude coordinates.", "description": "\n\nThe `Get Search Address Reverse` API is and HTTP `GET` request that returns a street address or location when given latitude and longitude coordinates.\n\nThere 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": "Search_GetSearchAddressReverse", "x-ms-client-name": "ReverseSearchAddress", "x-ms-examples": { "Searches addresses for coordinates 37.337,-121.89": { "$ref": "./examples/GetSearchAddressReverse.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "$ref": "#/parameters/Position" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "name": "returnSpeedLimit", "x-ms-client-name": "includeSpeedLimit", "in": "query", "description": "Boolean. To enable return of the posted speed limit", "type": "boolean" }, { "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", "type": "integer", "minimum": -360, "maximum": 360 }, { "$ref": "#/parameters/Radius" }, { "name": "number", "x-ms-client-name": "streetNumber", "in": "query", "description": "Street number as a string. 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.", "type": "string" }, { "name": "returnRoadUse", "x-ms-client-name": "includeRoadUse", "in": "query", "description": "Boolean. To enable return of the road use array for reverse geocodes at street level", "type": "boolean" }, { "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", "type": "array", "items": { "type": "string", "enum": [ "LimitedAccess", "Arterial", "Terminal", "Ramp", "Rotary", "LocalStreet" ], "x-ms-enum": { "name": "RoadUseType" } } }, { "name": "allowFreeformNewline", "in": "query", "description": "Format of newlines in the formatted address.\n\nIf true, the address will contain newlines.\nIf false, newlines will be converted to commas.", "type": "boolean" }, { "name": "returnMatchType", "x-ms-client-name": "includeMatchType", "in": "query", "description": "Include information on the type of match the geocoder achieved in the response.", "type": "boolean" }, { "$ref": "#/parameters/EntityType" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ReverseSearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/reverse/crossStreet/{format}": { "get": { "summary": "Use to get a cross street location info from latitude and longitude coordinates.", "description": "\n\nThe `Get Search Address Reverse Cross Street` API is an HTTP `GET` request that returns the nearest cross street when given latitude and longitude coordinates. 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.\nThis endpoint will return cross street information for a given coordinate.", "operationId": "Search_GetSearchAddressReverseCrossStreet", "x-ms-client-name": "ReverseSearchCrossStreetAddress", "x-ms-examples": { "Search address of the nearest intersection/crossroad": { "$ref": "./examples/GetSearchAddressReverseCrossStreet.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "$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", "type": "integer", "minimum": -360, "maximum": 360 }, { "$ref": "#/parameters/Radius" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ReverseSearchCrossStreetAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/structured/{format}": { "get": { "summary": "Use to get latitude and longitude coordinates of a street address in an unstructured or query input format.", "description": "The `Get Search Address Structured` (**Structured Address Geocoding**) API is an HTTP `GET` request that returns latitude and longitude coordinates of a street address in an unstructured or query input format. \n\n 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": "Search_GetSearchAddressStructured", "x-ms-client-name": "SearchStructuredAddress", "x-ms-examples": { "Search address in Redmond, WA in structured form": { "$ref": "./examples/GetSearchAddressStructured.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "name": "countryCode", "in": "query", "description": "The 2 or 3 letter [ISO3166-1](https://www.iso.org/iso-3166-country-codes.html) country/region 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", "type": "string" }, { "name": "streetName", "in": "query", "description": "The street name portion of an address", "type": "string" }, { "name": "crossStreet", "in": "query", "description": "The cross street name for the structured address.", "type": "string" }, { "name": "municipality", "in": "query", "description": "The municipality portion of an address", "type": "string" }, { "name": "municipalitySubdivision", "in": "query", "description": "The municipality subdivision (sub/super city) for the structured address", "type": "string" }, { "name": "countryTertiarySubdivision", "in": "query", "description": "The named area for the structured address", "type": "string" }, { "name": "countrySecondarySubdivision", "in": "query", "description": "The country/region for the structured address", "type": "string" }, { "name": "countrySubdivision", "in": "query", "description": "The country/region subdivision portion of an address", "type": "string" }, { "name": "postalCode", "in": "query", "description": "The postal code portion of an address", "type": "string" }, { "$ref": "#/parameters/ExtendedPostalCodesFor" }, { "$ref": "#/parameters/EntityType" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/geometry/{format}": { "post": { "summary": "Use to perform free form searches inside a one more more geometries.", "description": "\n\nThe `Post Search Inside Geometry` API is and HTTP `POST` request that allows you to perform a free form search inside a single geometry or multiple geometries. 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 GeoJSON 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:.

", "operationId": "Search_PostSearchInsideGeometry", "x-ms-client-name": "SearchInsideGeometry", "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": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "$ref": "#/parameters/PoiQuery" }, { "$ref": "#/parameters/LimitSearch" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/Language" }, { "$ref": "#/parameters/CategorySet" }, { "$ref": "#/parameters/ExtendedPostalCodesFor" }, { "$ref": "#/parameters/SearchIndexSet" }, { "name": "searchInsideGeometryRequestBody", "x-ms-client-name": "geometry", "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/SearchInsideGeometryRequest" } }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" }, { "$ref": "#/parameters/OperatingHours" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/alongRoute/{format}": { "post": { "summary": "Use to to perform a fuzzy search for POIs along a specified route.", "description": "\n\nThe `Post Search Along Route` API is an HTTP `POST` request that 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": "Search_PostSearchAlongRoute", "x-ms-client-name": "SearchAlongRoute", "x-ms-examples": { "Search for burger joints along a route": { "$ref": "./examples/PostSearchAlongRoute.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "$ref": "#/parameters/PoiQuery" }, { "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": "searchAlongRouteRequestBody", "x-ms-client-name": "route", "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/SearchAlongRouteRequest" } }, { "name": "limit", "x-ms-client-name": "top", "description": "Maximum number of responses that will be returned. Default value is 10. Max value is 20", "type": "integer", "in": "query", "maximum": 20 }, { "$ref": "#/parameters/BrandSet" }, { "$ref": "#/parameters/CategorySet" }, { "$ref": "#/parameters/ConnectorSet" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/View" }, { "$ref": "#/parameters/OperatingHours" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressResult" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/fuzzy/batch/sync/{format}": { "post": { "summary": "Use to send a batch of queries to the [Search Fuzzy](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0) API in a single synchronous request.", "description": "\n\nThe `Post Search Fuzzy Batch` API is an HTTP `POST` request that sends batches of queries to [Search Fuzzy](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0) API in a single synchronous call. You can call `Post Search 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/fuzzy/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Fuzzy Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/fuzzy/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n \n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\nGET https://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=atm&lat=47.639769&lon=-122.128362&radius=5000&limit=5\"},\n {\"query\": \"?query=Statue Of Liberty&limit=2\"},\n {\"query\": \"?query=Starbucks&lat=47.639769&lon=-122.128362&radius=5000\"},\n {\"query\": \"?query=Space Needle\"},\n {\"query\": \"?query=pizza&limit=10\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressResult`](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0#SearchAddressResult) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"atm\"\n },\n \"results\": [\n {\n \"type\": \"POI\",\n \"poi\": {\n \"name\": \"ATM at Wells Fargo\"\n },\n \"address\": {\n \"country\": \"United States Of America\",\n \"freeformAddress\": \"3240 157th Ave NE, Redmond, WA 98052\"\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"statue of liberty\"\n },\n \"results\": [\n {\n \"type\": \"POI\",\n \"poi\": {\n \"name\": \"Statue of Liberty\"\n },\n \"address\": {\n \"country\": \"United States Of America\",\n \"freeformAddress\": \"New York, NY 10004\"\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_PostSearchFuzzyBatchSync", "x-ms-client-name": "FuzzySearchBatchSync", "x-ms-examples": { "A Sync Search Fuzzy Batch API call containing 5 Search Fuzzy API queries": { "$ref": "./examples/PostSearchFuzzyBatchSync.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/JsonFormat" }, { "name": "searchFuzzyBatchRequestBody", "x-ms-client-name": "batchRequest", "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": "../../../Common/preview/1.0/common.json#/definitions/BatchRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressBatchProcessResult" } }, "408": { "description": "Timeout: The request took longer to finish than the maximum amount of time defined in the api.", "schema": { "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" }, "x-ms-error-response": true }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/fuzzy/batch/{format}": { "post": { "summary": "Use to send a batch of queries to the [Search Fuzzy](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0) API in a single asynchronous request.", "description": "\n\nThe `Post Search Fuzzy Batch` API is an HTTP `POST` request that sends batches of queries to [Search Fuzzy](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0) API in a single asynchronous call. You can call Search 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/fuzzy/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Fuzzy Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/fuzzy/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=atm&lat=47.639769&lon=-122.128362&radius=5000&limit=5\"},\n {\"query\": \"?query=Statue Of Liberty&limit=2\"},\n {\"query\": \"?query=Starbucks&lat=47.639769&lon=-122.128362&radius=5000\"},\n {\"query\": \"?query=Space Needle\"},\n {\"query\": \"?query=pizza&limit=10\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressResult`](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0#searchaddressresult) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"atm\"\n },\n \"results\": [\n {\n \"type\": \"POI\",\n \"poi\": {\n \"name\": \"ATM at Wells Fargo\"\n },\n \"address\": {\n \"country\": \"United States Of America\",\n \"freeformAddress\": \"3240 157th Ave NE, Redmond, WA 98052\"\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"statue of liberty\"\n },\n \"results\": [\n {\n \"type\": \"POI\",\n \"poi\": {\n \"name\": \"Statue of Liberty\"\n },\n \"address\": {\n \"country\": \"United States Of America\",\n \"freeformAddress\": \"New York, NY 10004\"\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_PostSearchFuzzyBatch", "x-ms-client-name": "FuzzySearchBatch", "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": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/JsonFormat" }, { "name": "searchFuzzyBatchRequestBody", "x-ms-client-name": "batchRequest", "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": "../../../Common/preview/1.0/common.json#/definitions/BatchRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressBatchProcessResult" } }, "202": { "$ref": "../../../Common/preview/1.0/common.json#/responses/202Async" }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } }, "get": { "summary": "Use to send a batch of queries to the [Search Fuzzy](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0) API in a single asynchronous request.", "description": "\n\nThe `Get Search Fuzzy Batch` API is and HTTP `GET` request that sends batches of queries to [Search Fuzzy](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0) API in a single asynchronous API call. You can call Search 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/fuzzy/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Fuzzy Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/fuzzy/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=atm&lat=47.639769&lon=-122.128362&radius=5000&limit=5\"},\n {\"query\": \"?query=Statue Of Liberty&limit=2\"},\n {\"query\": \"?query=Starbucks&lat=47.639769&lon=-122.128362&radius=5000\"},\n {\"query\": \"?query=Space Needle\"},\n {\"query\": \"?query=pizza&limit=10\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/fuzzy/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressResult`](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0#searchaddressresult) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"atm\"\n },\n \"results\": [\n {\n \"type\": \"POI\",\n \"poi\": {\n \"name\": \"ATM at Wells Fargo\"\n },\n \"address\": {\n \"country\": \"United States Of America\",\n \"freeformAddress\": \"3240 157th Ave NE, Redmond, WA 98052\"\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"statue of liberty\"\n },\n \"results\": [\n {\n \"type\": \"POI\",\n \"poi\": {\n \"name\": \"Statue of Liberty\"\n },\n \"address\": {\n \"country\": \"United States Of America\",\n \"freeformAddress\": \"New York, NY 10004\"\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_GetSearchFuzzyBatch", "x-ms-client-name": "GetFuzzySearchBatch", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "original-uri" }, "x-ms-examples": { "A Search Fuzzy Batch API GET call containing 5 Search Fuzzy API queries": { "$ref": "./examples/GetSearchFuzzyBatch.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "#/parameters/BatchId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressBatchProcessResult" } }, "202": { "$ref": "../../../Common/preview/1.0/common.json#/responses/202Async" }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/batch/sync/{format}": { "post": { "summary": "Use to send a batch of queries to the [Search Fuzzy](/rest/api/maps/search/get-search-fuzzy?view=rest-maps-1.0) API in a single synchronous request.", "description": "**Search Address Batch API**\n\nThe `Post Search Address Batch sync` API sends batches of queries to [Search Address](/rest/api/maps/search/get-search-address?view=rest-maps-1.0) API in a single synchronous 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/address/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Address Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/address/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=400 Broad St, Seattle, WA 98109&limit=3\"},\n {\"query\": \"?query=One, Microsoft Way, Redmond, WA 98052&limit=3\"},\n {\"query\": \"?query=350 5th Ave, New York, NY 10118&limit=1\"},\n {\"query\": \"?query=Pike Pl, Seattle, WA 98101&lat=47.610970&lon=-122.342469&radius=1000\"},\n {\"query\": \"?query=Champ de Mars, 5 Avenue Anatole France, 75007 Paris, France&limit=1\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-address?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressResult`](/rest/api/maps/search/get-search-address?view=rest-maps-1.0#SearchAddressResult) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"one microsoft way redmond wa 98052\"\n },\n \"results\": [\n {\n \"position\": {\n \"lat\": 47.63989,\n \"lon\": -122.12509\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"pike pl seattle wa 98101\"\n },\n \"results\": [\n {\n \"position\": {\n \"lat\": 47.60963,\n \"lon\": -122.34215\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_PostSearchAddressBatchSync", "x-ms-client-name": "SearchAddressBatchSync", "x-ms-examples": { "A Sync Address Geocoding Batch API call containing 5 Address Geocoding API queries": { "$ref": "./examples/PostSearchAddressBatchSync.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/JsonFormat" }, { "name": "searchAddressBatchRequestBody", "x-ms-client-name": "batchRequest", "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": "../../../Common/preview/1.0/common.json#/definitions/BatchRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressBatchProcessResult" } }, "408": { "description": "Timeout: The request took longer to finish than the maximum amount of time defined in the api.", "schema": { "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" }, "x-ms-error-response": true }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/batch/{format}": { "post": { "summary": "Use to send a batch of queries to the [Search Address](/rest/api/maps/search/get-search-address?view=rest-maps-1.0) API in a single asynchronous request.", "description": "The `Post Search Address Batch` API is an HTTP `POST` request that sends batches of queries to [Search Address](/rest/api/maps/search/get-search-address?view=rest-maps-1.0) API in a single synchronous 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/address/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Address Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/address/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=400 Broad St, Seattle, WA 98109&limit=3\"},\n {\"query\": \"?query=One, Microsoft Way, Redmond, WA 98052&limit=3\"},\n {\"query\": \"?query=350 5th Ave, New York, NY 10118&limit=1\"},\n {\"query\": \"?query=Pike Pl, Seattle, WA 98101&lat=47.610970&lon=-122.342469&radius=1000\"},\n {\"query\": \"?query=Champ de Mars, 5 Avenue Anatole France, 75007 Paris, France&limit=1\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-address?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressResult`](/rest/api/maps/search/get-search-address?view=rest-maps-1.0#SearchAddressResult) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"one microsoft way redmond wa 98052\"\n },\n \"results\": [\n {\n \"position\": {\n \"lat\": 47.63989,\n \"lon\": -122.12509\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"pike pl seattle wa 98101\"\n },\n \"results\": [\n {\n \"position\": {\n \"lat\": 47.60963,\n \"lon\": -122.34215\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_PostSearchAddressBatch", "x-ms-client-name": "SearchAddressBatch", "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": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/JsonFormat" }, { "name": "searchAddressBatchRequestBody", "x-ms-client-name": "batchRequest", "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": "../../../Common/preview/1.0/common.json#/definitions/BatchRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressBatchProcessResult" } }, "202": { "$ref": "../../../Common/preview/1.0/common.json#/responses/202Async" }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } }, "get": { "summary": "Use to send a batch of queries to the [Search Address](/rest/api/maps/search/get-search-address?view=rest-maps-1.0) API in a single asynchronous request.", "description": "\n\nThe `Get Search Address Batch` API is an HTTP `GET` request that sends batches of queries to [Search Address](/rest/api/maps/search/get-search-address?view=rest-maps-1.0) API in a single asynchronous 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/address/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Address Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/address/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=400 Broad St, Seattle, WA 98109&limit=3\"},\n {\"query\": \"?query=One, Microsoft Way, Redmond, WA 98052&limit=3\"},\n {\"query\": \"?query=350 5th Ave, New York, NY 10118&limit=1\"},\n {\"query\": \"?query=Pike Pl, Seattle, WA 98101&lat=47.610970&lon=-122.342469&radius=1000\"},\n {\"query\": \"?query=Champ de Mars, 5 Avenue Anatole France, 75007 Paris, France&limit=1\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-address?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/address/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressResult`](/rest/api/maps/search/get-search-address?view=rest-maps-1.0#SearchAddressResult) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"one microsoft way redmond wa 98052\"\n },\n \"results\": [\n {\n \"position\": {\n \"lat\": 47.63989,\n \"lon\": -122.12509\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"query\": \"pike pl seattle wa 98101\"\n },\n \"results\": [\n {\n \"position\": {\n \"lat\": 47.60963,\n \"lon\": -122.34215\n }\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_GetSearchAddressBatch", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "original-uri" }, "x-ms-examples": { "An Address Geocoding Batch API GET call containing 5 Address Geocoding API queries": { "$ref": "./examples/GetSearchAddressBatch.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "#/parameters/BatchId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/SearchAddressBatchProcessResult" } }, "202": { "$ref": "../../../Common/preview/1.0/common.json#/responses/202Async" }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/reverse/batch/sync/{format}": { "post": { "summary": "Use to send a batch of queries to the [Search Address](/rest/api/maps/search/get-search-address?view=rest-maps-1.0) API in a single synchronous request.", "description": "The `Get Search Address Batch` API is an HTTP `GET` request that sends batches of queries to [Search Address](/rest/api/maps/search/get-search-address?view=rest-maps-1.0) API in a single synchronous 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/address/reverse/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Address Reverse Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/address/reverse/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=48.858561,2.294911\"},\n {\"query\": \"?query=47.639765,-122.127896&radius=5000&limit=2\"},\n {\"query\": \"?query=47.621028,-122.348170\"},\n {\"query\": \"?query=43.722990,10.396695\"},\n {\"query\": \"?query=40.750958,-73.982336\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressReverseResponse`](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0#searchaddressreverseresponse) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"queryTime\": 11\n },\n \"addresses\": [\n {\n \"address\": {\n \"country\": \"France\",\n \"freeformAddress\": \"Avenue Anatole France, 75007 Paris\"\n },\n \"position\": \"48.858490,2.294820\"\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"queryTime\": 1\n },\n \"addresses\": [\n {\n \"address\": {\n \"country\": \"United States of America\",\n \"freeformAddress\": \"157th Pl NE, Redmond WA 98052\"\n },\n \"position\": \"47.640470,-122.129430\"\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_PostSearchAddressReverseBatchSync", "x-ms-client-name": "ReverseSearchAddressBatchSync", "x-ms-examples": { "A Reverse Geocoding Batch API Sync call containing 5 Reverse Geocoding API queries": { "$ref": "./examples/PostSearchAddressReverseBatchSync.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/JsonFormat" }, { "name": "searchAddressReverseBatchRequestBody", "x-ms-client-name": "batchRequest", "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": "../../../Common/preview/1.0/common.json#/definitions/BatchRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ReverseSearchAddressBatchProcessResult" } }, "408": { "description": "Timeout: The request took longer to finish than the maximum amount of time defined in the api.", "schema": { "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" }, "x-ms-error-response": true }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/search/address/reverse/batch/{format}": { "post": { "summary": "Use to send a batch of queries to the [Search Address Reverse](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0) API in a single asynchronous request.", "description": "\n\nThe `Post Search Address Reverse Batch` API is an HTTP `POST` request that sends batches of queries to [Search Address Reverse](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0) API in a single asynchronous API call. You can call `Post 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/address/reverse/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Address Reverse Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/address/reverse/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=48.858561,2.294911\"},\n {\"query\": \"?query=47.639765,-122.127896&radius=5000&limit=2\"},\n {\"query\": \"?query=47.621028,-122.348170\"},\n {\"query\": \"?query=43.722990,10.396695\"},\n {\"query\": \"?query=40.750958,-73.982336\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressReverseResponse`](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0#searchaddressreverseresponse) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"queryTime\": 11\n },\n \"addresses\": [\n {\n \"address\": {\n \"country\": \"France\",\n \"freeformAddress\": \"Avenue Anatole France, 75007 Paris\"\n },\n \"position\": \"48.858490,2.294820\"\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"queryTime\": 1\n },\n \"addresses\": [\n {\n \"address\": {\n \"country\": \"United States of America\",\n \"freeformAddress\": \"157th Pl NE, Redmond WA 98052\"\n },\n \"position\": \"47.640470,-122.129430\"\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_PostSearchAddressReverseBatch", "x-ms-client-name": "ReverseSearchAddressBatch", "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": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/JsonFormat" }, { "name": "searchAddressReverseBatchRequestBody", "x-ms-client-name": "batchRequest", "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": "../../../Common/preview/1.0/common.json#/definitions/BatchRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ReverseSearchAddressBatchProcessResult" } }, "202": { "$ref": "../../../Common/preview/1.0/common.json#/responses/202Async" }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } }, "get": { "summary": "Use to send a batch of queries to the [Search Address Reverse](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0) API in a single asynchronous request.", "description": "\n\nThe `Get Search Address Reverse Batch` API is an HTTP `GET` request that sends batches of queries to [Search Address Reverse](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0) API in a single asynchronous API call. You can call `Get 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.\n### Submit Synchronous Batch Request\nThe 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.\n```\nPOST https://atlas.microsoft.com/search/address/reverse/batch/sync/json?api-version=1.0&subscription-key={subscription-key}\n```\n### Submit Asynchronous Batch Request\nThe Asynchronous API is appropriate for processing big volumes of relatively complex search requests\n- It allows the retrieval of results in a separate call (multiple downloads are possible).\n- The asynchronous API is optimized for reliability and is not expected to run into a timeout.\n- The number of batch items is limited to **10,000** for this API.\n\nWhen 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.\nThe asynchronous responses are stored for **14** days. The redirect URL returns a 404 response if used after the expiration period.\n\nPlease note that asynchronous batch request is a long-running operation. Here's a typical sequence of operations:\n1. Client sends a Search Address Reverse Batch `POST` request to Azure Maps. \n\r```\nPOST https://atlas.microsoft.com/search/address/reverse/batch/json?api-version=1.0&subscription-key={subscription-key}\n```\n\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request has been accepted.\n\n > HTTP `Error` - There was an error processing your Batch request. This could either be a `400 Bad Request` or any other `Error` status code.\n\n3. If the batch request was accepted successfully, the `Location` header in the response contains the URL to download the results of the batch request.\n This status URI looks like following:\n\n```\n GET https://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\n4. Client issues a `GET` request on the _download URL_ obtained in Step 3 to download the batch results.\n\n### POST Body for Batch Request\nTo 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:\n\n\n```json\n{\n \"batchItems\": [\n {\"query\": \"?query=48.858561,2.294911\"},\n {\"query\": \"?query=47.639765,-122.127896&radius=5000&limit=2\"},\n {\"query\": \"?query=47.621028,-122.348170\"},\n {\"query\": \"?query=43.722990,10.396695\"},\n {\"query\": \"?query=40.750958,-73.982336\"}\n ]\n}\n```\n\nA _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](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0#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.\n\n\nThe 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.\n\n\n### Download Asynchronous Batch Results\nTo 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:\n\n```\nhttps://atlas.microsoft.com/search/address/reverse/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}\n```\nHere's the typical sequence of operations for downloading the batch results:\n1. Client sends a `GET` request using the _download URL_.\n2. The server will respond with one of the following:\n\n > HTTP `202 Accepted` - Batch request was accepted but is still being processed. Please try again in some time.\n\n > HTTP `200 OK` - Batch request successfully processed. The response body contains all the batch results.\n\n\n\n### Batch Response Model\nThe 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:\n\n - [`SearchAddressReverseResponse`](/rest/api/maps/search/get-search-address-reverse?view=rest-maps-1.0#searchaddressreverseresponse) - If the query completed successfully.\n\n - `Error` - If the query failed. The response will contain a `code` and a `message` in this case.\n\n\nHere's a sample Batch Response with 2 _successful_ and 1 _failed_ result:\n\n\n```json\n{\n \"summary\": {\n \"successfulRequests\": 2,\n \"totalRequests\": 3\n },\n \"batchItems\": [\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"queryTime\": 11\n },\n \"addresses\": [\n {\n \"address\": {\n \"country\": \"France\",\n \"freeformAddress\": \"Avenue Anatole France, 75007 Paris\"\n },\n \"position\": \"48.858490,2.294820\"\n }\n ]\n }\n },\n {\n \"statusCode\": 200,\n \"response\":\n {\n \"summary\": {\n \"queryTime\": 1\n },\n \"addresses\": [\n {\n \"address\": {\n \"country\": \"United States of America\",\n \"freeformAddress\": \"157th Pl NE, Redmond WA 98052\"\n },\n \"position\": \"47.640470,-122.129430\"\n }\n ]\n }\n },\n {\n \"statusCode\": 400,\n \"response\":\n {\n \"error\":\n {\n \"code\": \"400 BadRequest\",\n \"message\": \"Bad request: one or more parameters were incorrectly specified or are mutually exclusive.\"\n }\n }\n }\n ]\n}\n```", "operationId": "Search_GetSearchAddressReverseBatch", "x-ms-client-name": "GetReverseSearchAddressBatch", "x-ms-long-running-operation": true, "x-ms-long-running-operation-options": { "final-state-via": "original-uri" }, "x-ms-examples": { "A Reverse Geocoding Batch API GET call containing 5 Reverse Geocoding API queries": { "$ref": "./examples/GetSearchAddressReverseBatch.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "#/parameters/BatchId" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/ReverseSearchAddressBatchProcessResult" } }, "202": { "$ref": "../../../Common/preview/1.0/common.json#/responses/202Async" }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } } }, "definitions": { "PolygonResult": { "description": "This object is returned from a successful Search Polygon call", "type": "object", "properties": { "additionalData": { "description": "Results array", "x-ms-client-name": "polygons", "readOnly": true, "type": "array", "items": { "$ref": "#/definitions/Polygon" } } } }, "Polygon": { "type": "object", "properties": { "providerID": { "description": "ID of the returned entity", "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": "../../../Common/preview/1.0/common.json#/definitions/GeoJsonObject" } } }, "SearchAddressResult": { "description": "This object is returned from a successful Search calls.", "type": "object", "properties": { "summary": { "description": "Summary object for a Search API response", "readOnly": true, "$ref": "#/definitions/SearchSummary" }, "results": { "description": "A list of Search API results.", "type": "array", "readOnly": true, "items": { "description": "This type represents the Search API result object.", "readOnly": true, "$ref": "#/definitions/SearchAddressResultItem" } } } }, "SearchSummary": { "description": "Summary object for a Search API response.", "type": "object", "readOnly": true, "properties": { "query": { "description": "The query parameter that was used to produce these search results.", "type": "string", "readOnly": true }, "queryType": { "description": "The type of query being returned: NEARBY or NON_NEAR.\n\n**Important**: This property is deprecated and may be omitted from the response.", "type": "string", "readOnly": true, "enum": [ "NEARBY", "NON_NEAR" ], "x-ms-enum": { "name": "QueryType", "modelAsString": true, "values": [ { "value": "NEARBY", "name": "NEARBY", "description": "Search was performed around a certain latitude and longitude with a defined radius." }, { "value": "NON_NEAR", "name": "GLOBAL", "description": "Search was performed globally, without biasing to a certain latitude and longitude, and no defined radius" } ] } }, "queryTime": { "description": "Time spent resolving the query, in milliseconds.", "type": "integer", "readOnly": true }, "numResults": { "description": "Number of results in the response.", "type": "integer", "readOnly": true }, "limit": { "x-ms-client-name": "top", "description": "Maximum number of responses that will be returned", "readOnly": true, "type": "integer" }, "offset": { "x-ms-client-name": "skip", "description": "The starting offset of the returned Results within the full Result set.", "type": "integer", "readOnly": true }, "totalResults": { "description": "The total number of Results found.", "type": "integer", "readOnly": true }, "fuzzyLevel": { "description": "The maximum fuzzy level required to provide Results.", "type": "integer", "readOnly": true }, "geoBias": { "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, "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" } } }, "SearchAddressResultItem": { "description": "Result object for a Search API response.", "type": "object", "readOnly": true, "properties": { "type": { "description": "One of:\n* POI\n* Street\n* Geography\n* Point Address\n* Address Range\n* Cross Street", "type": "string", "readOnly": true, "enum": [ "POI", "Street", "Geography", "Point Address", "Address Range", "Cross Street" ], "x-ms-enum": { "name": "SearchAddressResultType", "modelAsString": true } }, "id": { "description": "Id property", "type": "string", "readOnly": true }, "score": { "$ref": "#/definitions/Score" }, "dist": { "x-ms-client-name": "distanceInMeters", "$ref": "#/definitions/Distance" }, "info": { "description": "Information about the original data source of the Result. Used for support requests.", "type": "string", "readOnly": true }, "entityType": { "$ref": "#/definitions/EntityType" }, "poi": { "x-ms-client-name": "pointOfInterest", "$ref": "#/definitions/PointOfInterest" }, "address": { "$ref": "#/definitions/Address" }, "position": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" }, "viewport": { "$ref": "#/definitions/BoundingBox" }, "entryPoints": { "description": "Array of EntryPoints. Those describe the types of entrances available at the location. The type can be \"main\" for main entrances such as a front door, or a lobby, and \"minor\", for side and back doors.", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/EntryPoint" } }, "addressRanges": { "$ref": "#/definitions/AddressRanges" }, "dataSources": { "description": "Optional section. Reference geometry id for use with the [Get Search Polygon](/rest/api/maps/search/get-search-polygon?view=rest-maps-1.0) API.", "type": "object", "readOnly": true, "$ref": "#/definitions/DataSources" }, "matchType": { "$ref": "#/definitions/MatchType", "description": "Information on the type of match.\n\nOne of:\n * AddressPoint\n * HouseNumberRange\n * Street" }, "detourTime": { "description": "Detour time in seconds. Only returned for calls to the Search Along Route API.", "type": "integer", "readOnly": true } } }, "PointOfInterestCategoryTreeResult": { "description": "This object is returned from a successful POI Category Tree call", "type": "object", "properties": { "poiCategories": { "x-ms-client-name": "categories", "description": "Categories array", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/PointOfInterestCategory" } } } }, "PointOfInterestCategory": { "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](/rest/api/maps/search/get-search-poi?view=rest-maps-1.0).", "type": "integer", "readOnly": true }, "name": { "description": "Name of the category", "type": "string", "readOnly": true }, "childCategoryIds": { "x-ms-client-name": "childIds", "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 } } }, "ReverseSearchAddressResult": { "description": "This object is returned from a successful Search Address Reverse call", "type": "object", "properties": { "summary": { "description": "Summary object for a Search Address Reverse response", "readOnly": true, "$ref": "#/definitions/SearchSummary" }, "addresses": { "description": "Addresses array", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/ReverseSearchAddressResultItem" } } } }, "ReverseSearchAddressResultItem": { "description": "Result object for a Search Address Reverse response", "type": "object", "properties": { "address": { "$ref": "#/definitions/Address" }, "position": { "type": "string", "readOnly": true, "description": "Position property in the form of \"{latitude},{longitude}\"" }, "roadUse": { "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/RoadUseType" } }, "matchType": { "$ref": "#/definitions/MatchType", "description": "Information on the type of match.\n\nOne of:\n * AddressPoint\n * HouseNumberRange\n * Street" } } }, "ReverseSearchCrossStreetAddressResult": { "description": "This object is returned from a successful Search Address Reverse CrossStreet call", "type": "object", "properties": { "summary": { "description": "Summary object for a Search Address Reverse Cross Street response", "readOnly": true, "$ref": "#/definitions/SearchSummary" }, "addresses": { "description": "Addresses array", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/ReverseSearchCrossStreetAddressResultItem" } } } }, "ReverseSearchCrossStreetAddressResultItem": { "description": "Result object for a Search Address Reverse Cross Street response", "type": "object", "properties": { "address": { "$ref": "#/definitions/Address" }, "position": { "type": "string", "readOnly": true, "description": "Position property in the form of \"{latitude},{longitude}\"" } } }, "SearchInsideGeometryRequest": { "description": "This type represents the request body for the Search Inside Geometry service.", "type": "object", "properties": { "geometry": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/GeoJsonObject" } } }, "SearchAlongRouteRequest": { "description": "This type represents the request body for the Search Along Route service.", "type": "object", "properties": { "route": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/GeoJsonLineString" } } }, "PointOfInterest": { "description": "Details of the returned POI including information such as the name, phone, url address, and classifications.", "type": "object", "readOnly": true, "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/PointOfInterestCategorySet" } }, "categories": { "description": "Categories array", "type": "array", "readOnly": true, "items": { "type": "string" } }, "classifications": { "description": "Classification array", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Classification" } }, "brands": { "description": "Brands array. The name of the brand for the POI being returned.", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/Brand" } }, "openingHours": { "x-ms-client-name": "operatingHours", "$ref": "#/definitions/OperatingHours" } } }, "PointOfInterestCategorySet": { "description": "POI category", "type": "object", "properties": { "id": { "description": "Category ID", "type": "integer", "readOnly": true } } }, "Classification": { "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/ClassificationName" } } } }, "ClassificationName": { "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 } } }, "OperatingHours": { "description": "Opening hours for a POI (Points of Interest).", "type": "object", "properties": { "mode": { "description": "Value used in the request: none or \"nextSevenDays\"", "type": "string", "readOnly": true }, "timeRanges": { "description": "List of time ranges for the next 7 days", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/OperatingHoursTimeRange" } } } }, "OperatingHoursTimeRange": { "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/OperatingHoursTime" }, "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/OperatingHoursTime" } } }, "OperatingHoursTime": { "description": "Represents a date and time", "type": "object", "properties": { "date": { "description": "Represents current calendar date in POI time zone, e.g. \"2019-02-07\".", "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 } } }, "Brand": { "description": "The brand associated with the POI", "type": "object", "properties": { "name": { "description": "Name of the brand", "type": "string", "readOnly": true } } }, "Address": { "description": "The address of the result.", "type": "object", "readOnly": true, "properties": { "buildingNumber": { "description": "The building number on the street.\n\n**Important**: This property is *deprecated*. Use `streetNumber` instead.", "type": "string", "readOnly": true }, "street": { "description": "The street name.\n\n**Important**: This property is *deprecated*. Use `streetName` instead.", "type": "string", "readOnly": true }, "crossStreet": { "description": "The name of the street being crossed.\n\nThis property is only available in the `Get Search Address Reverse Cross Street` API.", "type": "string", "readOnly": true }, "streetNumber": { "description": "The building number on the street.\n\nNot available in the `Get Search Address Reverse Cross Street` API.", "type": "string", "readOnly": true }, "routeNumbers": { "description": "The codes used to unambiguously identify the street.\n\nOnly available for the Search Address Reverse APIs.", "type": "array", "items": { "type": "string", "readOnly": true }, "readOnly": true }, "streetName": { "description": "The street name.", "type": "string", "readOnly": true }, "streetNameAndNumber": { "description": "The street name and number.\n\nOnly available for the Search Address Reverse APIs.", "type": "string", "readOnly": true }, "neighbourhood": { "description": "A Neighbourhood is a geographically localized area within a city or town with distinctive characteristics and social interactions between inhabitants.", "type": "string", "readOnly": true }, "municipality": { "description": "City / Town
Note: `municipality` represents the residential municipality. Depending on the location, the `municipality` value may differ from the commonly known name of a city or town. For the commonly known name of the city or town, it's suggested that the `localName` value be used instead of the `municipality` value.", "type": "string", "readOnly": true }, "countrySubdivision": { "description": "The primary administrative division within a country, such as a state, province. It is used to represent the first-level subdivision below the national level.", "type": "string", "readOnly": true }, "countrySecondarySubdivision": { "description": "The second-level administrative division within a country/region. It identifies a subdivision that is below the primary subdivision, such as state or province, but above smaller units like municipalities or neighborhoods. Examples include *County* in the United States and *District* in the United Kingdom.", "type": "string", "readOnly": true }, "countryTertiarySubdivision": { "description": "The third-level administrative division within a country/region. It provides even finer granularity than the secondary subdivision (such as county or district). Examples include municipalities such as a city, town, village, borough, or township and neighborhoods a smaller, informal geographic area within a municipality such as Capitol Hill, Green Lake, and Wallingford in Seattle.", "type": "string", "readOnly": true }, "municipalitySubdivision": { "description": "A subdivision within a municipality. It represents a smaller administrative or geographic unit inside a city, town, or other municipal entity.", "type": "string", "readOnly": true }, "countrySubdivisionName": { "description": "Represents the full name of the first-level administrative division (such as state, province, or region) within a country or region. This property is included only when the `countrySubdivision` value is provided in abbreviated form. Currently supported for the United States, Canada, and the United Kingdom.", "type": "string", "readOnly": true }, "countrySubdivisionCode": { "description": "`countrySubdivisionCode` prefixed by `countryCode` ( countryCode-countrySubdivisionCode ) and the hyphen forms the ISO 3166-2 code. Examples: TX for Texas, SCT for Scotland and ON for Ontario.\n\nThis property is not available in the `Get Search Nearby` and `Get Search POI` API.", "type": "string", "readOnly": true }, "postalCode": { "description": "A series of numbers or letters (or both) added to an address to help identify a specific geographic area. A ZIP Code is the U.S. version of a postal code, other countries/regions use other formats such as Postcode, PIN Code and PLZ.", "type": "string", "readOnly": true }, "extendedPostalCode": { "description": "An extended postal code refers to a postal code format that goes beyond the standard set of digits to provide greater location precision. It is commonly used in systems like the U.S. ZIP+4 code or similar extended formats in other countries/regions. Availability is dependent on the region.\n\nNot available in the `Get Search Address Reverse Cross Street` API.", "type": "string", "readOnly": true }, "country": { "description": "The country/region name.", "type": "string", "readOnly": true }, "countryCode": { "description": "A two-letter alphabetic code defined by the ISO 3166-1 Alpha-2 standard to represent a country/region and dependent territories.", "type": "string", "readOnly": true }, "countryCodeISO3": { "description": "A three-letter alphabetic code defined by the ISO 3166-1 Alpha-3 standard to represent a country/region and dependent territories.", "type": "string", "readOnly": true }, "freeformAddress": { "description": "An address line formatted according to the formatting rules of a result's country/region of origin, or in the case of a country/region, its full country/region name.", "type": "string", "readOnly": true }, "localName": { "description": "An address component that represents the name of a geographic area or locality that groups multiple addressable objects for addressing purposes, without being an administrative unit. This field is used to build the `freeformAddress` property. `localName` represents the postal municipality. Depending on the location, `localName` is the commonly known name of a city or town. For the commonly known name of a city or town, use `localName` instead of `municipality`.", "type": "string", "readOnly": true }, "boundingBox": { "$ref": "#/definitions/BoundingBoxCompassNotation", "description": "Defines the bounding box for the location. This property is only returned by the Search Address Reverse APIs. All other Search APIs return the `viewport` property of the `SearchAddressResultItem` object." } } }, "Viewport": { "description": "The viewport that covers the result represented by the top-left and bottom-right coordinates of the viewport.", "type": "object", "readOnly": true, "properties": { "topLeftPoint": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" }, "btmRightPoint": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" } } }, "BoundingBox": { "description": "The viewport that covers the result represented by the top-left and bottom-right coordinates of the viewport.", "type": "object", "readOnly": true, "properties": { "topLeftPoint": { "x-ms-client-name": "topLeft", "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" }, "btmRightPoint": { "x-ms-client-name": "bottomRight", "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" } } }, "BoundingBoxCompassNotation": { "description": "The bounding box of the location.", "type": "object", "readOnly": true, "properties": { "northEast": { "description": "North-east latitude,longitude coordinate of the bounding box as comma-separated floats", "type": "string", "readOnly": true }, "southWest": { "description": "South-west latitude,longitude coordinate of the bounding box as comma-separated floats", "type": "string", "readOnly": true }, "entity": { "description": "Entity type source of the bounding box. For reverse-geocoding this is always equal to position.", "type": "string", "readOnly": true, "enum": [ "position" ], "x-ms-enum": { "name": "Entity", "modelAsString": true, "values": [ { "value": "position", "description": "Position entity" } ] } } } }, "EntryPoint": { "description": "The entry point for the POI being returned.", "type": "object", "readOnly": true, "properties": { "type": { "description": "The type of entry point. Value can be either _main_ or _minor_.", "type": "string", "readOnly": true, "enum": [ "main", "minor" ], "x-ms-enum": { "name": "EntryPointType", "modelAsString": true } }, "position": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" } } }, "AddressRanges": { "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", "readOnly": true, "properties": { "rangeLeft": { "description": "Address range on the left side of the street.", "type": "string" }, "rangeRight": { "description": "Address range on the right side of the street.", "type": "string" }, "from": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" }, "to": { "$ref": "../../../Common/preview/1.0/common.json#/definitions/LatLongPairAbbreviated" } } }, "Score": { "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.\n\n**Important**: This property is deprecated and may be omitted from the response.", "type": "number", "format": "double", "readOnly": true }, "Distance": { "description": "Straight line distance between the result and geobias location in meters.", "type": "number", "format": "double", "readOnly": true, "x-ms-client-name": "distanceInMeters" }, "EntityType": { "description": "Geography entity type. Present only when entityType was requested and is available.", "type": "string", "readOnly": true, "enum": [ "Country", "CountrySubdivision", "CountrySecondarySubdivision", "CountryTertiarySubdivision", "Municipality", "MunicipalitySubdivision", "Neighbourhood", "PostalCodeArea" ], "x-ms-enum": { "name": "GeographicEntityType", "modelAsString": true, "values": [ { "value": "Country", "description": "country/region 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" } ] } }, "RoadUseType": { "description": "Describes the possible uses of a road.", "type": "string", "readOnly": true, "enum": [ "LimitedAccess", "Arterial", "Terminal", "Ramp", "Rotary", "LocalStreet" ] }, "MatchType": { "description": "Types of match for a reverse address search operation.", "type": "string", "readOnly": true, "enum": [ "AddressPoint", "HouseNumberRange", "Street" ] }, "DataSources": { "x-ms-client-name": "DataSource", "description": "Optional section. Reference ids for use with the [Get Search Polygon](/rest/api/maps/search/get-search-polygon?view=rest-maps-1.0) API.", "type": "object", "readOnly": true, "properties": { "geometry": { "$ref": "#/definitions/Geometry" } } }, "Geometry": { "x-ms-client-name": "GeometryIdentifier", "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](/rest/api/maps/search/get-search-polygon?view=rest-maps-1.0) API to fetch geometry information for this result.", "type": "string", "readOnly": true } } }, "SearchAddressBatchProcessResult": { "x-ms-client-name": "SearchAddressBatchResult", "description": "This object is returned from a successful Search Address Batch service call.", "type": "object", "allOf": [ { "$ref": "../../../Common/preview/1.0/common.json#/definitions/BatchResult" } ], "properties": { "batchItems": { "description": "Array containing the batch results.", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/SearchAddressBatchItem" } } } }, "SearchAddressBatchItem": { "description": "An item returned from Search Address Batch service call.", "type": "object", "allOf": [ { "$ref": "../../../Common/preview/1.0/common.json#/definitions/BatchResultItem" } ], "properties": { "response": { "description": "The result of the query. SearchAddressResult if the query completed successfully, ErrorResponse otherwise.", "type": "object", "readOnly": true, "allOf": [ { "$ref": "#/definitions/SearchAddressResult" }, { "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" } ] } } }, "ReverseSearchAddressBatchProcessResult": { "x-ms-client-name": "ReverseSearchAddressBatchResult", "description": "This object is returned from a successful Search Address Reverse Batch service call.", "type": "object", "allOf": [ { "$ref": "../../../Common/preview/1.0/common.json#/definitions/BatchResult" } ], "properties": { "batchItems": { "description": "Array containing the batch results.", "type": "array", "readOnly": true, "items": { "$ref": "#/definitions/ReverseSearchAddressBatchItem" } } } }, "ReverseSearchAddressBatchItem": { "description": "An item returned from Search Address Reverse Batch service call.", "type": "object", "allOf": [ { "$ref": "../../../Common/preview/1.0/common.json#/definitions/BatchResultItem" } ], "properties": { "response": { "description": "The result of the query. SearchAddressReverseResponse if the query completed successfully, ErrorResponse otherwise.", "type": "object", "readOnly": true, "allOf": [ { "$ref": "#/definitions/ReverseSearchAddressResult" }, { "$ref": "../../../../../common-types/data-plane/v1/types.json#/definitions/ErrorResponse" } ] } } } } }